Skip to content

ImadSlm/collab_api

Repository files navigation

API de Gestion de tâches collaboratives

Description

Ce projet est une API qui permet aux utilisateurs de gérer des tâches et de collaborer avec les membres de l'équipe. Il offre des fonctionnalités telles que la création, la modification, la suppression de tâches et l'authentification des utilisateurs.

Technologies utilisées

  • Node.js
  • Express
  • Sequelize
  • MariaDB
  • Docker
  • Kubernetes
  • Jest
  • Supertest
  • Postman
  • SonarQube
  • Jira

Endpoints

  • POST /auth - Créer ou Authentifier un utilisateur
  • POST /tasks - Créer une nouvelle tâche
  • GET /users - Afficher tous les utilisateurs
  • GET /tasks - Afficher toutes les tâches
  • PUT /task/:id - Mettre à jour une tâche
  • DELETE /task/:id - Supprimer une tâche

Sonarqube

Résultat de l'analyse Sonarqube

Tests

Ce projet inclut plusieurs types de tests pour garantir la qualité et la sécurité du code.

Tests de sécurité

  • Prévention des injections SQL : Vérifie que l'application est protégée contre les attaques par injection SQL.
  • Prévention des attaques XSS : Vérifie que l'application est protégée contre les attaques par script intersite (XSS).
  • Hachage des mots de passe : Vérifie que les mots de passe des utilisateurs sont correctement hachés avant d'être stockés.
  • Protection contre les attaques par force brute : Limite le nombre de tentatives de connexion pour prévenir les attaques par force brute.

Tests fonctionnels

  • Création d'utilisateur : Vérifie que les utilisateurs peuvent être créés avec des informations valides.
  • Connexion d'utilisateur : Vérifie que les utilisateurs peuvent se connecter avec des informations valides.
  • Création de tâche : Vérifie que les tâches peuvent être créées avec des informations valides.
  • Modification de tâche : Vérifie que les tâches peuvent être modifiées avec des informations valides.
  • Suppression de tâche : Vérifie que les tâches peuvent être supprimées avec des informations valides.

Tests d'intégration

  • Endpoints API : Vérifie que les endpoints de l'API fonctionnent correctement et retournent les réponses attendues.
  • Base de données : Vérifie que les opérations de base de données (création, lecture, mise à jour, suppression) fonctionnent correctement.

Docker

Pour utiliser ce projet avec Docker :

docker-compose up --build

Pipeline DevOps

Ce projet utilise un pipeline CI/CD pour automatiser les processus de développement, de test et de déploiement.

CI/CD

Le pipeline CI/CD est défini dans le fichier .github/workflows/ci.yaml. Il comprend les étapes suivantes :

  1. Build et Test :
    • Vérifie le code source et installe les dépendances.
    • Exécute les tests pour s'assurer que le code fonctionne correctement.
  2. Build Docker :
    • Construit l'image Docker de l'application.
    • Pousse l'image Docker vers Docker Hub.
  3. Analyse SonarQube :
    • Exécute une analyse de code avec SonarQube pour vérifier la qualité du code.

Kubernetes

Le projet utilise Kubernetes pour le déploiement et la gestion des conteneurs. Les fichiers de configuration Kubernetes se trouvent dans le répertoire k8s/. Ils définissent les ressources suivantes :

  • Déploiements : Gère le déploiement des applications et des bases de données.
  • Services : Expose les applications et les bases de données pour permettre la communication entre elles.
  • Secrets : Stocke les informations sensibles telles que les mots de passe de la base de données.

Gestion des tickets

Ce projet intègre également la gestion de tickets Jira, à l'aide de ces endpoints :

  • POST /ticket - Créer un ticket
  • GET /ticket/:id - Récupérer un ticket
  • PUT /ticket/:id - Modifier un ticket

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published