Billy: Merging the Art of Pool with Cutting-Edge Tech
Billy is a unique pool logging system that incorporates the Elo rating system, born out of a desire to keep track of games and players, and gather valuable data. As a software developer, it's always exhilarating when people find utility in what you create. Personally, I'm a tech enthusiast and a passionate pool player, so the opportunity to blend these interests into a single project has been a remarkable journey. This blog post will explore the journey of building Billy, the challenges encountered, and the technologies employed to make it happen.
The idea for Billy emerged when a pool table found its place in our office. The urge to create a system for tracking games and players and gathering data became apparent. Thus, the journey of Billy began. The goal was not just to create a basic scoring system but to use the Elo rating system, which is renowned for its accuracy in predicting game outcomes. This ambitious endeavor aimed to elevate the pool experience within our office, offering a structured and competitive environment.
A Learning Experience
As a software developer, I've always relished challenges, and creating Billy was a blend of my two passions: technology and pool. However, it wasn't just about developing a functional system; it was a learning experience. Building Billy taught me about full-stack development, both on the front end and back end of the application. It provided an opportunity to dive into several technologies and techniques.
The Future of Pool Data
Billy has not only made our pool games more organized and competitive, but it also serves as a treasure trove of data. As we continue to use the system, we look forward to uncovering fascinating insights from the information it gathers. The potential for in-depth analysis and understanding of game trends and player performance is truly exciting. In essence, Billy is not just a tool for today's games; it's a gateway to explore the depths of pool analytics in the future.
Enhancing Billy with Object Detection
One of the latest endeavors in the world of Billy is the development of an object detection module. This module will capture snapshots of the pool table after each game and analyze them to determine the number of remaining balls for the losing player. Moreover, it aims to comprehend how the game was won, providing detailed insights into the nuances of each game.
The Technology Behind Billy
Let's delve into the technology stack that powers Billy:
Front end
- Sveltekit: A modern JavaScript framework for building user interfaces.
- Tailwind: A utility-first CSS framework that makes styling a breeze.
Back end
- .NET: A versatile framework for building applications, including web, mobile, and desktop.
- Entity Framework Core: An Object-Relational Mapping (ORM) framework for database interaction.
Deployment
- Docker: A containerization platform for easy application deployment.
- Ubuntu Server: A Linux-based server operating system.
- Nginx: A powerful web server and reverse proxy server.
- Cron: A time-based job scheduler.
- Bash Scripting: For automating various tasks and processes.
The Future is Bright
As we look ahead, we're excited about the endless possibilities with Billy. From improving gameplay experiences to uncovering unique insights through data analysis, the fusion of technology and pool has opened new doors for exploration. Billy continues to evolve, and we can't wait to see what the future holds.
Billy is a testament to how technology can enhance even the simplest of pastimes. It's a shining example of how a passion project can become a valuable asset, not only for our office, but also for the broader pool community. With technology continuously advancing, the fusion of Pool and Tech opens up a world of opportunities that are yet to be explored.
If you're as excited about the intersection of technology and leisure as we are, stay tuned for more updates on Billy's journey!