An open API service indexing awesome lists of open source software.

https://github.com/mrquackduck/colirwebclient

Secure messaging platform with client end-to-end encryption and ability to communicate via voice channels.
https://github.com/mrquackduck/colirwebclient

colir feature-sliced-design fsd react shadcn signalr-client vite

Last synced: 12 months ago
JSON representation

Secure messaging platform with client end-to-end encryption and ability to communicate via voice channels.

Awesome Lists containing this project

README

          


Colir (Web Client)












Colir — fast & secure messaging platform with end-to-end encryption.

BackEnd can be found here.

## 🌈 The idea
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**.

## 🌠 Features
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.

## 👀 Screenshots
### 🖥 Desktop (~w1910px):





### 📱 Mobile (~w440px):



## 🚀 Development server
1. Install [node.js](https://nodejs.org/en)
2. Install [pnpm](https://pnpm.io/installation)

**>** `npm install -g pnpm`
4. Clone the repo

**>** `git clone https://github.com/MrQuackDuck/ColirWebClient.git`
5. Jump into the folder

**>** `cd .\ColirWebClient\`
6. Install all packages

**>** `pnpm i`
7. Run the server

**>** `pnpm run dev`