Kerboul 3d65ccb7fc
All checks were successful
SSH Backend Deploy / ssh-deploy (push) Successful in 11s
fix(routes): Mettre à jour les descriptions des statuts des projets et des vidéos pour plus de clarté
2025-04-27 14:51:40 +02:00

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 :

node cleanup.js delete

Documentation API

La documentation de l'API est disponible via Swagger à l'adresse /api-docs.

Description
No description provided
Readme 19 MiB
Languages
JavaScript 98.4%
Shell 1.1%
Dockerfile 0.5%