Project

Tournament Management Web App

A tournament management app that lets you create tournaments, organize them, and manage different roles like managers, operators, and players with ease.

Problems solved

My client wanted a powerful tournament app to manage games in his restaurant. I built a web app with roles for managers, operators, and players. Managers can create tournaments and handle details. Operators manage teams, players, and enter scores. Team leaders create teams and add players. A display screen shows real-time tournament progress, so everyone stays updated. This app makes it easy for different people to manage and track games.

Challenges I ran into

  • Managing Different Roles: Since I was building features for various roles like managers, operators, and players was challenging. I had to make sure each role only accessed its specific features—like managers creating and ending tournaments. This required precise role-based access control.
  • Real-Time Updates: I had to sync real-time updates for the display screen, which showed tournament registration, match progress, and player scores. It was a bit complex. I had to ensure instant data synchronization to keep the display screen accurate.
  • Testing: Testing was tough because of the different roles. I simulated the entire tournament workflow multiple times on my laptop to find and fix as many bugs as possible.
  • Limited Time: I had only 3 weeks to complete the project. I organized the tasks into milestones: Week 1 focused on the frontend, Week 2 on backend and logic, and Week 3 on adding extra features and final testing.

Things I learned

This project was tough but it taught me some key skills. First, I learned about role-based access control—setting up specific permissions for each user role was important for security and clarity in the app.

Another big learning point was creating a real-time data synchronization system for the display screen. It taught me how to update app data instantly and consistently.

Apart from that, managing multiple user flows enhanced my testing skills, as I saw the importance of testing functions specific to each role.

Stack

  • NextJS (frontend)
  • ExpressJS & NodeJS (backend)
  • MongoDB & Mongoose (database)

Gallery

image 1
image 2
image 3
image 4
image 5
image 6
image 7
image 8
image 9
image 10