No description
Find a file
2026-07-29 18:40:15 +02:00
docs doc: new class diagram 2026-07-29 18:40:15 +02:00
README.md docs: README project 2026-07-26 17:19:59 +02:00

Jeu de 7 Familles en ligne

Jeu de 7 familles multijoueur, jouable sur navigateur et compatible smartphones.

Sommaire

Structure du projet

Le projet est réparti sur 4 repos, à cloner côte à côte dans un même dossier parent :

jeu7familles/

├── frontend/ # Interface utilisateur (NextJS)

├── backend/ # API et logique métier (NestJS)

├── documentation/ # Ce repo

└── infra/ # Configuration Docker pour le développement local

Stack technique

Composant Technologie
Langage TypeScript
Frontend Next.js, WebSocket (socket.io-client)
Authentification Discord OAuth / Google OAuth (via NextAuth)
Backend NestJS, Passport, WebSocket (socket.io)
Base de données PostgreSQL, TypeORM
Conteneurisation Docker, Docker Compose
Gestionnaire de paquets npm
Forge Git Forgejo

Le frontend et le backend sont volontairement séparés pour des raisons de sécurité.

Prérequis

  • Node.js 20 ou supérieur
  • npm
  • Docker Desktop
  • Accès à l'instance Forgejo du projet

Lancer le projet en local

Option 1 — Avec Docker (recommandé)

cd infra
docker compose up -d

Ça démarre 3 conteneurs :

  • postgres — base de données PostgreSQL (port 5432, interne au réseau Docker)
  • backend — API NestJS (port 3001)
  • frontend — application NextJS (port 3000)

Accès :

Pour arrêter :

docker compose down

Option 2 — En développement local (sans conteneuriser front/back)

Utile pour profiter du hot-reload natif de npm plutôt que de rebuild les images à chaque changement.

1. Démarrer uniquement Postgres

cd infra
docker compose up -d postgres

2. Configurer le backend

Créez un fichier .env dans backend/ (non versionné) : DATABASE_HOST=localhost DATABASE_PORT=5432 DATABASE_USER=dev DATABASE_PASSWORD=dev DATABASE_NAME=sept_familles

Puis :

cd backend
npm install
npm run start:dev

3. Démarrer le frontend

cd frontend
npm install
npm run dev

Dépôts liés

Roadmap

Voir docs/roadmap.md pour le détail des livrables.