Case studies

Freedom Football Manager: Automating the Training Process

Read case study
Down Arrow
Relationship
Freedom QJ League. This Kazakh youth football league is dedicated to developing young football talent in Kazakhstan and enhancing the reputation of Kazakh footballers on the global stage.

QJ League approached us with their vision to solve a key problem: the lack of a structured training and progress-tracking system that often led to the stagnation of promising young athletes. Their idea was to create a specialized product to address this gap.

The product’s concept was not just to provide coaches with an interface for managing training sessions, but also to systematically develop young players in Kazakhstan. The ultimate goal: consistently preparing young athletes for Kazakhstan’s youth and junior national teams.
Project
TASK DESCRIPTION

The first stage of development was product design. We delivered a comprehensive product vision, including prototypes, a clearly defined tech stack, and interface designs. Each system feature was broken down into smaller components, after which we developed a timeline roadmap and aligned it with the client’s goals.

After approval, we optimized workflows to ensure convenience for both our team and the client. We implemented shorter sprint cycles — one week instead of two — while maintaining all necessary artifacts.

The client acted as the product owner, regularly syncing with us to clarify their vision and guide development.

details

Architecture

We designed the service architecture to scale seamlessly over the next two years as the number of teams, coaches, and players in the league grows. The system is also built to accommodate potential adoption by other leagues in Kazakhstan and abroad.

Backend

Since the system handles a moderate load, we chose a classic monolithic architecture for the backend, built with Nest.js, TypeScript, Sequelize, PostgreSQL, and Minio. Resource-intensive operations, such as PDF generation for training plans and logs, were handled by a separate microservice.

Frontend

We developed the frontend as a single-page application (SPA) using React, Next.js, and TypeScript. To accelerate the launch, we used the Ant Design component library and customized it to fit project requirements.For backend access, we used the Hey API library to generate client code based on OpenAPI specifications, automatically generated from the backend codebase.

This website uses cookies. View Privacy Policy.