Ruzel AbdrakhmanovAvailable for work
All projects
Telegram Bot

Barbershop Booking Bot — an FSM Appointment Flow

A Telegram booking bot for a barbershop: a step-by-step wizard (service → date → time → confirm) on a finite state machine, with generated free slots, reminders and an admin panel.

Year
2025
Client
Personal product
Role
Product & Full-Stack
Duration
1 week
Pythonaiogram 3 (FSM)SQLite

Problem :

A barbershop needed online booking that just works in Telegram — pick a service, a day and a free time, with no double-bookings and a reminder before the visit.

Solution :

A booking wizard on a finite state machine: service → date → time → confirm. Free slots are generated from working hours minus what’s taken and admin-blocked, past times are hidden, and the slot is re-checked right before booking to prevent doubles. A background task sends reminders.

My Role :

Everything — the FSM wizard, the slot engine, reminders and the admin panel.

Process :

aiogram 3 with FSM state; services, bookings and slots in SQLite; a bottom reply-keyboard menu and inline keyboards for the steps; a background reminders task inside the bot. No payments or LLM — the focus is clean business logic and state.

Outcome :

Hands-off scheduling: clients book in four taps, the shop sees today’s and the week’s bookings and can block slots. Shown here as rendered mockups of the real flow.

Tech Stack :

Python 3.11, aiogram 3 (FSM + MemoryStorage), aiosqlite (SQLite), and a background reminders task.