Skip to content
Francois edited this page Jan 8, 2026 · 12 revisions
image

ft_transcendence project gives the opportunity to make a custom project, by picking from a range of modules. We try to document here the concepts and lessons learned.

Languages and generic tools

Architecture

API documentation

Api Documentation

Service common architecture

Most services share a common layered architecture, consisting of

.
├── src
│   ├── controllers
│   ├── services
│   ├── data (optional)
│   ├── routes
│   ├── types
│   ├── config (optional)
│   └── utils
├── test
├── package.json
├── tsconfig.json
└── Dockerfile

Logs and Error Management

Error management and logging strategies vary by service. However, some common approaches are being implemented to facilitate code readability and app observability.


Security

Common risks we are addressing are related to

  • cross-site scripting (XSS)
  • SQL injection
  • vulnerable dependencies
  • authentication

Quality

Static Analysis and Linting

  • Static analysis options are defined in tsconfig.json (see TypeScript).
  • ESLint offers analysis tools.
  • Prettier helps harmonize formatting.

Testing

Git Hooks and commit lints

Continuous Integration


WEB - Backend framework

WEB - Frontend

WEB - Public API

WEB - ORM

WEB - Real-time features

WEB - Basic user interaction


ACCESS - WCAG Compliance

  • We considered Accessibility while developing frontend, although not aiming at 100% compliance with WCAG

UM - Basic user management

UM - Game statistics and match history

UM - Advanced permissions system

UM - OAuth 2.0

UM - 2FA


AI - Opponent


GAME - Pong

GAME - Remote players

GAME - Tournament system

GAME - Customization


DEVOPS - ELK Stak

DEVOPS - Backend as microservices


BLOCKCHAIN


CHOICE - Score display with LEDs

CHOICE - VR Pong

Clone this wiki locally