Projet de gestion de taches (trello).
TaskForge est une application qui permet de gerer des projets et des taches. Chaque projet peut contenir plusieurs taches, et chaque tache a un statut et peut etre assignee a un utilisateur.
- MariaDB pour la base de donnees
- NestJS pour l'API REST
- TypeORM pour la gestion de la base de donnees
La base contient 5 tables :
- status : les differents statuts possibles pour les taches
- users : les utilisateurs de l'application
- projects : les projets
- tasks : les taches associees aux projets
- users-tasks : les assignations entre utilisateurs et taches
- Node.js version 20 ou superieure
- MariaDB ou MySQL installe sur votre machine
- npm
-
Cloner le projet et aller dans le dossier
-
Installer les dependances
npm install- Creer la base de donnees MariaDB
Ouvrir MySQL :
mysql -u root -pCreer la base :
CREATE DATABASE taskforge_db;
EXIT;- Importer le schema de la base de donnees
mysql -u root -p taskforge_db < schéma.sql- Creer un fichier .env a la racine du projet
Copier le fichier .env.example et le renommer en .env, puis modifier avec vos informations :
DB_HOST=localhost
DB_PORT=3306
DB_USERNAME=root
DB_PASSWORD=votre_mot_de_passe
DB_DATABASE=taskforge_db
PORT=3000
- Lancer l'application
npm run start:devL'API sera accessible sur http://localhost:3000
-
GET /status - Liste tous les statuts
-
GET /status/:id - Details d'un statut
-
POST /status - Creer un statut - Body : { "label": "en cours" }
-
PUT /status/:id - Modifier un statut - Body : { "label": "termine" }
-
DELETE /status/:id - Supprimer un statut
-
GET /users - Liste tous les utilisateurs
-
GET /users/:id - Details d'un utilisateur
-
POST /users - Creer un utilisateur - Body : { "username": "Dourdan", "email": "dourdan@rerc.com" }
-
PUT /users/:id - Modifier un utilisateur - Body : { "username": "nouveau_nom", "email": "nouveau_email.com" }
-
DELETE /users/:id - Supprimer un utilisateur
-
GET /projects - Liste tous les projets
-
GET /projects/:id - Details d'un projet
-
POST /projects - Creer un projet - Body : { "name": "Mon projet", "description": "description projet" }
-
PUT /projects/:id - Modifier un projet - Body : { "name": "nouveau nom", "description": "nouvelle description" }
-
DELETE /projects/:id - Supprimer un projet
-
GET /tasks - Liste toutes les taches
-
GET /tasks/:id - Details d'une tache
-
POST /tasks - Creer une tache - Body : { "title": "ma task", "description": "description", "project_id": 1, "status_id": 1 }
-
PUT /tasks/:id - Modifier une tache - Body : { "title": "new title", "description": "new description", "project_id": 1, "status_id": 2 }
-
DELETE /tasks/:id - Supprimer une tache
Pour les tests je les fait avec Thunder Client directement dans VSCode avec cette adresse (http://localhost:3000/..).