Operations & booking platform
Studio Poletaj
Studio operations software for recurring schedules, dated classes, student bookings, capacity and discipline-specific monthly credits.
- Context
- Independent product
- Date / status
- Independent project
- Work
- Operations & booking platform
The problem
A recurring class studio needs more than a calendar. Each schedule generates real dated sessions, places are limited, and student credits belong to a specific discipline and month.
Scope and architecture
My responsibilities
- Domain modelling and product workflows
- Laravel administration application
- Vue 3 student PWA
- Sanctum API and SQLite persistence
System
- Laravel server-rendered administration interface
- Sanctum-authenticated JSON API
- Vue 3 installable student PWA
- SQLite with UTC timestamps and configurable display timezone
Key decisions
- 01
Separate a repeating rule from a real class.
A schedule slot describes recurrence; generated training sessions represent the dated classes that students can actually book. That keeps capacity and cancellations tied to concrete events.
- 02
Treat credits as typed inventory.
One credit books one class and belongs to a discipline and month. Credits cannot cross disciplines, which keeps booking rules aligned with what the studio sold.
- 03
Give staff and students different surfaces.
The Laravel admin favors operational density, while the Vue PWA is focused on schedules, balances and fast booking. Both operate on the same API and domain rules.
What I built
I built the administration application in Laravel for disciplines, recurring slots, students, classes, capacity and bookings. A Vue 3 student PWA uses the same Sanctum JSON API for schedules, credit balances, booking and cancellation. Timestamps are stored in UTC and presented in the configured studio timezone.
- Laravel
- Vue.js
- SQLite
- Sanctum
- PWA
Result
One system for the studio team and a separate booking PWA for students
- Recurring schedule rules generate concrete bookable classes
- Capacity, attendance and typed credits are enforced in one domain model
- Separate staff and student experiences share one source of truth
Contact
Have a project in mind?
Tell me what you’re building, where it stands and what you need help with. LinkedIn is the best place to reach me for now.
Start a conversation