A small Web Messenger with End-to-End encryption
- FastAPI (Python 3.9)
- JWT authentication
- React (with Typescript)
- react-router v6 to handle routing
- react-hooks
- axios to send requests
- SqlAlchemy for ORM
- Pytest for backend tests
- Prettier/ESLint (Typescript)
- Black (Python)
git clone https://github.com/Flict-dev/Web-messenger.git
docker compose up
Go to http://localhost:8000/
- Run Backend
- Create virtual environment
python -m venv env
- Activate virtual environment
Windows: env/Scripts/activate Linux: source env/bin/activate
- Install requirements
pip install -r requirements.txt
- Run FastAPI server
cd backend cd app uvicorn main:app --host '<ip>' --port <port>
- Create virtual environment
- Run Frontend
- Install all node packages
cd frontend npm install
- Run react server
npm start
- Install all node packages
To add a new user, it is enough to share a link
The user needs an encryption key to decrypt other people's messages and send their own
Users have online and offline statuses
When deleting a room, users and their messages are also deleted