SytSaS (Système de gestion de Salle de Sport) est une API RESTful développée avec Node.js, Express et MongoDB pour gérer un réseau de salles de sport.
- Gestion des adhérents (membres du club)
- Gestion des entraîneurs
- Gestion des salles de sport
- Gestion des équipements
- Gestion des abonnements
- Gestion des horaires de cours
- Gestion des disponibilités des entraîneurs
- Suivi des carrières des entraîneurs
- Suivi des progrès des adhérents (poids, etc.)
- Node.js (v14+)
- MongoDB (v4+)
- Cloner le dépôt
git clone <repository-url>
cd api-projet-nosql
- Installer les dépendances
npm install
-
Configurer la connexion à MongoDB Modifiez le fichier
config/database.jspour configurer la connexion à votre base de données MongoDB. -
Démarrer le serveur
npm start
Pour le développement, vous pouvez utiliser nodemon :
npm run dev
api-sytsas/
├── config/ # Configuration (base de données, etc.)
├── controllers/ # Contrôleurs pour gérer la logique métier
├── models/ # Modèles Mongoose
├── routes/ # Routes API
├── index.js # Point d'entrée de l'application
└── package.json
GET /api/adherents- Récupérer tous les adhérentsPOST /api/adherents- Créer un nouvel adhérentGET /api/adherents/:id- Récupérer un adhérent spécifiquePATCH /api/adherents/:id- Mettre à jour un adhérentDELETE /api/adherents/:id- Supprimer un adhérentGET /api/adherents/:id/abonnements- Récupérer les abonnements d'un adhérentGET /api/adherents/:id/suivi-poids- Obtenir l'historique du suivi de poidsPOST /api/adherents/:id/suivi-poids- Ajouter un suivi de poidsGET /api/adherents/with-active-subscriptions- Récupérer les adhérents avec abonnements actifs
GET /api/entraineurs- Récupérer tous les entraîneursPOST /api/entraineurs- Créer un nouvel entraîneurGET /api/entraineurs/:id- Récupérer un entraîneur spécifiquePATCH /api/entraineurs/:id- Mettre à jour un entraîneurDELETE /api/entraineurs/:id- Supprimer un entraîneurGET /api/entraineurs/:id/horaires- Récupérer les horaires d'un entraîneurGET /api/entraineurs/:id/disponibilites- Récupérer les disponibilités d'un entraîneurGET /api/entraineurs/:id/carrieres- Récupérer la carrière d'un entraîneurPOST /api/entraineurs/:id/disponibilites- Créer une disponibilitéGET /api/entraineurs/disponibles- Récupérer les entraîneurs disponibles
GET /api/salles- Récupérer toutes les sallesPOST /api/salles- Créer une nouvelle salleGET /api/salles/:id- Récupérer une salle spécifiquePATCH /api/salles/:id- Mettre à jour une salleDELETE /api/salles/:id- Supprimer une salleGET /api/salles/:id/equipements- Récupérer les équipements d'une salleGET /api/salles/:id/abonnements- Récupérer les abonnements actifs d'une salleGET /api/salles/:id/entraineurs- Récupérer les entraîneurs d'une salleGET /api/salles/:id/taux-occupation- Récupérer le taux d'occupationPOST /api/salles/:id/equipements- Ajouter un équipement à une salle
GET /api/equipements- Récupérer tous les équipementsPOST /api/equipements- Créer un nouvel équipementGET /api/equipements/:id- Récupérer un équipement spécifiquePATCH /api/equipements/:id- Mettre à jour un équipementDELETE /api/equipements/:id- Supprimer un équipementGET /api/equipements/disponibles- Récupérer les équipements disponiblesGET /api/equipements/fonction/:fonction- Récupérer les équipements par fonctionPATCH /api/equipements/:id/signaler- Signaler un équipement à réparerPATCH /api/equipements/:id/reparer- Marquer un équipement comme réparé
GET /api/abonnements- Récupérer tous les abonnementsPOST /api/abonnements- Créer un nouvel abonnementGET /api/abonnements/:id- Récupérer un abonnement spécifiquePATCH /api/abonnements/:id- Mettre à jour un abonnementDELETE /api/abonnements/:id- Supprimer un abonnementGET /api/abonnements/actifs- Récupérer tous les abonnements actifsPOST /api/abonnements/souscrire- Souscrire à un abonnementPATCH /api/abonnements/:id/renouveler- Renouveler un abonnementPATCH /api/abonnements/:id/resilier- Résilier un abonnement
GET /api/horaires- Récupérer tous les horairesPOST /api/horaires- Créer un nouvel horaireGET /api/horaires/:id- Récupérer un horaire spécifiquePATCH /api/horaires/:id- Mettre à jour un horaireDELETE /api/horaires/:id- Supprimer un horaireGET /api/horaires/salle/:salleId- Récupérer les horaires par salleGET /api/horaires/jour/:jour- Récupérer les horaires par jourPATCH /api/horaires/:id/activer- Activer un horairePATCH /api/horaires/:id/desactiver- Désactiver un horaire
GET /api/disponibilites- Récupérer toutes les disponibilitésPOST /api/disponibilites- Créer une nouvelle disponibilitéGET /api/disponibilites/:id- Récupérer une disponibilité spécifiquePATCH /api/disponibilites/:id- Mettre à jour une disponibilitéDELETE /api/disponibilites/:id- Supprimer une disponibilitéGET /api/disponibilites/date/:date- Récupérer les disponibilités par datePATCH /api/disponibilites/:id/reserver- Réserver une disponibilitéPATCH /api/disponibilites/:id/annuler- Annuler une réservationPOST /api/disponibilites/recurrence- Créer des disponibilités récurrentes
GET /api/carrieres- Récupérer toutes les carrièresPOST /api/carrieres- Créer une nouvelle carrièreGET /api/carrieres/:id- Récupérer une carrière spécifiquePATCH /api/carrieres/:id- Mettre à jour une carrièreDELETE /api/carrieres/:id- Supprimer une carrièreGET /api/carrieres/actives- Récupérer les carrières activesPATCH /api/carrieres/:id/terminer- Terminer une carrièrePOST /api/carrieres/:id/performance- Ajouter une performanceGET /api/carrieres/:id/performances- Récupérer les performances
- Personne : Classe générique avec informations personnelles (nom, prénom, adresse, etc.)
- Adhérent : Membre inscrit à une salle de sport
- Entraîneur : Personne qui donne des cours dans une salle
- Salle : Représente une salle de sport physique
- Abonnement : Lien entre un adhérent et une salle
- Equipement : Matériel disponible dans une salle
- Horaire : Créneau pour un cours donné par un entraîneur
- Disponibilité : Créneau libre d'un entraîneur
- Carriere : Période d'activité d'un entraîneur dans une salle
Ce projet est sous licence ISC.