Ce projet est un backend d'application de chat en temps réel développé avec Spring Boot. Il fournit des API REST pour la gestion des utilisateurs, des messages, des canaux de discussion, ainsi qu'un support WebSocket pour la communication en temps réel.
- Java 21
- Spring Boot
- Spring Security (authentification JWT)
- WebSocket (communication temps réel)
- Maven
- MySQL
- Docker & Docker Compose
docker-compose up --buildCela lance :
- le backend Spring Boot (
http://localhost:8000) - la base de données MySQL
- le visualisateur de base de donnée PHPMYADMIN
src/
└── main/
└── java/
└── com.discord.api
├── api.config # Configuration WebSocket & sécurité
├── api.controllers # Contrôleurs REST
├── api.models # Entités & DTO
├── api.repositories # Accès aux données (JPA)
└── api.services # Logique métier
L’authentification est basée sur JWT. Les endpoints protégés nécessitent un token JWT passé via l'en-tête Authorization: Bearer <token>.
Exemple d'endpoints d’auth :
POST /auth/registerPOST /auth/login
L'application expose un endpoint WebSocket pour recevoir/envoyer des messages en temps réel :
ws://localhost:8000/ws
Messages structurés selon un format JSON
docker exec -i mysql mysql -uroot -proot discord-db < database/data.sql