This is the backend service for a real-time messaging application built with Java Spring Boot. It provides a robust, scalable, and secure API for handling user authentication, message transmission, and persistence using PostgreSQL and Apache Kafka.
- User Management: Registration, authentication, and profile management.
- Real-Time Messaging: Supports both RESTful and WebSocket communication.
- Message Queueing: Utilizes Apache Kafka for efficient message delivery.
- Database Storage: Uses PostgreSQL for data persistence.
- Security: Implements Spring Security for authentication and access control.
- Scalability: Supports Docker for containerization and deployment.
- Testing: Ensures reliability with JUnit-based test coverage.
- Java 23
- Spring Boot (Spring Web, Spring Security, Spring Data JPA, Spring WebSocket)
- Apache Kafka
- PostgreSQL
- Docker
- JUnit
Ensure you have the following installed:
- Java 17+
- PostgreSQL
- Apache Kafka
- Docker (optional for containerization)
- Clone the repository:
git clone https://github.com/IsmailTekin05/ChatAppBackEnd.git cd ChatAppBackEnd - Configure the
application.propertiesfile with your PostgreSQL and Kafka settings. - Build and run the application:
./mvnw spring-boot:run
- The API will be available at
http://localhost:8080.
| Method | Endpoint | Description |
|---|---|---|
| POST | /register |
Register a new user |
| POST | /login |
Authenticate a user |
| GET | /messages/{userId} |
Fetch messages for a user |
| POST | /messages/send |
Send a new message |
Contributions are welcome! Feel free to fork the repository and submit pull requests.
This project is licensed under GPL-3.0 license.