RealTime

RealTime Used AI

31 devlogs
26h 24m
•  Ship certified
Created by Marco

The goal of RealTime is to see what is being written character by character: you can almost double the speed of communication!

RT wants to go beyond this and make you feel in front of your interlocutor. Thanks to its human-centered design, animations and its "organic interface". RealTime doesn’t aim to replace existing and widely
used messaging systems but rather to be an extension to them.

Features:
1. Real-time typing
2. Physical proximity for contact
3. Open source and well documented
4. E2E encryption

Coming features:
1. Live voice messages
2. Live images
3. Export JSON and nice PDF

Timeline

Ship 2

1 payout of shell 142.0 shells

Marco

2 months ago

Marco Covers 7 devlogs and 7h 32m

Improved design of chat list screen, text instruction of qr code scanning, updated the version number.
This is the first alpha version of RealTime

Update attachment

Implemented message payload encryption, cleaned up the key exchange code I wrote yesterday, and improved the key exchange graphics.
The next thing to do will be to improve the chat list graphics, and then I think I'll ship it.
I've just see that i need to chang dinamically the join room screen title.

Update attachment

Now the key exchange work.
For testing i've printed out the qr codes and used my webcam to scan them, it was realy cool seeing the same key appear on two different windows all shared via paper.
Next thing will be cleaning up the code, stop exposing raw key, store the key in a secure way and finally encrypt messages.

Update attachment

spended a lot of time debugging a button...
and maybe i will change the way i encrypt the AES key: maybe i will use Elliptic Curve Diffie-Hellman because the keylength is shorter and so the qr code is more readable (the current one is very difficult to read)

Update attachment

Started working on encryption: wrote the part to generare a keypair and the part to unwrap the AES key (for this still to implement qrcode reading).

Update attachment

Updated the icon: now the icon is much simpler, the clock icon still exist and will be used in other places but for now i will use the simple icon as the app icon and favicon.

Update attachment

Now you can install RealTime as an app.
Here a cool screenshot of what it looks like after being installed :)
I've worked like two hours on this but not so much time in the code editor

Update attachment

Ship 1

1 payout of shell 284.0 shells

Marco

3 months ago

Marco Covers 24 devlogs and 18h 51m

Improved readme and other stuff for the ship.
Not 5 minute for this but i don't used the code editor much for this.

Update attachment

Worked on the chat screen: auto scroll and mobile keyboard behavior.

The mobile virtual keyboard it's a difficult thing to deal with

Update attachment

I've completed styling the chat page.

I still need to figure out how to make the virtual keyboard work properly, synchronize timestamps between client and server (perhaps I could include a timestamp in the ACK), and implement encryption.

Update attachment

Worked on the style of the chat windows: added chat bubbles.

The colors are based on a username ash, so the same username will always have the same color on all clients without needing to transmit additional data.

If you like, take a look at the subtle color gradients: what looks like gray/black isn't!

Now i will style the text input, for now I'll put it at the bottom, then I'd like to put it inside the bubble I'm writing in (maybe).

Update attachment

Refactored files and folders, cleaned up lots of code, made lots of little improvements.

Now i will be make the graphic of the chatroom page (see the attached screenshot for what is the chat screen right now)

Update attachment

Fixed the scanner not obtaining privileges on Android, trying obtaining the 'normal' camera on phones and styled the scanner.

Now i need to syle well the chat and better form the labels in the chat list

Update attachment

Onboarding form style.

Now i need to better organize folder structure and then make the chat screen style.

And the cryptography but that after finishing the style.

Update attachment

Chat list new style with cool buttons following the navbar back button

Update attachment

Working on graphic design.

I think the navbar and QR code page came out really nice.

I'm attaching a video: hope that the blurr will be good in video.

Now you can create and join rooms all with QRCODES!
(You can see a demo with real phones in the video attached)

Also i'm starting doing some graphical stuff.

This version still doesn't include encryption. When i will put the encryption the QRCODE part will be in both way: i want to use a hybrid encryption.

There are still lot's of other improvements to do but i can say that this is the first really usable version of the client!

Graphic design is my passion

Update attachment

Now you can Joina room via QR Code!

Auto update of the room list

Update attachment

Added IndexDB support for local storage of rooms, messages and users.

Now i have to:
- automatically refresh room list in a cool way
- encryption
- graphics
- qr code

Translated comment and displayed elements of the client in English and made some UX improvement:
- disable the create account button while the process is happening
- put a button to refresh chat list

Update attachment

Wrote down the schema of the IndexDB

Update attachment
Rei Rei 3 months ago
Good work :D

I decided to deploy the client. Easy, right? But no, because I decided to do something cool and not include the file name in the URL, so I'd get client.chatinrealtime.com/chatlist and not client.chatinrealtime.com/chatlist/index.html. But there was a problem: when I was working with the local live server, the scripts were served correctly (as I intended), but when I used render, the ./ from client.chatinrealtime.com/chat_list was the root and not /chat, so the script always needed to be in the root.

After about thirty minutes of debugging and four merges on GitHub, I figured out what the problem was and fixed it.

As you may have read, I registered the subdomain where I host the client if you want to use the hosted client and not a local one or your own.

You can reach him at client.chatinrealtime.com

I hope to implement message storage in the client soon so I can then focus on:
1. encryption
2. graphics
3. improved UX (I'll work on the QR code join later)

I'm sorry it only shows 6 minutes of work, but that's the time I spent writing code, not all the rest of the time I spent debugging :(

Update attachment

Understanding how to permanently store data in the browser:

I read the mdn page about the various ways to store data in the browser, and I decided to use IDB. I then read and re-read the mdn tutorial step by step to understand how to use IDB.

This is my result :D

Update attachment

Now i render both received and send messages in the chat

Update attachment

Incapsulated the chat code in a class
Now the web client can send and recieve messages (typing and finish)

The next things will be:
1. proper visualization of messages outgoing and ingoing
2. memorization in local db of messages, rooms and users
3. encrypting and decrypting of message payload

Started writing the socket client.

Now the client can connect to the server websocket and and authenticate by sending as first message the api key.

I will incapsulate things in a class as next thing to better manage the code.

The next steps will be:
- refactor the current socket code in a class
- write and recieve messages
- store messages in a local database

bye for today :)

Update attachment

Added approve and deny possibilities for the join requests

Update attachment

Now you can send a join request to a room from the web client.
The next thing will be working on showing to members the join requests and let them accept o deny them.

Update attachment

Started writing the Web App to use my previously written API for real-time chat.
Before i wanted to write an Androdi Client but the Android ecosystem was too demanding.

This first part of the web app allows you to create your own user account and create a room.

The next thing I'll work on is joining a room, and then I'll start working on the page that allows you to write and receive messages within a room.

For now, the web app will be as graphically simple as possible: I want to focus on creating a deployable version as quickly as possible.

Update attachment