feat(database): Implement DatabaseManager for managing database structure and initialization
All checks were successful
SSH Backend Deploy / ssh-deploy (push) Successful in 1m51s
All checks were successful
SSH Backend Deploy / ssh-deploy (push) Successful in 1m51s
feat(routes): Add camera, image, measurement, project, and video routes with Swagger documentation feat(services): Create storageService and videoService for file management and video processing fix(errorHandler): Enhance error handling with standardized responses and database operation wrappers
This commit is contained in:
86
README.md
Normal file
86
README.md
Normal file
@@ -0,0 +1,86 @@
|
||||
# Timelapse Backend
|
||||
|
||||
Ce projet est une API de backend pour gérer une solution de timelapse avec capture, stockage et transformation d'images en vidéos.
|
||||
|
||||
## Architecture
|
||||
|
||||
L'application a été refactorisée pour suivre un modèle MVC (Modèle-Vue-Contrôleur) et respecter le principe de séparation des préoccupations. Voici la structure du projet :
|
||||
|
||||
```
|
||||
/src
|
||||
/config - Configuration centralisée de l'application
|
||||
/controllers - Logique de traitement des requêtes HTTP
|
||||
/database - Connexion à la base de données
|
||||
/data - Compatibilité avec l'ancienne version (à terme, à supprimer)
|
||||
/middlewares - Middlewares Express
|
||||
/models - Modèles de données et logique d'accès à la BDD
|
||||
/routes - Définition des routes de l'API
|
||||
/services - Services métier et logique complexe
|
||||
/utils - Utilitaires partagés
|
||||
/video - Compatibilité avec l'ancienne version (à terme, à supprimer)
|
||||
```
|
||||
|
||||
### Points d'entrée
|
||||
|
||||
- `server.js` - Point d'entrée principal du serveur Express
|
||||
- `api.js` - Routes principales de l'API
|
||||
|
||||
## Composants principaux
|
||||
|
||||
### Modèles
|
||||
|
||||
Les modèles encapsulent la logique d'accès aux données et les règles métier :
|
||||
|
||||
- `Project.js` - Gestion des projets de timelapse
|
||||
- `Measurement.js` - Gestion des mesures et images
|
||||
- `Video.js` - Gestion des vidéos générées
|
||||
- `Camera.js` - Gestion de la caméra et des paramètres de capture
|
||||
|
||||
### Contrôleurs
|
||||
|
||||
Les contrôleurs gèrent le traitement des requêtes HTTP et interagissent avec les modèles et services :
|
||||
|
||||
- `projectController.js` - Gestion des projets
|
||||
- `measurementController.js` - Gestion des mesures
|
||||
- `videoController.js` - Gestion des vidéos
|
||||
- `imageController.js` - Gestion des images et téléchargements
|
||||
- `cameraController.js` - Gestion des paramètres de la caméra
|
||||
|
||||
### Services
|
||||
|
||||
Les services implémentent la logique métier complexe :
|
||||
|
||||
- `storageService.js` - Gestion du stockage des fichiers
|
||||
- `videoService.js` - Service de création de vidéos à partir d'images
|
||||
|
||||
### Routes
|
||||
|
||||
Les routes définissent les points d'accès HTTP de l'API :
|
||||
|
||||
- `projectRoutes.js` - Routes pour les projets
|
||||
- `measurementRoutes.js` - Routes pour les mesures
|
||||
- `videoRoutes.js` - Routes pour les vidéos
|
||||
- `imageRoutes.js` - Routes pour les images
|
||||
- `cameraRoutes.js` - Routes pour la caméra
|
||||
|
||||
## Déploiement
|
||||
|
||||
Le déploiement est géré via Docker Compose, avec une configuration dans `docker-compose.yml`. Le script `deploy.sh` gère le déploiement automatisé.
|
||||
|
||||
## Phase de Transition
|
||||
|
||||
L'application est actuellement en phase de transition de l'ancienne architecture vers la nouvelle. Les fichiers suivants sont des ponts de compatibilité qui seront progressivement supprimés :
|
||||
|
||||
- `src/database/database_manager.js` - Redirige vers les nouveaux modèles
|
||||
- `src/data/storage_manager.js` - Redirige vers le nouveau service de stockage
|
||||
- `src/video/videoManager.js` - Redirige vers le nouveau service vidéo
|
||||
|
||||
Pour supprimer les fichiers obsolètes une fois toutes les références mises à jour, utilisez :
|
||||
|
||||
```bash
|
||||
node cleanup.js delete
|
||||
```
|
||||
|
||||
## Documentation API
|
||||
|
||||
La documentation de l'API est disponible via Swagger à l'adresse `/api-docs`.
|
||||
Reference in New Issue
Block a user