Anthony ELUECQUE & Alexis YON
Le service Match gère les informations relatives aux matchs, y compris :
- L'état des matchs
- Les participants
- Les dates et scores
- Le vainqueur
- Les invitations et la participation aux matchs
- ✅ TypeScript (TS)
- ✅ MikroORM & PostgreSQL
- ❌ Envoi des statistiques via RabbitMQ (Non implémenté)
| Méthode | Endpoint | Description |
|---|---|---|
| GET | /match |
Récupérer tous les matchs (ouverts ou par invitation) |
| POST | /match |
Créer un nouveau match (ouvert ou par invitation) |
| GET | /match/{matchId} |
Consulter les détails d’un match |
| PUT | /match/{matchId} |
Mettre à jour l’état d’un match (début, finalisation, etc.) |
| GET | /match?userId={userId} |
Lister les matchs d’un utilisateur (max 3 matchs simultanés) |
| DELETE | /match/{matchId} |
Supprimer un match |
| POST | /match/{matchId}/invite |
Inviter un ou plusieurs utilisateurs à rejoindre un match |
| POST | /match/{matchId}/accept |
Accepter une invitation et rejoindre un match |
| POST | /match/{matchId}/decline |
Refuser une invitation |
| POST | /match/{matchId}/join |
Rejoindre un match public (si les conditions sont remplies) |
Un workflow GitHub Actions a été mis en place pour :
- Déployer automatiquement la documentation à l'adresse : Documentation Match Service
- Lancer les tests unitaires pour éviter toute régression lors d'un merge sur
main
- Utilisation d'une memory database pour exécuter les tests sans affecter la base réelle
- Mise en place de seeders pour initialiser des jeux de données par défaut
- Un environnement Docker a été mis en place comprenant :
- L'application (
disten mode build) - Une base de données PostgreSQL
- L'application (
- Une branche spécifique
feature/auth-providera été créée pour intégrer l’authentification - Problème actuel : les URL sont en dur dans le code du service Auth, ce qui empêche la testabilité
- Solution temporaire : modifier manuellement les adresses IP attribuées
- Node.js
>= 20.x - Docker
>= 20.x - PostgreSQL
>= 15.x
# Cloner le repo
git clone https://github.com/manamon-archid/match.git
cd match
# Installer les dépendances
npm installCréer un fichier .env à la racine avec :
PORT = "3000"
# DB PART
DB_HOST = "localhost"
DB_PORT = "PORT"
DB_NAME = "YOUR_DB_NAME"
DB_USER = "YOUR_USER_NAME"
DB_PASSWORD = "YOUR_USER_PASSWORD"
# Démarrer avec Node.js
npm run build
npm run start
# Ou démarrer avec Docker
docker compose up --build -d🚀 Happy coding ! 🎮