| docs | ||
| README.md | ||
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 :
- Frontend : http://localhost:3000
- Backend : http://localhost:3001
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.