ProjectsWeb, games & communities
Transcendence
Online Onitama, as a team
- Period
- Jul 2026 – Oct 2026
- Context
- 42 curriculum
- Team
- group
- Grade
- not graded yet
- TypeScript
- NestJS
- Svelte
- Docker
- Prisma
- Node.js
- PostgreSQL
- DevOps
- Web
- Game
The last project of 42’s Common Core, as a team of five: a web adaptation of the board game Onitama, playable online against other players or against an AI.
The game
Onitama is played on a 5 × 5 board, with movement cards that pass between players. Our version offers matchmaking, invitations between friends, chat, profiles, 2FA and GDPR-related features, in a universe drawn by the team.
The AI picks its moves with an alpha-beta search, over four difficulty levels that change the search depth.
The architecture
The front-end is in Svelte, the back-end in NestJS, split into modules. Real-time parts (live game, queue, notifications) go through WebSockets, kept in sync by Redis. Data lives in PostgreSQL through Prisma.
On the security side, a web application firewall (ModSecurity) filters requests before the back-end, and all secrets are stored in Vault, generated on first launch.
My part
I worked on parts of the back-end and the DevOps: notably authentication and 2FA, users, friends, messages and emails, as well as setting up the back-end and its container.
With five people, the hardest part was not the code: we had to coordinate, agree on the interfaces between front and back, and communicate constantly.
What I took away
- In a team, a well-defined API saves days of misunderstandings.
- Security is designed into the architecture, not added at the end.