Ninja Gaming Cafe

Case study

Building one bill for three revenue streams on a ticking clock

A gaming café sells time, toys and food, often to the same guest in the same visit. Ninja Gaming Cafe needed gaming cafe billing software that could bill all of it accurately, warn staff before a session ran over, and show the owner exactly where the money came from.

01_about.md CLIENT

About the client

Ninja Gaming Cafe is a gaming café in Pondicherry (Puducherry) that combines console and PC game stations with an RC toy play zone and a food and snacks counter. Guests might book an hour on a console, add a snack combo, let the kids run an RC car, and settle the bill with a mix of cash and UPI.

The venue is run from a single front desk. Owners or managers oversee the catalogue, reports and settings. Counter staff run live bills through the day.

revenue 3 lines
users Admin & staff
setup One venue
payments Split tender
02_problem.md BRIEF

The problem

A generic cash register cannot bill time. A venue like this is really three businesses sharing one counter, and the usual workarounds — paper tickets, notebooks, a stopwatch app — leak money and attention.

  • 01
    Three kinds of billing on one guest

    Timed console sessions, timed RC sessions and food each price differently. Separate tickets meant a guest might pay three times, and the owner could never see the full picture of a visit.

  • 02
    Sessions that run over, or get missed

    Staff are busy, and session end times are easy to miss. Overruns and awkward “your time is up” conversations were a constant friction.

  • 03
    Stations getting double-booked

    Without a live view of what is occupied, the same console could be promised to two guests.

  • 04
    Combos and discounts that were hard to track

    Bundles like game plus snack are popular. Without proper records, nobody could see what was actually saved or sold at list price.

  • 05
    Loyalty and tax living in notebooks

    Repeat customers, referral rewards and GST needed to be applied consistently at checkout, not remembered.

  • 06
    No clear numbers for the owner

    Which games earn the most? What is the food margin? How much comes through UPI versus cash? Which staff member closes the most bills? None of this was easy to answer.

03_build.md SHIPPED

What we built

The brief: one custom web application that runs the whole floor from the front desk, and tells the owner the truth at the end of the day.

The front desk

  • 01
    One live bill per guest, three revenue lines

    Search a customer by name or phone, or start a walk-in bill. A single bill holds game sessions, RC toy sessions, food lines and combos, with a running total that updates as things are added. Most actions update without reloading the page, so the desk never stops mid-rush.

  • 02
    Sessions priced from the catalogue, not typed in

    Game and duration come from each game’s price list per station type, for example console or PC. Staff pick, the system prices. Sessions can be extended with another priced block, and the booked and extended time are tracked separately.

  • 03
    Station occupancy control

    A station can host only one active game session at a time, so a console can never be double-booked.

  • 04
    RC toy billing that matches reality

    RC sessions start with the toy’s session block, can be extended in prepaid blocks, and are charged on stop from actual elapsed time. The venue chooses whether to round up to the next block or pro-rate by the minute.

  • 05
    Checkout locked until sessions end

    A bill cannot be closed while any game or RC session is still running, which stops under-billing at the source.

  • 06
    Live session-end alerts across the whole app

    A popup and sound warn staff before a booked game or RC session ends, on any page, not only on the POS screen. The lead time (5, 10, 20 or 30 seconds, or at zero) and the chime are configurable.

  • 07
    Combos with savings recorded

    Four combo types — game plus snack, RC plus snack, game plus RC plus snack, and snacks only — are applied in one click, which creates the included sessions and food lines automatically. The list price, combo price and saving are stored on the bill, so receipts show what the guest saved.

  • 08
    Loyalty, referrals and tax built into checkout

    Registered customers earn points and can redeem them on the bill. A referral credits the referring customer once when a new customer is created. Checkout then applies combo savings, an optional percentage or fixed discount, loyalty redemption and GST (exclusive or inclusive) in a fixed, predictable order.

  • 09
    Split payments with change

    A bill can be settled with several payment rows: cash, UPI, or any custom mode. Overpayment is recorded as change given. Closing the bill is a single database transaction covering the bill, payments, customer visits, lifetime spend and the loyalty ledger.

  • 10
    Receipts, printed or downloaded

    Branded receipts print straight from the browser and download as A4 PDF. Logo, business name, address, PIN, phone, date and time format, and footer are all settings.

The back office

  • 11
    Customer directory with history

    Unique phone numbers, visit history, lifetime spend and a loyalty log showing every point earned and redeemed.

  • 12
    A catalogue the venue controls

    Games with pricing per station type, RC toys with session length and rate, a categorised food menu with making cost and selling price, and combos. A bulk CSV import, with a template and a row-level error list, gets a new venue’s catalogue and customer list in quickly.

  • 13
    Dashboard and sales overview

    Today’s net revenue, active sessions, open bills, average bill and the peak hour of the week, plus live active bills refreshed about every 30 seconds. Admins get charts for 7-day revenue, peak hours, top games and top food items.

  • 14
    Billing & reporting for the owner

    Game, food (including gross profit), RC, staff, transaction analysis and loyalty reports across any date range.

  • 15
    Roles, controls and a recorded trail

    Admin and staff roles with login, CSRF protection and admin-only filters on settings and bulk import. Staff can run the floor. Exports, deletions, date-range history and configuration stay with the admin. The database records who opened bills, started or extended sessions, took payments and closed bills.

04_shift.md FLOOR

A shift in the life of the system

  • 01
    A guest walks in.

    Staff search by phone, or start a walk-in bill.

  • 02
    A console session starts on a free station.

    The system prices it from the catalogue.

  • 03
    The guest adds a snack combo.

    The included food lines are created and the saving is recorded.

  • 04
    They want more time.

    Staff extend the session with one tap.

  • 05
    A chime and popup warn staff before time is up,

    wherever they are in the app.

  • 06
    Sessions are ended,

    which unlocks checkout.

  • 07
    Loyalty points are redeemed, GST is applied,

    and the guest pays part cash, part UPI.

  • 08
    A branded receipt is printed,

    and the guest earns points on their phone number.

  • 09
    At close, the owner opens the dashboard:

    today’s revenue, peak hour, food margin, and the payment-mode split.

05_stack.md STACK

Technology stack: PHP 8, CodeIgniter 4, MySQL

The desk has to stay usable while a session is running, a snack is added and a bill is split. Pages render on the server, most actions update without a reload, and closing a bill is one database write.

  • Application PHP 8, CodeIgniter 4

    Server-rendered screens keep the counter light. Staff pick from the catalogue instead of typing a rate.

  • Data MySQL or MariaDB

    Migrations own the schema. A close writes the bill, payments, visit, lifetime spend and loyalty ledger together.

  • Interface Bulma, Material Symbols

    Plus Jakarta Sans and a clear desk layout, so a new staff member can run a bill without a manual.

  • Reports Chart.js

    Admins see 7-day revenue, peak hours, top games and top food items on the dashboard.

  • Receipts Dompdf, A4

    The same branded receipt prints from the browser or downloads as PDF. Logo, address and footer are settings.

  • Access Sessions, CSRF, roles

    Passwords are hashed. Staff run the floor. Settings, imports, exports and deletions stay with the admin.

  • Money Rupees by default

    The currency symbol is configurable, so the receipt matches the venue.

06_results.md NOW

Results

A visit is now one priced bill, and close of day is a set of reports. Bill volume and revenue figures stay with the venue.

On the floor

  • One visit, one bill. Console time, RC play and food share a running total, including a walk-in with no phone number yet.
  • The clock is enforced. A popup and chime fire before time is up. A station holds one active session. Checkout opens only after every session has ended.
  • The receipt shows the deal. List price, combo price and the saving are stored on the bill, then GST and any redeemed points are applied in a fixed order.
  • The till matches the money. Cash, UPI and custom modes can share one bill, and change given is recorded. Points sit on the customer’s phone number.

What the owner can read

  • Food margin

    Gross profit by item and category, from making cost and selling price.

  • Game revenue

    What each game and station type brought in, over any date range.

  • RC usage

    How the toy zone was used, and what it earned.

  • Staff sales

    Bills closed by each person on the desk.

  • Payment mix

    Cash, UPI and custom modes, including change.

  • The day itself

    Today’s net, open bills, average bill, active sessions and the peak hour of the week.

  • Loyalty

    Points earned, redeemed and still outstanding, tied to each phone number.

What this means

Pricing comes from the catalogue, not from memory. New games, toys, combos and staff are added in settings, so the floor can grow without a code change. The recorded trail shows who opened a bill, started or extended a session, took a payment and closed it.

06_faq.md FAQ

Questions about the billing

Can the software bill gaming sessions by the minute?

RC toy sessions are charged from elapsed time. The venue chooses whether to round up to the next block or pro-rate by the minute. Console sessions are priced from each game’s duration list for that station type, and staff can extend them with another priced block.

Does it handle GST and split payments (cash + UPI)?

Yes. Checkout applies GST as exclusive or inclusive, in a fixed order after combo savings, discounts and loyalty. One bill can be split across cash, UPI and custom payment modes, and change given is recorded.

Can it stop a console being double-booked?

A station holds one active game session at a time, so the same console cannot be promised to two guests.

Can staff and owners have different access?

Yes. Staff run the floor. Settings, bulk import, exports, deletions and date-range history stay with the admin. The system records who opened a bill, started or extended a session, took a payment and closed it.

Start a conversation All case studies

Running a venue that bills by the minute?

We build custom POS and billing software around how your business actually runs, from timed sessions to combos, loyalty and GST.

Start Conversation Now