Web page · Android · works with no signal
An aircon shop's bookings, off Messenger and into one app.
I build apps for the way a workplace actually runs. Winter Services is one: customers book an aircon job on a web page, the office accepts, quotes and schedules it, and the technicians see every job on their phones — and everybody sees the same status.
Guile Pitogo · Bacolod City, Negros Occidental
deadeyezjhin.github.io · guile.pitogo@gmail.com
Every booking was a conversation
An aircon cleaning, repair and installation shop in Bacolod City. The shop ran on the owner's personal number and a Facebook page.

The booking
A call or a Facebook message. The address, the landmark and "which aircon?" asked one question at a time.

The schedule
In the owner's head and his chat history. The technicians were told who, where and when by message.

"Is it still on?"
The customer rang again to ask. The owner scrolled back to find the answer.

The month
No count of bookings, no idea how fast anyone was rung back, no list of whose aircon is due a check.
Every message became a screen that does the work
A chat holds words. An app holds the job: who it is for, what is on it, whose turn it is, and when it was done.
Three kinds of people, one app
The role on the account decides what each one sees — and the database enforces it, not just the buttons.

Customer
- The web page — nothing to install
- Books with no account; tracks with a code
- An account shows only their own bookings

Office
- Android app
- Everything: bookings, jobs, customers, prices, users
- Promotes a sign-up to technician or admin

Technician
- Android app
- Every job that has a day on it
- Never the customer list, never a price unless allowed
A booking that arrives complete
The page asks everything the owner used to ask on the phone — once, in order, with nothing left out.
- A cart of aircons. Tap Window, Split, Cassette… each one gets its own services, brand and model
- Prices as they tap, when the owner switches them on
- The landmark, pushed hard — in Bacolod it is how a technician finds the gate. Pin the house, or pick it on a map
- Only open days. Sundays and the owner's closed dates cannot be picked
- A reference code back at once, like WA-7241
- One plain privacy sentence and a tick box before it sends (Data Privacy Act)
"Is my booking still on?" — answered without a call
The reference code and the number they booked with. The code is remembered on their phone, so next time it is already filled in.

Code and number
Both must match. A stranger with one code learns nothing about anyone else.

Or an account
Every booking, every step, on any phone. Bookings made before registering are added with the number and one of their codes.
New bookings, one tap to a job
The Inbox is the office's morning: every new booking with a red count, what they want, the day they asked for and what it comes to.
- Call and Map on every booking — the landmark and the pin come with it
- Accept makes the customer file and the job, already on the day they asked for
- A call the owner takes goes in as "By phone", so every job lives in one place
- Reject needs no reason typed; the customer's page says so
- A booking from an existing customer is accepted onto their file — never a second copy of the same person
His quotation, already filled in
The owner writes quotations today, in Word. The app makes his layout — letterhead, subject, the table, the note, his signature and the customer's Conforme line — from the booking.

Quotation
- Lines and note editable, saved on the booking
- Send as PDF to Messenger, Viber or email
- Accept takes its total as the job's price

Receipt
- A4, from the job, for the technician to hand over
- GCash number printed on it
- The office marks it Paid — cash, GCash or other
The schedule, in one place
Today, tomorrow, upcoming, no date yet, done. Morning or afternoon — not a promised minute a shop cannot keep.
- Route — today's stops, morning first, opened in Google Maps
- Not paid in red on every open job until the office marks it
- A limit per morning: a full morning cannot be booked from the page
- Closed days: every Sunday, a fiesta, a training day — with the reason the customer sees
- Edit the day, the aircons or the price; every change is written into the job's history
Every job on the technician's phone
A small shop, not a dispatch centre: every technician sees every job with a day on it, and the owner often rides along. Whoever presses the button is written down.
- Call the customer, Map to the pin, the landmark in big letters
- On the way — the customer's page says so
- Start, Mark done, and Undo — an undo is a step in the history, never a silent rollback
- A gate photo for next time, and the price to collect when the owner allows it
- No signal at the house? It still works. Changes wait and send themselves
Full status, everywhere
The same five bars on every booking and job — for the office, the technician and the customer — and underneath, every step with who and when.
Booked
on the page, or by phone
Accepted
seen, then accepted
Scheduled
a day, AM or PM
In progress
on the way, started
Done
then paid
Every customer's aircons, and when they are due
A customer file is made when a booking is accepted — never straight from the public page. It keeps their aircons, their jobs and their bookings.
- A regular check per customer: every 1, 2, 3, 6 or 12 months from a chosen date
- Check-ups is the owner's call list. He rings; Book it makes the job
- A week after the job: "is it working well?" — All good, or book a visit
- Customers on a map, and Book again from any past job
- Delete a customer for real — every phone forgets them (the privacy law's right to be removed)
Three numbers, nobody counting
The app was built to answer three questions from its own records. A screen that moves none of them was not built.
Against the calls and messages it replaces. Phone bookings are kept out, so the number stays honest.
From the booking to the office's first action. Measured first, judged later.
The job keeps the promised day and when it was really done, or this could never be answered.
The owner changes it himself
Everything a shop changes month to month is a screen in Admin, not a phone call to me.
- Services & prices — one price per service per appliance; a new service shows on the page at once
- Appliances — aircons, freezers, washing machines; his own picture for each; hide one without losing its history
- Two switches: show prices on the booking page; show prices to technicians
- Page photos, closed days, the shop's GCash, his quotation and receipt
- Users: anyone signs up; the owner makes them a technician or an admin, or switches them off
Security
A public page, and nothing public behind it
The booking page's key to the database is public — anybody can read it from the page. So the whole design assumes a stranger holds it.
Can do three things
Send a booking · look up a booking they have the code and number for · read the service list
Three functions, no tables
No read of any table. Not customers, not jobs, not the team — not one row.
Signed in, by role
What an account may see is a database rule, checked on every request.

Proven, not promised
A test runs as the stranger and tries to read every table. Every read must be refused — it runs after every change to the database.

Public input is untrusted
A booking never becomes a customer on its own. A person in the office accepts it first. A hidden trap field catches bots; one booking a minute per number.

Privacy law
Name, number and address are personal data (RA 10173): one plain sentence before sending, and the owner can remove a customer completely.
A dead zone at the house loses nothing
Every screen reads the phone's own copy. A change lands on the phone first and waits in a queue; the network is a bonus, never a condition.
Mark done
No signal. The job says Done on the phone at once.
"1 waiting"
The change is kept, even if the app is closed.
Sent by itself
The office and the customer see Done. Nobody taps anything.
Two phones, one job
If the office and a technician change the same job, the loser is told what happened — never silently overwritten.
The page opens offline
Once opened, it opens again with no signal. Only the shop's own page is kept — never the data.
Updates itself
The Android app says when a new version is out and installs it, with what changed in plain words.
I decide what it is for, then build only that
The three numbers came first. Everything else had to move one of them, or wait.
Eleven questions before a line of code. One phone call settles more than a week of guessing.
The public key's limits were built and tested before the page existed.
On a phone width and a PC width, with made-up data — never a real customer's.
Every version says what changed, in words the owner uses.
Every screen here is a job I know from the inside
I built the tool that does each of these for a real shop — so I know every step, and where the numbers go wrong.
Invoicing & quotations
A quotation from each booking, the accepted total as the price, a receipt with discounts and paid or unpaid. Slide 8 →
Booking & scheduling
New bookings accepted onto the right day, a limit per morning, closed days, every change in the history. Slides 7 & 9 →
Dispatch
Each technician told where, when and what — with the landmark, the pin and a route for the day. Slide 10 →
Customer follow-up
"Is it still on?" answered by a status page, and a call list of whose aircon is due a check-up. Slides 11 & 12 →
Reports
Three numbers the owner runs the shop by — counted for him, never by hand. Slide 13 →
Clear notes
Every change written down in plain words the owner uses — 19 versions, each with its notes. Slide 17 →
Winter Services
Tell me how your bookings arrive — I'll show you what one app can take off your hands.
Aircon, plumbing, pest control, a laundry, a clinic: anyone who books a visit, sends someone, and gets asked "is it still on?" has the same lists — and the same fix.
Guile Pitogo
- Bacolod City, Negros Occidental
- guile.pitogo@gmail.com
More work
- deadeyezjhin.github.io
- SukiRun — orders for a distributor's field agents
- deadeyezjhin.github.io/sukirun-deck
Try it
- ▶ The office
- Book as a customer
- The technician
- Switch between them with the DEMO button
The demo and every screenshot use invented customers, invented numbers and invented jobs, answered by a pretend server inside your browser. No real customer, address or booking appears in this deck, and nothing you do in the demo leaves your browser. App icons by Flaticon.