RedlineKart.
Operations system for a go-kart track: bookings, sessions, ranking and fleet.
Demos are interactive on desktop — on mobile, see the preview just below.
Three navigable views (admin panel, driver portal and public site), with fictitious data
Problem
Running a go-kart track involves complex flows — bookings, check-in, sessions, drivers, fleet and finances — hard to coordinate without a dedicated system.
Solution
An operations platform with a dashboard, bookings, check-in, sessions, ranking/championship, kart fleet, work orders, finances and a driver portal.
My role
Modeling of the operational flows, architecture and development.
Outcome
The most visual and memorable system in the portfolio, with a strong operational load.
Demo stack
How it works.
Description of the real product (frontend + backend). The demo embedded above is its demonstration version, with fictitious data.
RedlineKart is an all-in-one operations system for go-kart tracks, covering the entire cycle: from online booking to track operation, live timing, fleet and maintenance, CRM, championship, finances and the driver portal. The Next.js frontend has two faces — a staff panel (internal operation) and a driver portal (self-service) — on top of a NestJS API designed as a modular monolith with 10 business contexts and real-time data.
Architecture
- Modular monolith in NestJS (Fastify): 10 self-contained bounded contexts, with synchronous communication via imports and asynchronous communication via BullMQ events (Redis).
- Real-time timing and race control via Socket.IO (NestJS gateways), with an adapter layer to integrate the track's timing hardware.
- JWT authentication (access + refresh in an httpOnly cookie) and ABAC authorization with CASL — permissions by module.action on top of 8 user roles.
- Prisma/PostgreSQL with soft delete, UUID, monetary values in cents and dates in UTC; OpenAPI/Swagger documentation.
- Frontend in Next.js 16 (App Router) consuming the API with React Query and Zustand, and Socket.IO for live data.
Modules
- Administration: master records, users, permissions and executive dashboard
- Operations: heat schedule, check-in, heat formation and kart allocation
- Timing: lap/sector times, live standings and the big screen
- Fleet and maintenance: karts, status, work orders and parts inventory
- Commercial: online bookings, POS/cash register, events, vouchers and gift cards
- CRM and marketing: 360 driver profile, segmentation, automation and loyalty
- Championship: seasons, rounds, regulations, scoring and ranking
- Finances: accounts receivable, cash closing and reports
- Driver portal: bookings, post-race, social and ranking among friends
- Integrations: payment, messaging (WhatsApp/email/SMS) and timing hardware
Engineering highlights
- Two frontends in a single app: staff panel (dashboard, operations, timing, fleet, commercial, CRM, championship, finances) and driver portal (bookings, results, ranking, statistics).
- Screens with a strong operational load: live timing with standings reordering in real time, driver check-in, POS/cash register, ranking by category and accounts receivable.
- End-to-end real time: timing and race control via Socket.IO, with adapters for the track hardware.
- ABAC authorization with CASL — granular permissions by module.action, on top of the 8 roles.
- BullMQ queues for marketing campaigns and asynchronous report generation.
- Domain robustness: values in cents, UTC, soft delete, pagination/filters and typed business exceptions.
- Quality: integration tests with a real PostgreSQL (Testcontainers) and an API documented in OpenAPI.