https://github.com/juannovas/live-chat
A real time chat built with Fastapi based on microservices
https://github.com/juannovas/live-chat
fastapi microservices mongodb python
Last synced: 2 months ago
JSON representation
A real time chat built with Fastapi based on microservices
- Host: GitHub
- URL: https://github.com/juannovas/live-chat
- Owner: JuanNovas
- Created: 2024-06-30T18:48:30.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2024-07-08T12:52:49.000Z (almost 2 years ago)
- Last Synced: 2025-03-23T10:42:35.771Z (over 1 year ago)
- Topics: fastapi, microservices, mongodb, python
- Language: Python
- Homepage:
- Size: 109 KB
- Stars: 3
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# π¬ Live Chat
Welcome to the **Live Chat** repository! This project showcases a chat application backend built using a microservices architecture built with FastAPI.

## π Table of Contents
- [Introduction](#introduction)
- [Features](#features)
- [Architecture](#architecture)
- [Services](#services)
- [Technologies](#technologies)
## π Introduction
Live chat allows users to send and receive messages in real-time. It is built using a microservices architecture, JWT verification and Websockets. The purpose of the project is to demonstrate my ability to build API's and manage non-relational databases.
## π Features
- π User authentication and authorization
- π¨ Real-time messaging
- π Contacts management
- π Connection management
- ποΈMongoDB for data storage
## ποΈ Architecture
The application is composed of several microservices, each responsible for a specific functionality. The services communicate with each other using HTTP and WebSockets. Below is an overview of the architecture:
- **π Login Service**: Handles user login and token generation.
- **β
Verification Service**: Manages token verification processes.
- **π Contacts Service**: Manages user contacts.
- **π¬ Messages Service**: Manages the sending and downloading of messages.
- **π Connection Service**: Manages WebSocket communications to enable real time chat conversations.
- **ποΈ MongoDB Database**: Stores all persistent data for the application.
## π οΈ Technologies
- **FastAPI**: Back-end framework for building APIs.
- **MongoDB**: NoSQL database for storing application data.
- **Docker**: Containerization of services.
- **JWT**: JSON Web Tokens for user authentication.
- **WebSockets**: Real-time communication protocol.