feat(backend): Ajout complet des fonctionnalités Chat, Social, Story et Notifications

Implémentation complète de toutes les fonctionnalités backend :

## Nouvelles Fonctionnalités

### Chat (Messagerie Instantanée)
- Entities : Conversation, Message
- DTOs : ConversationResponseDTO, MessageResponseDTO, SendMessageRequestDTO
- Resources : MessageResource (endpoints REST)
- Services : MessageService (logique métier)
- Repositories : ConversationRepository, MessageRepository
- WebSocket : ChatWebSocket (temps réel)

### Social (Publications Sociales)
- Entities : SocialPost, SocialComment, SocialLike
- DTOs : SocialPostResponseDTO, CreateSocialPostRequestDTO
- Resources : SocialPostResource
- Services : SocialPostService
- Repositories : SocialPostRepository

### Story (Stories temporaires)
- Entities : Story, StoryView
- DTOs : StoryResponseDTO, CreateStoryRequestDTO
- Resources : StoryResource
- Services : StoryService
- Repositories : StoryRepository

### Notifications (Temps Réel)
- Entities : Notification
- DTOs : NotificationResponseDTO
- Resources : NotificationResource
- Services : NotificationService, PresenceService
- Repositories : NotificationRepository
- WebSocket : NotificationWebSocket (temps réel)

## Améliorations

### Users & Friendship
- Mise à jour UserResponseDTO avec nouveaux champs
- Amélioration FriendshipResource avec séparation demandes envoyées/reçues
- FriendSuggestionResponseDTO pour suggestions d'amis
- Optimisations dans UsersService et FriendshipService

### Events
- Améliorations EventsResource et EventService
- Optimisations EventsRepository

### Configuration
- Mise à jour application.properties
- Configuration docker-compose.yml
- Dockerfile pour développement

## Fichiers Modifiés
- .dockerignore, .gitignore
- README.md
- docker-compose.yml
- Configuration Maven wrapper
This commit is contained in:
dahoud
2026-01-10 10:39:58 +00:00
parent fd67140961
commit 093d04c224
60 changed files with 14652 additions and 220 deletions

View File

@@ -3,19 +3,25 @@ quarkus.swagger-ui.always-include=true
quarkus.swagger-ui.path=/q/swagger-ui
quarkus.smallrye-openapi.path=/openapi
# Configuration de la base de donn<EFBFBD>es PostgreSQL pour Quarkus en d<EFBFBD>veloppement
%dev.quarkus.datasource.db-kind=postgresql
%dev.quarkus.datasource.jdbc.url=jdbc:postgresql://localhost:5432/afterwork_db
%dev.quarkus.datasource.username=${DB_USERNAME}
%dev.quarkus.datasource.password=${DB_PASSWORD}
%dev.quarkus.datasource.jdbc.driver=org.postgresql.Driver
%dev.quarkus.hibernate-orm.database.generation=update
# Configuration de la base de données H2 (en mémoire) pour Quarkus en développement
%dev.quarkus.datasource.db-kind=h2
%dev.quarkus.datasource.jdbc.url=jdbc:h2:mem:afterwork_db;DB_CLOSE_DELAY=-1
%dev.quarkus.datasource.username=sa
%dev.quarkus.datasource.password=
%dev.quarkus.hibernate-orm.database.generation=drop-and-create
%dev.quarkus.hibernate-orm.log.sql=true
%dev.quarkus.datasource.devservices.enabled=false
# Configuration de la base de donn<6E>es PostgreSQL pour Quarkus en production
# Configuration PostgreSQL (production) - commentée pour les tests
# %dev.quarkus.datasource.db-kind=postgresql
# %dev.quarkus.datasource.jdbc.url=jdbc:postgresql://localhost:5432/afterwork_db
# %dev.quarkus.datasource.username=afterwork
# %dev.quarkus.datasource.password=@ft3rw0rk
# %dev.quarkus.datasource.jdbc.driver=org.postgresql.Driver
# Configuration de la base de données PostgreSQL pour Quarkus en production
%prod.quarkus.datasource.db-kind=postgresql
%prod.quarkus.datasource.jdbc.url=jdbc:postgresql://${DB_HOST:localhost}:${DB_PORT:5432}/${DB_NAME:afterwork_db}
%prod.quarkus.datasource.jdbc.url=jdbc:postgresql://${DB_HOST}:${DB_PORT}/${DB_NAME}
%prod.quarkus.datasource.username=${DB_USERNAME}
%prod.quarkus.datasource.password=${DB_PASSWORD}
%prod.quarkus.datasource.jdbc.driver=org.postgresql.Driver
@@ -23,13 +29,13 @@ quarkus.smallrye-openapi.path=/openapi
%prod.quarkus.hibernate-orm.log.sql=false
%prod.quarkus.datasource.devservices.enabled=false
# Niveau de logging pour Quarkus en d<EFBFBD>veloppement
# Niveau de logging pour Quarkus en développement
%dev.quarkus.log.level=DEBUG
# Niveau de logging pour Quarkus en production
%prod.quarkus.log.level=INFO
# Configuration de la signature JWT
# Configuration de la signature JWT (désactivée pour l'instant)
# mp.jwt.verify.publickey.location=META-INF/resources/publicKey.pem
# mp.jwt.verify.issuer=https://issuer.example.com
# mp.jwt.token.header=Authorization
@@ -40,9 +46,9 @@ quarkus.smallrye-openapi.path=/openapi
# Activer le support multipart pour l'upload de fichiers
quarkus.http.body.uploads-directory=/tmp/uploads
# Taille maximale pour la requ<71>te multipart (en octets)
quarkus.http.body.multipart.max-request-size=10M
# Taille maximale pour un fichier multipart (en octets)
quarkus.http.body.multipart.max-file-size=5M
# Écouter sur toutes les interfaces réseau (0.0.0.0) pour être accessible depuis le Samsung
quarkus.http.host=0.0.0.0
quarkus.http.port=8080