https://github.com/xnm1/uplife_backend
Highly available and scalable Backend for the UpLife messenger
https://github.com/xnm1/uplife_backend
architecture backend chat high-availibility messenger realtime rest rest-api scalability service-oriented-architecture websockets
Last synced: 13 days ago
JSON representation
Highly available and scalable Backend for the UpLife messenger
- Host: GitHub
- URL: https://github.com/xnm1/uplife_backend
- Owner: XNM1
- License: mit
- Created: 2021-07-20T11:13:33.000Z (almost 5 years ago)
- Default Branch: master
- Last Pushed: 2023-03-22T21:21:07.000Z (over 3 years ago)
- Last Synced: 2025-03-04T01:33:00.002Z (over 1 year ago)
- Topics: architecture, backend, chat, high-availibility, messenger, realtime, rest, rest-api, scalability, service-oriented-architecture, websockets
- Language: JavaScript
- Homepage:
- Size: 864 KB
- Stars: 1
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
UpLife Messenger
The highly available and scalable messenger for endless communication
## About
UpLife Messenger is a powerful and versatile messaging application that provides a seamless communication experience for users. With UpLife Messenger, you can stay connected with your friends, family, and colleagues in real-time.
One of the unique features of UpLife Messenger is support for checklists in messages, which makes it easy to manage tasks and collaborate with others. You can also add tags to your messages, which helps to organize and search for messages easily.
UpLife Messenger uses real-time notification by WebSocket to ensure that you never miss an important message. The backend is highly scalable and available, so you can rely on it to deliver messages reliably and quickly.
The app is open source, so you can customize it to suit your needs or contribute to the community. You can also customize your profile with avatars and backgrounds, and the app has a powerful contact system to help you manage your connections.
With real-time communication, you can enjoy seamless conversations with your contacts, whether you're on the go or at your desk.
## Features
- ⚡Real-time messaging
- 🔑User registration, authentication and authorization
- 👥Group chats
- 📃Message history
- 💅Avatars and backgrounds
- ✅Check lists in message
- 🏷️Message tags
## Requirements
- Docker 18.06.0+
- Artillery 1.5.0+ (for load testing)
## Installing
To install UpLife Messenger Backend, clone the repository from GitHub:
```bash
git clone https://github.com/XNM1/UpLife_Backend
```
## Usage
To start the application with Docker, use the following command:
```bash
docker compose up back-end/docker-compose-dev.yml
```
## Test
To run load tests with Artillery, use the following command:
```bash
artillery run load-tests/get_data_test.yml
```
## Architecture
Backend Architecture Diagram
UpLife Messenger Backend is built using the following technologies:
- Node.js
- Express
- Socket.io
- Passport.js
- Dgraph
- Redis
- Nginx
- HAProxy
- Docker
The architecture of UpLife Messenger utilizes of the following patterns:
CQRS Diagram
Event Bus Diagram
Data scheme diagrams:
Entity-Relationship Diagram
Graph Representation of Data
Here's a sequence diagram that illustrates the interaction between the different components of the system:
Sequence Diagram
## License
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.