Git Product home page Git Product logo

chatapp's Introduction

Group Chat Application

This application is a group chat implemented using FastAPI and React. It is composed of four microservices:

  1. API Gateway Service: The API Gateway service acts as the entry point for the application and handles the routing to the appropriate microservices.
  2. Frontend Service: The Frontend service provides the user interface for the group chat application. It is responsible for rendering the chat interface, sending and receiving messages, and displaying user information.
  3. Users Service: The Users service handles user-related operations, such as user authentication, user registration, and user profile management. It stores user information in a PostgreSQL database.
  4. Messages Service: The Messages service manages the storage and retrieval of chat messages. It communicates with other services asynchronously using web sockets for real-time message updates.

Architecture

The group chat application follows a microservices architecture, where each microservice is responsible for a specific set of functionalities. This architecture provides flexibility, scalability, and modularity to the application.

The API Gateway service acts as an entry point, allowing clients to interact with the application without needing to know the internal details of each microservice. It handles authentication, authorization, and routes requests to the appropriate microservice based on the requested endpoint.

The Frontend service is built with React, providing a responsive and user-friendly interface for users to interact with the group chat application. It communicates with the backend microservices through API calls to send and receive messages, authenticate users, and manage user profiles.

The Users service handles user-related operations. It stores user information in a PostgreSQL database and provides APIs for user registration, login, logout, and updating user profiles. User's informations are fetched synchronously from the DB running in a container.

The Messages service is responsible for chat messages. It provides APIs for sending messages and retrieving chat history. It is based on asynchronous WebSocket communication.

Getting Started

To run the group chat application locally, follow these steps:

  1. Clone the repository: git clone <repository-url>
  2. Run docker compose build --no-cache and then docker compose up

The site will be available at localhost:3000

Signing up

In order to register a user, you have to click Sign Up button and proceed to the signup menu. There you need to specify a username (alphanumerics only), email (has to be a valid email) and a password, which has to contain at least 8 characters.

License

This project is licensed under the MIT License.

chatapp's People

Contributors

virtover avatar anthonygrod avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.