Personal·2026
Snooker Score
A web application for tracking scores and analyzing snooker playing statistics

- Role
- Full Stack Developer
- Team
- Solo Project
- Year
- 2026
Key figures
- Session → Frame
- Play structure
- 2+
- Players per game
- Optimistic UI
- Technique for flaky connections
- Mobile
- Designed for
A web application designed for recording snooker scores in real-life gameplay with friends or family. It includes a member system (Register/Login) for managing personal accounts. Within the system, users can manage player lists and access in-depth statistical analysis for each player. The competition structure is organized into Sessions and further divided into Frames, supporting two or more players. It allows recording both normal scores and foul points, along with a detailed timeline at both frame and session levels. Additionally, it features an Archived Sessions system for storing past gameplay history. A key highlight is the score recording interface, which is designed with a clean and intuitive UX/UI. It also supports Optimistic UI, using a local queue to temporarily store data, allowing smooth and continuous score input even during unstable internet connections.
The problem
- 01Recording snooker scores, including fouls, using traditional methods such as paper is inconvenient, time-consuming, and prone to errors, especially when playing multiple frames.
- 02There is a lack of tools for tracking long-term statistics to monitor progress or compare performance (e.g., win rates, scoring statistics) among friends or family.
- 03Unstable internet connections can cause delays or interruptions in applications that require server responses for every scoring action.
The approach
- 01Developed a player and match management system structured into Sessions and Frames, with an archive feature to store completed sessions while preserving their statistics.
- 02Built a multi-player score tracking system with a detailed timeline, enabling accurate playback of events in each frame and generating statistical analysis from the data.
- 03Implemented Optimistic UI in the scoring interface, allowing instant visual updates upon user input while queuing data locally before syncing with the database. This ensures smooth usability even during temporary network issues and maintains data consistency.
The result
- 01Delivered a fully functional snooker scoring application with a clean and user-friendly UX/UI, optimized for mobile usage during gameplay.
- 02Users can review match history, win/loss statistics, and detailed scoring timelines for themselves and other players in an organized manner.
- 03Provides a seamless user experience, eliminating delays when recording scores during unstable internet conditions, allowing players to stay focused on the game.
Gallery
PC - User interface
16:9 / MD





















Mobile - User interface
9:16 / SM




























Retrospective
Challenges
- Managing complex state in the scoring interface, including player turns, fouls, frame switching, and ensuring real-time data accuracy on the client side.
- Designing an offline/local queue architecture to handle network interruptions, ensuring that data syncs correctly and in order when the connection is restored.
- Designing a database structure capable of storing detailed timeline and statistical data while maintaining efficient querying for analytics dashboards.
Learnings
- Gained deep practical experience with Optimistic UI, which is crucial for building responsive, action-heavy applications.
- Learned advanced techniques for managing local state and data synchronization to handle network latency and offline scenarios.
- Improved skills in UX/UI design tailored to niche users, focusing on speed, clarity, and minimizing interaction steps during gameplay.
Interested in work like this?
Tell me about your brief — I reply within 24 hours.