How eddymandran/bm-horizon-backend works
BmHorizon Backend is a Spring application for managing a portfolio of completed projects and categories, accepting public quote requests with photos, and providing authenticated administration. The main flows are public quote submission (validate and process photos, store files and the request, then publish an event) and admin portfolio/category management with public photo retrieval. The graph also shows authentication and shared file/photo processing. The README is empty; some controller, security, notification, and storage wiring is unsampled, so uncertain links are omitted or dashed.
Main entry points: PhotoRealisationService.java Portfolio photo service · DemandeDevisService.java Quote submission · AuthController.java Authentication API · StockageFichiers.java File storage
Components 25
Portfolio management
- Category API
src/main/java/com/bmhorizon/categorie/controller/CategorieController.java - Category management
src/main/java/com/bmhorizon/categorie/service/CategorieService.java - Category repository
src/main/java/com/bmhorizon/categorie/repository/CategorieRepository.java - Public portfolio API
src/main/java/com/bmhorizon/realisation/controller/RealisationPublicController.java - Portfolio admin API
src/main/java/com/bmhorizon/realisation/controller/RealisationAdminController.java - Portfolio lifecycle
src/main/java/com/bmhorizon/realisation/service/RealisationService.java - Portfolio repository
src/main/java/com/bmhorizon/realisation/repository/RealisationRepository.java - Portfolio photo admin
src/main/java/com/bmhorizon/realisation/controller/PhotoRealisationAdminController.java - Public photo API
src/main/java/com/bmhorizon/realisation/controller/PhotoPublicController.java
Quote requests
- Public quote API
src/main/java/com/bmhorizon/demandedevis/controller/DemandeDevisPublicController.java - Quote submission
src/main/java/com/bmhorizon/demandedevis/service/DemandeDevisService.java - Quote repository
src/main/java/com/bmhorizon/demandedevis/repository/DemandeDevisRepository.java - Quote notifications
src/main/java/com/bmhorizon/notification/NotificationNouvelleDemandeListener.java
Media processing
- Portfolio photo service
src/main/java/com/bmhorizon/realisation/service/PhotoRealisationService.java - Image processing
src/main/java/com/bmhorizon/photo/service/TraitementPhoto.java - Portfolio photo records
src/main/java/com/bmhorizon/realisation/repository/RealisationPhotoRepository.java
Identity and access
- Authentication API
src/main/java/com/bmhorizon/securite/controller/AuthController.java - Credential authentication
src/main/java/com/bmhorizon/securite/service/AuthentificationService.java - JWT services
src/main/java/com/bmhorizon/securite/service/JwtService.java - User repository
src/main/java/com/bmhorizon/securite/repository/UtilisateurRepository.java
Shared platform
- File storage
src/main/java/com/bmhorizon/storage/StockageFichiers.java - S3 storage adapter
src/main/java/com/bmhorizon/storage/StockageS3.java - API error mapping
src/main/java/com/bmhorizon/config/GlobalExceptionHandler.java
Other components
- Public visitor
- Administrator
Connections 26
- Administrator → Category API: manages categories
- Category API → Category management: delegates to
src/main/java/com/bmhorizon/categorie/controller/CategorieController.java - Category management → Category repository: reads and writes
src/main/java/com/bmhorizon/categorie/service/CategorieService.java - Public visitor → Public portfolio API: browses portfolio
- Administrator → Portfolio admin API: manages projects
- Portfolio admin API → Portfolio lifecycle: delegates to
src/main/java/com/bmhorizon/realisation/controller/RealisationAdminController.java - Portfolio lifecycle → Portfolio repository: reads and writes
src/main/java/com/bmhorizon/realisation/service/RealisationService.java - Administrator → Portfolio photo admin: manages photos
src/main/java/com/bmhorizon/realisation/controller/PhotoRealisationAdminController.java - Portfolio photo admin → Portfolio photo service: delegates to
src/main/java/com/bmhorizon/realisation/controller/PhotoRealisationAdminController.java - Public visitor → Public photo API: requests photos
src/main/java/com/bmhorizon/realisation/controller/PhotoPublicController.java - Public photo API → Portfolio photo service: delegates to
src/main/java/com/bmhorizon/realisation/controller/PhotoPublicController.java - Portfolio photo service → Image processing: processes images
src/main/java/com/bmhorizon/realisation/service/PhotoRealisationService.java - Portfolio photo service → Portfolio photo records: reads and writes
src/main/java/com/bmhorizon/realisation/service/PhotoRealisationService.java - Portfolio photo service → Portfolio repository: loads projects
src/main/java/com/bmhorizon/realisation/service/PhotoRealisationService.java - Portfolio photo service → File storage: stores and opens files
src/main/java/com/bmhorizon/realisation/service/PhotoRealisationService.java - Public visitor → Public quote API: submits request
src/main/java/com/bmhorizon/demandedevis/controller/DemandeDevisPublicController.java - Public quote API → Quote submission: delegates to
src/main/java/com/bmhorizon/demandedevis/controller/DemandeDevisPublicController.java - Quote submission → Image processing: processes images
src/main/java/com/bmhorizon/demandedevis/service/DemandeDevisService.java - Quote submission → File storage: stores files
src/main/java/com/bmhorizon/demandedevis/service/DemandeDevisService.java - Quote submission → Quote repository: saves request
src/main/java/com/bmhorizon/demandedevis/service/DemandeDevisService.java - Quote submission → Quote notifications: publishes event
src/main/java/com/bmhorizon/demandedevis/service/DemandeDevisService.java - Administrator → Authentication API: authenticates
src/main/java/com/bmhorizon/securite/controller/AuthController.java - Authentication API → Credential authentication: delegates to
src/main/java/com/bmhorizon/securite/controller/AuthController.java - Authentication API → JWT services: issues JWT
src/main/java/com/bmhorizon/securite/controller/AuthController.java - Credential authentication → User repository: looks up users
- File storage → S3 storage adapter: uses adapter
src/main/java/com/bmhorizon/storage/StockageS3.java