Inspiration

As a teenager myself, I know how boring and repetitive school can feel. Oftentimes, kids will not be engaged with school and think of school as a chore rather than a learning experience. This lack of enthusiasm for the school system is often what kills the curiosity in many students, making this a major problem within the education system. Colosseum aims to fix this issue and make learning more fun.

What it does

Colosseum is an app where students can create question banks and practice tests from their school notes before a test. They can then create a match and invite a friend, to see who can get a higher score on their practice exams. This creates competitiveness and engagement. To add to the fun, there is also a leveling system and a shop, where rewards can be unlocked and purchased using in-app currency. In-app currency is awarded to players who win matches, further encouraging people to play the game and improve their knowledge of the school material.

How I built it

Colosseum uses Firebase to handle user authentication. MongoDB Atlas is used to store question banks and user information. It was made with Flutter and Dart in Visual Studio Code.

Challenges I ran into

A major challenge I ran into was building the match system. Specifically, I had difficulty determining the winner of each match. Counting up the scores on the local machine was easy enough but comparing them with the opponent's score on a separate machine required data transmission between two machines. To accomplish this, I used MongoDB to serve as the middleman. The app collected the user's score and sent it to the MongoDB Atlas database, wherein the score was stored. The same was done for the other user playing in the same match. Then, both scores were retrieved from the cloud database and compared, allowing the app to determine the winner.

Accomplishments that I'm proud of

One accomplishment I am very proud of is the match system. In the app, users enter a create page, where they create questions and then start a match. The questions are uploaded to the MongoDB database under a unique match code. The user is given the match code as well. Then, the user proceeds to the join page, where they enter in the match code and the app retrieves the practice questions for both players to tackle.

What I learned

I learned a great deal from this project. This was my first-time using Dart and Flutter to create an app, as well as MongoDB and Firebase. Thus, not only did I learn a new programming language and framework, but I also learned how to create and manage databases. The skills I gained in creating this project can surely be applied in future projects.

What's next for Colosseum

While the foundation for Colosseum is finished, I would like to add more items to the in-app shop. Currently, the only item is a powerup that can be used to gain an edge in matches. However, in the future, I would like to add cosmetic items such as skins or avatars, as well as an achievement system. All of these would be much welcome polish for the app and improve user satisfaction and engagement.

When signing up or logging in, the app uses Firebase, which requires a real Gmail account and password Once you create a match, send the code to the friend you want to go against

Built With

Share this project:

Updates