Skip to content

Sports & training · scheduling

Scheduling web app development case study: Snappy Stats, built on Laravel.

Three instructors, one spreadsheet, same lane twice. Snappy Stats is a scheduling web app built on Laravel for a growing shooting academy: replacing spreadsheets and manual coordination with a centralised, real-time booking system that prevents conflicts before they reach a member.

A double booking is not a software bug at a shooting range. It is a safety problem with a queue behind it.

Snappy Stats schedule board: lanes, time slots and classes assigned to instructors
Industry
Shooting academy · training centre
Platform
Laravel · MySQL · Tailwind CSS
Engagement
Discovery → MVP → iterative rollout
Scale
Single board of 100% schedule visibility

Scheduling, lanes, instructors & eventsDelivered · since retired

80%

Fewer double bookings

3–4 hrs

Saved per week on admin

100%

Schedule visibility

Shipped

MVP to rollout

About the client


About the client

The client runs a fast-growing shooting academy offering safety courses, training sessions and events for novice and experienced shooters. As bookings increased across several ranges, managing lanes, schedules and equipment became risky and time-consuming.

Multiple instructors, multiple ranges and hundreds of students every month meant the team needed a reliable way to coordinate classes, lanes and equipment. They wanted a solution that would scale with the academy, respect strict safety rules and still be simple enough for non-technical staff to use every day.

  • Sports / training / education
  • Scheduling
  • Range & lane management

Client at a glance

Business type
Shooting academy & training centre
Scale
10–30 instructors & admins
Primary users
Hundreds of members per month
Previous system
Spreadsheets, email, phone calls
Our role
UX, architecture, Laravel build, ongoing support

The challenge


Before Snappy Stats

The challenge

Bookings lived in a shared spreadsheet that three instructors edited at once. Two people could reserve the same lane for the same hour and nobody found out until they arrived.

Class capacity, lane availability and instructor rotas were tracked separately, so a change to one silently broke the other two.

Members paid in person or by transfer, and reconciling who had actually paid for which session took the office most of a morning every week.

Key challenges we uncovered

  • Manual scheduling across spreadsheets and whiteboards, with no single source of truth.
  • Limited visibility into upcoming capacity: nobody could see tomorrow clearly until the morning.
  • No single source of truth for instructor availability across ranges.
  • Difficulty accommodating a wide mix of event types such as safety courses, private sessions and group bookings.
  • Lack of clear reporting on utilisation, cancellations and revenue per class, lane or instructor.
  • Growing pressure to make bookings easier for members and reduce phone traffic to the office.

These challenges shaped the product goals, the architecture and the order we built things in.

Goals & success criteria


Project goals & success criteria.

Clear goals up front let us make intentional trade-offs during UX and engineering, and define what "successful launch" actually meant for the academy.

  • Business goals

    • Eliminate double bookings and scheduling conflicts for lanes, classes and instructors.
    • Give admins real-time visibility of today's schedule and upcoming events.
    • Improve utilisation of instructors and ranges to increase revenue per available hour.
    • Reduce time spent on manual coordination and status queries.
  • Product & technical goals

    • Design an interface where booking a session takes fewer than four clicks on a phone.
    • Implement a dependable, role-based access model for admins, instructors and support staff.
    • Support multiple ranges and flexible event types without changing core code.
    • Build on a modular, maintainable architecture with room for future integrations.

Success criteria

We agreed on a phased rollout: launch a focused MVP to the pilot range, validate that lane and instructor conflicts had genuinely disappeared, then extend to every class and event type.

Our solution


Our solution

QalbIT partnered with the academy to design and deliver Snappy Stats: a custom scheduling management web application built specifically for how a shooting range operates.

We started with an accurate discovery workshop, mapping real-world scenarios such as safety courses, private sessions and group events. From there, we designed a central schedule, a lane and instructor model, streamlined booking flows and customised conflict checks.

The application is built on a modular architecture, making it easy to add new event types, locations and reporting modules over time.

See how it works →

Key solution pillars

  • End-to-end product design

    Discovery, flows and interface, then engineering.

  • Laravel + MySQL foundation

    Clean domain model, strict rules, room to grow.

  • Real-time conflict checks

    Lane, instructor and equipment clashes caught at entry.

  • Modular architecture

    New event types and ranges without touching core code.

Product features & UX


Key product features & UX highlights.

Everything the academy team needs to keep classes, lanes and instructors perfectly aligned in one place.

  1. Central schedule board

    A calendar-style board showing all classes, lanes and instructors, with filters by date, event type and range.

  2. Role-based access & permissions

    Separate views for admins, instructors and support staff, with permissions aligned to safety and operational policies.

  3. Smart conflict detection

    Automated checks prevent double booking of lanes, instructors or equipment when creating or editing an event.

  4. Member & booking management

    A simple record of registered participants, capacity details and booking history for each session.

  5. Reusable event templates

    Recurring classes and standard course formats are set up once and reused, rather than rebuilt every week.

  6. Reporting & insights

    Utilisation reports for bookings, cancellations and attendance, giving management better data for planning.

Architecture & stack


Architecture & technology stack.

The technology stack is deliberately simple, maintainable and aligned with the academy's long-term roadmap: powerful enough for today's needs without locking the product into unnecessary complexity.

  • Backend & infrastructure

    • Laravel and PHP application layer handling modular business logic.
    • MySQL database with well-defined tables for schedules, sessions, members and bookings.
    • REST API prepared for future integrations or a mobile client.
    • Role-based access control and audit trails for safety and compliance.
  • Frontend & UX

    • Responsive web UI implemented with Tailwind CSS utility-first styling.
    • Clear information hierarchy for schedules, lanes, tools and filters.
    • Reusable components for cards, timelines, tables and forms.
    • Accessibility-aware design with high contrast and keyboard-friendly forms.
  • Laravel
  • PHP 8
  • MySQL
  • Tailwind CSS
  • REST API
  • Blade

We chose a stack the academy's next developer can read on day one: no bespoke framework, no proprietary runtime, nothing that needs us to keep it running.

Delivery process & collaboration


Delivery process & collaboration.

We used a transparent, iterative delivery model with enough structure to keep momentum, and enough flexibility to adjust as we learnt from real usage.

  1. 01

    Discovery & requirements

    Stakeholder workshops, review of existing spreadsheets and current usage processes, and definition of core scheduling rules.

    2 weeks
  2. 02

    UX flows & interface design

    User journeys for admins and instructors, wireframes for the schedule board and a design-led validation using the QalbIT design system.

    3 weeks
  3. 03

    MVP development

    Core functionality built and hardened, delivered with regular demos, feedback loops and environment-ready deployments.

    6 weeks
  4. 04

    Pilot launch

    Rolled out to a small pilot of users and instructors, with close monitoring of edge cases and improvements to conflict rules and logic.

    2 weeks
  5. 05

    Rollout & ongoing support

    Rolled out to all lanes and classes, plus a follow-up iteration on reports, templates and mobile-first booking flows.

    Ongoing

Engagement model used

We started on a fixed-scope MVP, then moved to a lightweight ongoing engagement once the academy had validated the schedule board with real bookings.

  • Fixed-scope MVPWritten scope, milestone billing
  • Pilot before rolloutOne range, then all of them
  • Ongoing iterationReports and templates after launch

Results & impact


Results & impact.

From reactive firefighting to proactive, data-informed scheduling.

  • 80%Fewer double bookings
  • 3–4 hrsSaved per week on admin
  • 100%Schedule visibility

Story behind the numbers

By replacing spreadsheets with a purpose-built scheduling application, the academy went from firefighting conflicts to planning ahead. Instructors trust the schedule, admins spend their mornings on members rather than reconciliation, and management finally has utilisation data to plan growth with.

Client perspective

"I've work with this company on many web projects and mobile project and always they were very helpful and understand fast what we need and they develop what we ask in a good delay and price. I recommend this company for any project you have"

Managing Director, also the client behind the Plugin case study · François C.

Start here


Scheduling that fits your operation, not the other way around.

Tell us how your bookings work today and where they break. You get a written scope, an architecture recommendation and a price range within 48 hours.

  • A written scope with the exclusions listed
  • An architecture recommendation, not a sales deck
  • The name of the engineer who would lead it
  • Free, and yours to keep either way

Get your free estimate

Three quick questions: scope, approach and a price range back within 48 hours. No sales call required first.

What do you need built?
When do you want to start?
Where should we send the estimate?

Answer all three questions above, then send.

NDA-friendly · IP yours from day one

Next step


Still running your schedule on a spreadsheet?

Send two lines about how your bookings work. You get a written scope, timeline and price range within 48 hours, free, and yours either way.