i have transcended 🤯

It's been a long time, long time since my last post here. And during this time, a lot of things happened:
- I survived France's harsh winter. I missed Brazilian weather every single day.
- I got to see how beautiful and shiny Paris is during Christmas time, and went to amazing Christmas markets.
- I started working for a French bank (I'll save that for another post).
- I finally finished 42's common core 🥳 I did the notorious final project: Transcendence let's focus on that for now

building a gaming platform for people to socialize and play games together 🎮
i got together with my friends Teo and Alisa to build a social-media-like website where players can create accounts, connect with friends, live chat with them, and most importantly: play games together. The main game? classic pong.

tech stack 👨💻
We had some constraints to follow. We could choose the language and framework for our backend, but for the frontend, it had to be pure javascript
✨ vanilla javascript, no frameworks allowed ✨
So we went with python's django for the backend, using django channels to handle websockets for the live chat, matches' handshake, and to deal with the real-time game updates. The whole game was managed server-side with the updates being sent in real-time to the clients to render the game on the screen. This ensured consistency among the clients, and even if one player disconnected, they could come back to continue the match.
some cool features
- an AI to play against when you have no one to play with 😢
- power-ups that can be used against the opponents
- compliance with the GDPR (General Data Protection Regulation), which includes users' complete control over the data stored, data anonymization, and others
- online users' matchmaking to play with random people
- up to 4 players tournaments optimized based on the users' ranks
- match history, game customization, and performance statistics
- remote authentication (login with google)
- two-factor authentication - 2FA
and the coolest feature: a second game, the classic tic-tac-toe, but with a catch
In our tic-tac-toe, you can choose, instead of marking one place on the grid, to switch one of your places with an opponent's place. That makes the game way more strategic.

final considerations
It was really satisfying to work with such a great team. Everybody contributed a lot to the project and was full of ideas. I think all of us came out of this project as better developers. Building a whole complex app like this from scratch can be very challenging, but totally worth it.
And we all got a cool t-shirt to celebrate this unforgettable moment in our careers.


now it's time for the specializations 🚀 we're not done with 42 yet