Inspiration

Our project was inspired by the challenges associated with scoring systems in hackathons and competitive events. Often, score aggregation is handled manually or through disconnected tools, leading to delays, lack of transparency, and difficulty in understanding how rankings are derived. We wanted to build a dynamic leaderboard system that not only updates in real time but also provides meaningful insights into team performance. The goal was to move beyond a static ranking system and create a solution that is both interactive and analytically informative.

What it does

Luddy Score Stream is a dynamic leaderboard system that allows judges to submit scores for teams in real time, while viewers can observe updated rankings and performance insights. The system processes each submission through a RESTful API, aggregates scores across multiple judges, and updates the leaderboard instantly.

In addition to ranking teams, the project provides analytical insights such as average scores, standard deviation, score range, and performance gaps to better understand team performance. It also maintains a history of submissions with timestamp-based filtering, enabling transparency and traceability in the evaluation process. Overall, the system ensures a fair, efficient, and data-driven approach to managing competitive scoring.

How we built it

We implemented a client-server architecture using Node.js and Express for the backend and React for the frontend. The backend exposes multiple REST endpoints, including add for score submission, leaderboard for ranking computation, info for statistical analysis, history for tracking submissions with filtering, and performance for monitoring execution time.

The system aggregates scores submitted by multiple judges and computes rankings dynamically. The average score for each team is calculated as: \( \text{Average Score} = \frac{\sum \text{team scores}}{\text{number of submissions}} \) In addition to basic statistics such as mean and median, we incorporated advanced metrics including standard deviation, score range, and performance gap to better understand the distribution and variability of scores. The frontend provides a role-based interface where viewers can observe results and judges can securely submit scores.

Challenges we ran into

One of the primary challenges was managing data consistency without a persistent database, as the system relies on in-memory storage for rapid prototyping. This required careful validation of inputs and prevention of duplicate submissions. Another challenge was designing a fair and efficient leaderboard algorithm that aggregates multiple judge inputs while maintaining accurate rankings. Integrating the frontend and backend within the time constraint also required clear data structuring and API design. Additionally, balancing feature completeness with time limitations was a key consideration throughout development.

Proud Accomplishment

One accomplishment we are particularly proud of is successfully building a complete end-to-end system that handles real-time score submissions while also providing meaningful statistical insights, all within a tight 24-hour timeframe.

What we learned

This project helped us gain a deeper understanding of REST API design, stateless systems, and real-time data processing. We learned how to transform raw input data into meaningful insights that enhance user understanding. The experience also reinforced the importance of modular design, efficient debugging, and prioritization under tight deadlines. Overall, the project strengthened our ability to build scalable and well-structured backend systems while maintaining usability on the frontend.

What's next for Luddy-Score-Stream

The next step for Luddy Score Stream is to make the system fully deployable and scalable by integrating a persistent database and containerization, while also enhancing real-time updates and advanced analytics for a more production-ready experience.

Built With

Share this project:

Updates