Info 441 Final Project
Our application is designed for students, lifelong learners, and competitive thinkers who want to recapture the thrill of testing their limits, both in speed and in skill. We’re building a gamified environment where users race to solve math problems as quickly and accurately as possible, with results displayed instantly on a live leaderboard. Users can add friends, challenge one another, and see their progress over time. We want to make problem-solving feel energetic, social, and fun again, like it did when we were kids racing through times tables in the classroom.
Our target audience includes high school and college students looking to sharpen their mathematical and computational skills, as well as adults who simply miss that old spark of academic competition. Many of us remember those timed worksheets or classroom challenges that turned learning into a friendly race. While those moments were simple, they built confidence, speed, and a sense of excitement that often fades in more advanced academic settings. Our application aims to recreate that sense of nostalgia, bringing back the excitement of competing against the clock, but in a modern, digital space where users can measure their improvement and connect with others who share that same enthusiasm.
Our audience will be drawn to this application because it transforms practice into play. Traditional problem-solving platforms are often solitary and static, focusing solely on correctness. In contrast, our app rewards speed, consistency, and improvement, making learning feel alive and motivating. The social and competitive elements such as leaderboards, friend lists, and head-to-head challenges, provide the same adrenaline rush as those childhood math sprints, while helping users build lasting skills in a low-pressure, supportive environment. Whether someone is preparing for a math competition, brushing up for a technical interview, or just looking for a fun way to stay sharp, our platform creates an experience that’s both productive and nostalgic.
As developers, we’re inspired by that feeling of childhood excitement, when math wasn’t just about getting the right answer, but about how quickly you could think on your feet. We want to build an application that rekindles that spirit while leveraging the power of modern technology. We’re excited by the technical challenge of creating a real-time, responsive platform that connects users across devices, and by the human challenge of making learning genuinely enjoyable again. Ultimately, our goal is to bring back the joy of discovery, competition, and growth, capturing the same spark that first made many of us fall in love with math in the first place.
| Priority | User | Description | Technical Implementation |
|---|---|---|---|
| P0 | As a user | I want to create an account to sign in and out of | Use Azure authentication when creating accounts, and add them to the database |
| P0 | As a user | I want to play a game | Generate math problems and have the player solve as many as they can before a timer (45 seconds?) |
| P1 | As a user | I want to see and add friends | Store an array of friends as part of the user |
| P1 | As a user | I want to see my high score | Implement a high score database to fetch score |
| P2 | As a user | I want to play versus my friends | From friends list, send match requests through WebSocket if they are online; store friends in a table |
| P2 | As a user | I want to see top players | Fetch top 20 players from high score database |
| P3 | As a user | I want to see my lifetime statistics | Store lifetime stats for each player as a part of user information |
| P3 | As a user | I want to distract my opponent in a versus match | Play a soundboard/image |
| P3 | As a user | Have a tutorial | Show an onboarding tutorial after signup explaining the game and adding friends |
| P3 | As a user with friends | I want to see my friends' high scores | Search players and send friend requests; friends list displays high scores from database |
| P3 | As a user | I want to see my friends' activity status | WebSocket connection shows if a player is online; if socket closes, log last online timestamp in DB |
| P4 | As a user | Have custom themes | Implement frontend themes; allow users to change colors stored in their settings table |