Colir — fast & secure messaging platform with end-to-end encryption.
BackEnd can be found here.
The main goal of Colir is to provide an ability to communicate securely.
To implement that, end-to-end encryption was chosen. Before using the application, users should discuss a secret key that will be used to encrypt & decrypt the data.
Note
The encryption keys for rooms are stored on the client only. They're not being sent to the server.
Besides that, Colir has a couple of features, which can interest you in:
- Rooms are places where the encrypted communication happens. When a user creates a room, he/she chooses an encryption key (which will be stored at the client) and receives a room GUID. They can share that GUID with someone else so they can join that room. Anyone who has the GUID of a certain room can join it, but it will be impossible to decrypt the data if the wrong encryption key was provided.
- Expiry date can be provided for rooms. When the expiry date comes, all data won't be accessible and will be deleted forever.
- There's only one voice channel per room.
- Passwordless authentication. There are three ways to authenticate: anonymous (gives you a one-time JWT), GitHub account, and Google account.
- Each user has a unique "Colir ID", which is a 6 symbol-length hexadecimal number to identify a user.
Caution
If you authenticate as anonymous, you won't be able to login into that account again.
Therefore, use 3rd party providers such as GitHub and Google to be able to login as much as you want.
- Install node.js
- Install pnpm
>npm install -g pnpm
- Clone the repo
>git clone https://github.com/MrQuackDuck/ColirWebClient.git
- Jump into the folder
>cd .\ColirWebClient\
- Install all packages
>pnpm i
- Run the server
>pnpm run dev