Ce projet mock est conçu pour les étudiants du laboratoire Angular afin de leur fournir une API backend simulée en utilisant json-server. L'objectif est de permettre aux étudiants de se familiariser avec les interactions backend/frontend dans une application de gestion de projets scolaires.
Le projet utilise json-server pour simuler une API RESTful. Les données sont stockées dans un fichier JSON (db.json) et les routes API sont définies dans server.js.
Pour cloner le projet, utilisez la commande suivante :
git clone https://github.com/ymahtat-dev/cigma-spm-mock-webservices.git
cd cigma-spm-mock-webservices
Pour installer les dépendances, utilisez la commande suivante :
npm install
Pour démarrer le serveur, utilisez la commande suivante :
npm start
ou
node server.js
Le serveur s'exécutera sur http://localhost:3000. Tous les services ont l'url prefixé par http://localhost:3000/api.
L'authentification est gérée à l'aide de JSON Web Tokens (JWT). Pour vous authentifier, envoyez une requête POST à http://localhost:3000/api/auth/login avec les informations d'identification suivantes :
- Utilisateur Administrateur
{
"username": "admin",
"password": "admin"
}
- Utilisateur Etudiant
{
"username": "azbennani",
"password": "1234567"
}
En cas de succès, un token JWT sera retourné. Utilisez ce token pour accéder aux routes protégées en l'ajoutant dans l'en-tête Authorization de vos requêtes comme suit :
Authorization: Bearer <votre_token_jwt>
- Authentification :
- POST http://localhost:3000/api/auth/login : Authentification de l'utilisateur.
- GET http://localhost:3000/api/auth/validate-token : Validation du token JWT.
- GET http://localhost:3000/api/auth/profile : Récupérer le profil de l'utilisateur connecté.
- PUT http://localhost:3000/api/auth/update-password : Modifier le mot de passe de l'utilisateur connecté.
- POST http://localhost:3000/api/auth/logout : Déconnexion de l'utilisateur.
- Gestion des Utilisateurs (Admin uniquement) :
- GET http://localhost:3000/api/users : Récupérer tous les utilisateurs.
- POST http://localhost:3000/api/users : Créer un nouvel utilisateur.
- PUT http://localhost:3000/api/users/:id : Mettre à jour un utilisateur existant.
- DELETE http://localhost:3000/api/users/:id : Supprimer un utilisateur.
- Gestion des Étudiants (Admin uniquement) :
- GET http://localhost:3000/api/students : Récupérer tous les étudiants.
- POST http://localhost:3000/api/students : Créer un nouvel étudiant.
- Gestion des Projets :
- GET http://localhost:3000/api/projects : Récupérer tous les projets (Admin) ou les projets de l'utilisateur connecté.
- POST http://localhost:3000/api/projects : Créer un nouveau projet (Étudiant uniquement).
- PUT http://localhost:3000/api/projects/:id : Mettre à jour un projet (Admin ou Étudiant responsable).
- DELETE http://localhost:3000/api/projects/:id : Supprimer un projet (Admin ou Étudiant responsable).
- GET http://localhost:3000/api/projects/:id : Récupérer un projet spécifique (Admin, Étudiant responsable ou membre).
- Gestion des Tâches :
- GET http://localhost:3000/api/tasks : Récupérer toutes les tâches (Admin) ou les tâches de l'utilisateur connecté.
- GET http://localhost:3000/api/projects/:projectId/tasks : Récupérer les tâches d'un projet spécifique (Admin, Étudiant responsable ou membre).
- POST http://localhost:3000/api/projects/:projectId/tasks : Créer une nouvelle tâche dans un projet (Admin, Étudiant responsable ou membre).
- PUT http://localhost:3000/api/tasks/:id : Mettre à jour une tâche (Admin ou propriétaire de la tâche).
- DELETE http://localhost:3000/api/tasks/:id : Supprimer une tâche (Admin ou propriétaire de la tâche).
- GET http://localhost:3000/api/tasks/:id : Récupérer une tâche spécifique (Admin ou propriétaire de la tâche).
- Gestion des Commentaires :
- GET http://localhost:3000/api/comments : Récupérer tous les commentaires (Admin) ou les commentaires de l'utilisateur connecté.
- GET http://localhost:3000/api/tasks/:taskId/comments : Récupérer les commentaires d'une tâche spécifique (Admin ou propriétaire de la tâche).
- POST http://localhost:3000/api/tasks/:taskId/comments : Créer un nouveau commentaire dans une tâche (Admin ou propriétaire de la tâche).
- PUT http://localhost:3000/api/comments/:id : Mettre à jour un commentaire (Admin ou propriétaire du commentaire).
- DELETE http://localhost:3000/api/comments/:id : Supprimer un commentaire (Admin ou propriétaire du commentaire).
- GET http://localhost:3000/api/comments/:id : Récupérer un commentaire spécifique (Admin ou propriétaire du commentaire).
- Données Maîtres (sans authentification) :
- GET http://localhost:3000/api/masterdata/user-types : Récupérer les types d'utilisateurs.
- GET http://localhost:3000/api/masterdata/studies-types : Récupérer les types de programmes d'études.
- GET http://localhost:3000/api/masterdata/status-flows : Récupérer les statuts de flux.
- GET http://localhost:3000/api/masterdata/task-types : Récupérer les types de tâches