https://github.com/yousefadel777/chatter-backend
https://github.com/yousefadel777/chatter-backend
database java mysql rabbitmq redis spring spring-boot spring-data spring-data-jpa spring-security springboot
Last synced: 3 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/yousefadel777/chatter-backend
- Owner: YousefAdel777
- Created: 2025-02-11T13:39:11.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-09-03T12:53:48.000Z (10 months ago)
- Last Synced: 2025-09-03T14:41:23.309Z (10 months ago)
- Topics: database, java, mysql, rabbitmq, redis, spring, spring-boot, spring-data, spring-data-jpa, spring-security, springboot
- Language: Java
- Homepage:
- Size: 313 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Chatter Backend
A real-time communication backend built with Spring Boot, supporting instant messaging, audio/video calls, and screen sharing capabilities.
## ๐ Features
- **Real-time Messaging**: WebSocket-based instant messaging with message persistence and read receipts
- **Stories**: Temporary content sharing with 24-hour expiration
- **Reactions**: Message reactions and emoji responses
- **Audio/Video Calls**: WebRTC integration with Mediasoup for peer-to-peer communication
- **Screen Sharing**: Screen sharing capabilities for collaboration
- **Voice Messages**: Record and send audio messages
- **File Attachments**: Upload and share files in conversations
- **Groups**: Create and manage group conversations with member permissions
- **Typing Indicators**: Real-time typing status updates
- **Presence Tracking**: Online/offline status for users
- **Search & Filters**: Search messages within conversations and filter chat history
- **User Blocking**: Block and unblock users to control interactions
- **Message Queue**: RabbitMQ (STOMP) integration for reliable message delivery
- **Caching Layer**: Redis caching for improved performance
- **Database Migrations**: Flyway integration for version-controlled schema management
## ๐ Security
- JWT-based authentication
- Password encryption using BCrypt
- CORS configuration for secure cross-origin requests
- Rate limiting with token bucket algorithm
## ๐ ๏ธ Tech Stack
- **Framework**: Spring Boot
- **Language**: Java
- **Database**: MySQL
- **Message Broker**: RabbitMQ (STOMP protocol)
- **Cache**: Redis
- **Real-time Communication**: WebSockets
- **Containerization**: Docker
## ๐ง Installation
### Local Setup
1. **Clone the repository**
```bash
git clone https://github.com/yourusername/chatter-backend.git
cd chatter-backend
```
2. **Configure environment variables**
3. **Install dependencies**
```bash
./gradlew build
```
4. **Run database migrations**
```bash
./gradlew flywayMigrate
```
5. **Start the application**
```bash
./gradlew bootRun
```
### Docker Setup
1. **Build and run with Docker Compose**
```bash
docker-compose up -d
```
This will start:
- Spring Boot application
- MySQL database
- Redis cache
- RabbitMQ message broker
## ๐งช Testing
Run the test suite:
```bash
./gradlew test
```
โญ If you find this project helpful, please consider giving it a star!