https://github.com/juanmartincoder/lanchat
Basic group chat that uses RabbitMQ as a message broker to all users that connects to the chat
https://github.com/juanmartincoder/lanchat
chat-application docker docker-compose go golang goose postgresql rabbitmq rabbitmq-management sqlc
Last synced: 4 months ago
JSON representation
Basic group chat that uses RabbitMQ as a message broker to all users that connects to the chat
- Host: GitHub
- URL: https://github.com/juanmartincoder/lanchat
- Owner: JuanMartinCoder
- Created: 2025-05-27T21:50:40.000Z (8 months ago)
- Default Branch: main
- Last Pushed: 2025-05-30T00:08:38.000Z (7 months ago)
- Last Synced: 2025-07-01T14:43:30.052Z (6 months ago)
- Topics: chat-application, docker, docker-compose, go, golang, goose, postgresql, rabbitmq, rabbitmq-management, sqlc
- Language: Go
- Homepage:
- Size: 17.6 KB
- Stars: 2
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# 🗨️ LanChat App
# Table of Contents
1. [Desciption](#description)
2. [Features](#features)
3. [Tech Stack](#techstack)
4. [Architecture](#archi)
5. [Running the App](#run)
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

## 🚀 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/`
3. You will need the dependencies used
`go mod tidy`
4. Start the services with the script
`./servicesUp start`
5. Connect to the chat with the main app
`go run ./cmd/main.go`
6. To shutdown the services do
`./servicesUp stop`