Back

Expertov

November 2024 – PresentGraduation Thesis / Freelance / SaaS
Next.jstRPCDrizzle ORMClerkTailwind CSSTypeScriptPostgreSQL

About the Project

Expertov is a sports game application developed as my graduation thesis. It is a comprehensive SaaS platform designed for predicting sports results and compering with friends on how right your predictions are. The project was born from a real-world client requirement for a modern, scalable replacement for an existing, outdated solution. But what exactly is the application? The client organizes prediction competitions several times a year during football and ice hockey world championships for his friends, competing to see who can predict match results most accurately.

Problems with the Original Solution

The previous application the client used was a simple tool built around editing Google Sheets. This came with several problems.

Problem #1: Manual Result Entry

Since match details (team names, date and time of the match) had to be entered manually by the client, administering the entire event was very time-consuming. This also meant manual entry of results, which led to delays when evaluating individual matches.

Solution

The client typically sourced match information from Flashscore. I therefore decided it would be ideal if the application could automatically fetch match data from this website. Flashscore does not offer a public API for data retrieval, so I opted for a web scraping approach.

I modified an existing scraper written for this website and adapted it for my own needs. You can read more about this solution in a dedicated article.

Problem #2: Application Design

The application's design was problematic not only visually, but also in terms of user experience. While everything necessary could be done within the app, it was not done in an intuitive way, using it felt more like working in Excel than using a modern web application.

Problem #3: Inability to Add New Features

The original author developed the application in their spare time and had no bandwidth to extend it with new features the client had in mind, most notably the ability to create bonus questions (e.g., Which player will score the most points?, etc.).

Problem #4: Historical Events

The client has been running this prediction game for over 10 years, originally using pure Excel. He therefore wanted the ability to display statistics from these historical events within the application.

My Solution

For my graduation thesis, I decided to build a comprehensive platform tailored specifically to the client's needs, which I have now been developing for over two years.

Main event overview in the app
// image_1 //

Main event overview in the app

01
06

The client is very satisfied with the application. If you are interested in using my platform for your own prediction games, feel free to reach out, I would be happy to connect and show you the application in more detail.

Main Features

  • Complete Event Management: Administrators can create sports events, manage teams, and set up individual matches.
  • Automatic Scoring: Once a match ends, the system automatically recalculates points for all participants and updates the overall leaderboard.
  • Roles and Permissions: An integrated role system (Admin, Helper, User) managed through the Clerk platform.
  • Statistics and History: Users can browse past events and track their prediction success with detailed statistics.
  • Mobile Design: The application is fully responsive and optimized for comfortable predicting on mobile devices.

Technical Solution

  • Frontend & Backend: Next.js using the App Router. tRPC handles type-safe communication between the client and server.
  • Database: PostgreSQL with Drizzle ORM. Fully custom database schema design.
  • Authentication: Complete user account management provided by Clerk.
  • UI/UX: The interface is built with Tailwind CSS and the Radix UI / Shadcn/UI component library.

Graduation Thesis

The entire development of the application, including the database schema design, competitor analysis, and results from beta testing (2025 IIHF World Championship), is thoroughly documented in my graduation thesis.