Skip to content

JuanMartinCoder/LanChat

Repository files navigation

🗨️ LanChat App

Table of Contents

  1. Desciption
  2. Features
  3. Tech Stack
  4. Architecture
  5. Running the App

📌 Description

This is a real-time group chat application built in Go that enables multiple users to communicate via a shared message channel. Messages are broadcast to all connected users using a fanout pattern through RabbitMQ, ensuring scalable and asynchronous communication. Each message is also persistently stored in a PostgreSQL database for historical access and analysis.

✅ Features

  • Real-time messaging using RabbitMQ (fanout exchange)
  • Persistent message storage in PostgreSQL
  • Easy inspection and management with pgAdmin
  • Docker Compose setup for rapid development
  • Built with performance and scalability in mind using Go

🛠️ Tech Stack

Component Technology
Backend Go
Message Broker RabbitMQ
Database PostgreSQL
DB GUI pgAdmin
Containerization Docker

📐 Architecture

lanchat

🚀 Running the Application

The requirements for running this application are Go and Docker

  1. Clone the repo and enter the folder

    git clone https://github.com/JuanMartinCoder/LanChat/

    cd LanChat/

  2. You will need the dependencies used

    go mod tidy

  3. Start the services with the script

    ./servicesUp start

  4. Connect to the chat with the main app

    go run ./cmd/main.go

  5. To shutdown the services do

    ./servicesUp stop

About

Basic group chat that uses RabbitMQ as a message broker to all users that connects to the chat

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published