Skip to content

1Kak-s/TaskForge

Repository files navigation

TaskForge - TIC-WEB1 /

Projet de gestion de taches (trello).

Description

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.

Technologies utilisees

  • MariaDB pour la base de donnees
  • NestJS pour l'API REST
  • TypeORM pour la gestion de la base de donnees

Structure 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

Prerequis

  • Node.js version 20 ou superieure
  • MariaDB ou MySQL installe sur votre machine
  • npm

Installation

  1. Cloner le projet et aller dans le dossier

  2. Installer les dependances

npm install
  1. Creer la base de donnees MariaDB

Ouvrir MySQL :

mysql -u root -p

Creer la base :

CREATE DATABASE taskforge_db;
EXIT;
  1. Importer le schema de la base de donnees
mysql -u root -p taskforge_db < schéma.sql
  1. 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
  1. Lancer l'application
npm run start:dev

L'API sera accessible sur http://localhost:3000

API

Status

  • 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

Users

  • 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

Projects

  • 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

Tasks

  • 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

Tests

Pour les tests je les fait avec Thunder Client directement dans VSCode avec cette adresse (http://localhost:3000/..).

About

Trello

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors