Below are example screenshots of the main pages. Replace the image paths with your own:
A modern, full-stack, microservices-based Pong platform.
- Real-time multiplayer Pong (1v1, AI, tournaments)
- User authentication, profiles, stats, and 2FA
- Matchmaking and friend system
- Tournament mode with blockchain-backed score recording (Avalanche)
- Modern frontend (Vite + TypeScript)
- Scalable, containerized backend (Node.js, Fastify, SQLite/Postgres)
- Traefik reverse proxy with HTTPS
ft_transcendence/
โโโ frontend/ # Vite app (UI, game logic)
โโโ services/
โ โโโ gateway-service/ # API Gateway (Fastify)
โ โโโ user-service/ # Users, auth, stats, 2FA
โ โโโ game-service/ # Game engine, WebSocket
โ โโโ blockchain-service # Blockchain integration
โโโ shared/ # Shared types, DTOs
โโโ scripts/ # DevOps, setup, testing
โโโ docs/ # Architecture, setup, API docs
โโโ traefik/ # Traefik config (TLS, routing)
- Node.js 20+
- Docker & Docker Compose
- npm or yarn
- Generate .env file
make setup
- Install dependencies and build
make
- Start all services
make up
- Open https://localhost:8443 in your browser.
- Other PCs on your network can connect using your host's IP address and port 8443 (e.g.,
https://<host-ip>:8443).
- Frontend: Modern UI, game client (port 8443 via Traefik)
- Gateway Service: API gateway, routing, security (port 3000)
- User Service: User CRUD, profiles, stats, 2FA (port 3002)
- Game Service: Real-time Pong, WebSocket (ports 5001, 5002)
- Blockchain Service: Tournament score recording (optional)
- Each service is independent (develop/run separately)
- Hot reload supported in Docker dev setup
- Shared types/interfaces in
shared/
- Build all:
make build - Start all:
make up - Stop all:
make down - Rebuild:
make red - Open DB shell:
make db
- Build a service:
cd services/user-service && docker build -t ft_transcendence-user-service . - Run all:
docker-compose up -d - Dev mode (hot reload):
docker-compose -f docker-compose.dev.yml up -d
- Each service uses its own
.envfile (seegenerate_env.sh) - Traefik config in
traefik/ - Database: SQLite (dev), Postgres (prod possible)
MIT
42 Ft_Transcendence ยฉ 2025


