Skip to content

esgi-insomniak/Ton-Yu-Gi-Oh

Repository files navigation

Nest JS - Yu-Gi-Oh! API

Fonctionnalités Nest.js (pour le calcul de la note de 15/20)

✅ Contrîleurs
    - (server/gateway/src/controllers/cards/card.controller.ts)
✅ Providers
    - (server/card-service/src/services/archetype.service.ts)
✅ Modules
    - (server/gateway/src/modules/app.module.ts)
✅ Pipes
    - (server/gateway/src/interfaces/user-deck-service/userDeck/user-deck.body.dto.ts)
✅ Guard
    - (server/gateway/src/services/guard/authorization.guard.ts)
✅ Authentification JWT
    - (server/auth-service/src/services/token.service.ts)
✅ Gestion d’au moins deux rîles (administrateur, utilisateur, ..)
    - (user & admin)
✅ SĂ©curisation des variables d’environnement
    - (utilisation de SOPS => SOPS.md)
✅ Utilisation d’une base de donnĂ©es NoSQL ou SQL
    - (postgres)
✅ Validation des donnĂ©es reçues depuis l’extĂ©rieur
    - (class-validator)
✅ Versionning de toutes les routes
    - (server/gateway/src/controllers/test/test.controllers.ts)
❌ Sauvegarde de la base de donnĂ©es Ă  intervalle rĂ©gulier
❌ Logging des erreurs
✅ Compression des rĂ©ponses
    - (server/gateway/src/main.ts)
✅ En-tĂȘtes de sĂ©curitĂ©
    - (server/gateway/src/main.ts)
✅ Gestion des CORS
    - (server/gateway/src/main.ts)
✅ Rate-limit
    - (server/gateway/src/modules/app.module.ts)

Bonnes Pratiques (pour le calcul de la note de 15/20)

✅ Base de donnĂ©es conteneurisĂ©e
    - (docker-compose.yml)
✅ Serveur Nest.js conteneurisĂ©
    - (docker-compose.yml)
✅ Code commentĂ©
✅ Pas de type any
✅ Projet documentĂ©
✅ Livrable sans variables sensibles
✅ Historique Git avec participation de l’ensemble des membres du groupe

Bonus (pour le calcul de la note de 5/20)

✅ Tests unitaires
✅ Front-end pour tester l’API
    - (app/client)
❌ GraphQL
✅ Microservices
    - (server/card-service)
✅ OpenAPI (Swagger)
❌ Librairie NPM
✅ IntĂ©gration continue
✅ DĂ©ploiement continu avec hĂ©bergement public

Les fonctionnalitĂ©s non demandĂ©s 🙂

✅ Gestion des websockets
✅ Adapter les guards pour fonctionner en http & ws

Installation

A la racine du projet lancer la commande suivante pour installer les dépendances de l'API Gateway et des microservices:

make copy-env
make start (petite pause ☕)

Cette commande permet de charger les données de bdd

make feed-db

Pour lancer les tests d'un service Remplacer le nom du service par le service que vous voulez tester

make local-test service=user-service-node

Authentification

Lors du register, un mail est envoyé avec un lien pour valider le compte Le mailer local est disponible ici : http://localhost:9025

Swagger

Le lien vers le swagger est disponible ici : localhost:8000/api/#/

Base de données

Un adminer est disponible pour accéder à la base de données de chaque service est est disponible ici : http://localhost:9000

Identifiants par défaut :

system: PostgreSQL
server: "nom-du-service"-service-postgres
-   (ex: user-service-postgres)
username: postgres
password: postgres