https://github.com/rezi-gelenidze/chatty
Microservices based chat application built with Spring Boot, JWT/OAuth2, PostgreSQL/MongoDB and RabbitMQ for real-time messaging.
https://github.com/rezi-gelenidze/chatty
chat-application microservices spring
Last synced: 12 months ago
JSON representation
Microservices based chat application built with Spring Boot, JWT/OAuth2, PostgreSQL/MongoDB and RabbitMQ for real-time messaging.
- Host: GitHub
- URL: https://github.com/rezi-gelenidze/chatty
- Owner: rezi-gelenidze
- Created: 2024-12-25T20:12:05.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-02-22T21:46:34.000Z (over 1 year ago)
- Last Synced: 2025-02-22T22:25:42.452Z (over 1 year ago)
- Topics: chat-application, microservices, spring
- Language: Java
- Homepage:
- Size: 524 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# **Chatty - Microservices-Based Chat Application**
A **scalable**, **secure**, and **modular** chat application built using **Spring Boot, Spring Cloud, PostgreSQL, MongoDB, and RabbitMQ**.
## **🔹 Features**
✅ **Microservices Architecture** - Decoupled services for authentication, messaging, and notifications.
✅ **Secure Authentication** - JWT-based authentication with OAuth2 and refresh tokens.
✅ **Service Discovery & Load Balancing** - Eureka for dynamic service registration.
✅ **API Gateway** - Spring Cloud Gateway for request routing and security.
✅ **Scalable Messaging** - MongoDB for chat storage, RabbitMQ for notifications.
✅ **Event-Driven Communication** - RabbitMQ for inter-service messaging.
---
## **🔹 Microservices Overview**
### **1️⃣ Authentication Service (`auth-service`)**
Handles user authentication, token generation, and validation.
- 🔹 **Base Endpoint:** /auth
- 🔹 **Endpoints:** `/login`, `/register`, `/refresh`, `/verify`
- 🔹 **Tech:** Spring Security, JWT, PostgreSQL, (OAuth2 TODO)
### **2️⃣ Chat Service (`chat-service`)**
Manages real-time messages and conversations.
- TODO
### **3️⃣ Notification Service (`notification-service`)**
Sends chat notifications (emails, push notifications, in-app alerts).
- TODO
### **4️⃣ API Gateway (`api-gateway`)**
Routes requests and secures APIs via authentication checks.
- TODO
### **5️⃣ Service Discovery (`eureka-server`)**
Manages dynamic service discovery and load balancing.
- 🔹 **Tech:** Eureka
---
## **🔹 Tech Stack**
🔹 **Backend:** Java, Spring Boot, Spring Security, Spring Cloud
🔹 **Database:** PostgreSQL (Users, etc), MongoDB (Messages)
🔹 **Message Queue:** RabbitMQ
🔹 **Security:** OAuth2, JWT
🔹 **Deployment:** Docker, Kubernetes (Future Plan)
---
## **🔹 Future Enhancements**
✅ WebSockets for real-time messaging.
✅ Kubernetes for container orchestration.
✅ Rate limiting & monitoring with Spring Boot Actuator.