ft_transcendence was a group project that aimed to create a web application where users can play games and tournaments of the well-known game of Pong. The app requires registration and login with OAUTH 2.0 and Two-Factor Authentication.
The project was developed using Django for the backend and vanilla JavaScript and Bootstrap for the frontend. We had to use Postgres as the database, and the entire project was deployed using Docker and Docker Compose.
I primarily worked on the backend and some aspects of the frontend. Some of the main tasks that I worked on in the backend included helping with the implementation of JWT, implementing a Two-Factor Authenticator with a QR code generator, which allowed users to use an Authenticator App for added security, developing a game settings API to change parameters for the game and saving them into the database, and adding form validation.
Regarding the frontend, my main tasks included working on the game settings menu, game customizations, and Two-Factor Authenticator forms.
I also helped to implement translations on the website and within the canvas, which had to be done in both the backend and the frontend.
In the end, we all worked on both the frontend and the backend, so there's a bit of everyone in every part of the project.
Undoubtedly, the biggest challenge we faced was working on a project that required us to do things we had never done before. It wasn't much of a challenge to learn a new programming language like JavaScript or Python (which I already knew a little bit about) since we had already learned languages like C and C++.
However, learning web development and frameworks when we had never worked on any web projects before was definitely challenging. This project helped me learn a lot about various web concepts and how web applications are developed, which made me genuinely fall in love with this area of software development.