The problem
The Laundry Management System Project with Online Booking, Pickup Scheduling and Rate Cards is a full-stack web application that moves a local laundry's workflow — price list, booking, pickups, order tracking — onto one website. Built with PHP and MySQL, it gives customers a storefront with a transparent digital rate card, and gives the shop owner an admin panel that turns bookings into scheduled pickups and settled orders. Most small laundries run on phone calls and WhatsApp: prices live in the owner's head, orders go in a notebook, and customers keep calling to ask where their clothes are. That breaks three ways: disputed bills, missed pickups promised from memory, and dead time answering status calls. One system fixes this: the rate card becomes one editable table, slots become a capacity-capped calendar, and every order gets a timestamped status log the customer watches. For a student it is a complete CRUD-plus-roles project: auth, sessions, relational data, slot logic, reporting dashboard.
How it works
A customer opens the FreshFold storefront, adds rate-card services to a basket, chooses a pickup day and one of four two-hour slots, then enters name, phone and address. Confirming writes one orders row plus one row per basket item, generates an order ID like FF-2026-1042, and reserves one of the slot's six pickup seats. The admin sees the booking instantly, plans the rider's route from the schedule view, and advances the status as clothes move through the shop — each change appending a timestamped entry to the status log. The customer watches the same log on the tracking page, so "is my order ready?" answers itself. At day end, the revenue view sums the orders table into daily totals and category shares with SQL GROUP BY queries. Builder note from the demo build: statuses are stored as an append-only log of {status, timestamp} pairs, not a single status column — that one decision makes the tracking timeline replayable.
- The customer browses the 24-service rate card and adds items to the basket; the running total updates per item.
- The customer picks a pickup day from the 7-day window and a two-hour slot; slots already at 6 bookings show as full and cannot be selected.
- Checkout captures name, phone, address and locality; the validated booking is written to the orders and order_items tables with a generated order ID.
- The admin dashboard lists the new order immediately; the pickup schedule view shows it against its slot with remaining capacity.
- As garments move through the shop, the admin advances the status — Booked, Picked Up, In Wash, Ironing, Ready, Out for Delivery, Delivered — and each transition appends a timestamped log entry.
- The customer tracking page replays the log as a timeline, and the revenue view aggregates orders into daily and category totals.
Tech stack:
- PHP 8 (backend logic, session auth, routing)
- MySQL 8 (orders, items, users, status-log tables)
- HTML5 · CSS3 (responsive storefront and dashboard)
- JavaScript ES6 (basket, slot picker, canvas charts)
- Apache · XAMPP (local development stack)
- bcrypt password hashing
- phpMyAdmin (database administration)
- Git (version control)
| Parameter | Value |
|---|---|
| User roles | 2: customer and admin (counted in the build) |
| Rate-card services | 24 across 5 categories (measured from the demo build) |
| Pickup slots per day | 4 two-hour slots (configurable) |
| Pickup capacity per slot | 6 pickups (configurable default) |
| Booking window | 7 days ahead (configurable) |
| Order statuses | 7 stages, append-only timestamped log |
| Demo views | 3: booking, tracking, admin (measured from the demo build) |
| Demo code size | Approximately 500 lines, single HTML file (measured) |
| Database tables | 8 (design target: users, services, orders, order_items, status_log, slots, settings, localities) |
| Password storage | bcrypt, cost factor 10 (library default) |
| Page-load target | Under 2 seconds on shared hosting (design target) |
| Hosting need | PHP/MySQL shared hosting; demo file runs offline |
Project features
The system's strongest capabilities are its digital rate card, its slot-based pickup scheduling, its live order tracking, and its admin revenue view — four pieces covering the whole laundry workflow from first click to final delivery. The rate card lists every service with per-item rupee prices across five categories; the admin edits any price in one table with instant effect on the storefront. Pickup scheduling replaces phone haggling with a seven-day calendar of two-hour slots, each capped at six pickups so the rider's route stays realistic and overbooking is impossible. Order tracking gives every booking a timestamped journey — Booked, Picked Up, In Wash, Ironing, Ready, Out for Delivery, Delivered — visible to the customer and advanced from the admin panel. The revenue view aggregates the same orders table into daily totals and category shares, showing the owner exactly which services earn.
- [Digital rate card] Implemented. 24 services across 5 categories with per-item INR prices — the demo build's exact count. Customers add services to a basket like a shop cart; the admin edits any price in one table and the storefront updates immediately.
- [Pickup slot scheduling] Implemented. A seven-day calendar with four daily two-hour slots, each capped at 6 pickups. Slots that reach capacity are hidden from customers automatically, so the rider is never double-booked.
- [Live order tracking] Implemented. Every order carries an immutable, timestamped status log across seven stages. The customer page replays the journey as a timeline; status changes made in admin appear with exact times.
- [Admin dashboard] Implemented. One screen with the orders table and status control, a 3-day pickup schedule with booked-vs-capacity bars, revenue analytics (7-day bar chart plus category-share donut) computed live from the orders table, and the rate-card editor.
- [Role-based access] Implemented. Separate customer and admin logins over PHP sessions; admin routes are guarded server-side so the dashboard and rate-card editor are unreachable without an admin login.
- [Checkout with address capture] Implemented. Each booking captures name, phone, address and locality, giving the pickup rider a complete route sheet. Validation blocks empty baskets, unselected slots and missing contact details before an order is written.
- [Configurable pricing and slots] Configurable. Prices, slot count, slot timings and per-slot capacity are admin settings, not code changes — the demo's 6-pickup cap is a single editable value.
- [Multi-branch support] Future scope. The schema is single-shop: one rate card, one slot calendar. Branch-level logins and per-branch reporting are a documented extension, not part of the current build.
What is included
- Complete PHP/MySQL source code (customer storefront + admin dashboard)
- Database schema with seed data (24-service rate card, slots, demo orders)
- Step-by-step setup guide (XAMPP to live host)
- The working single-file demo used for the screenshots
- Project report PDF (background, methodology, schema design, testing)
- PPT presentation for final review
- Viva Q&A preparation document (sessions, SQL joins, slot-capacity logic, password hashing)
Limitations & prerequisites
- The screenshot demo runs fully in the browser with in-memory data — bookings reset on reload. Real persistence comes from the PHP/MySQL backend included in the build.
- No SMS, WhatsApp or payment gateway in the base build; status alerts and UPI payments are optional add-ons quoted separately.
- Single-shop design: one rate card and one slot calendar; multi-branch support is future scope.
- Slot capacity is a simple per-slot count — no route optimization or rider-assignment algorithm is included.
- Revenue figures aggregate recorded orders only; GST or tax computation is not included.
- Hosting and domain costs are separate; the project needs a PHP/MySQL host to run live.
Frequently Asked Questions
How does the online booking and pickup scheduling actually work?
The customer adds laundry services from the digital rate card to a basket, picks a pickup day from a 7-day calendar and one of four daily two-hour slots, then enters their address and confirms. The booking is saved with a generated order ID, and the slot's remaining capacity drops by one so overbooking is impossible. Each slot caps at 6 pickups by default, which keeps the rider's route realistic; full slots disappear from the booking page on their own.
Does the project include an admin panel?
Yes. The admin dashboard has four views: an orders table where each order's status advances through seven stages, a 3-day pickup schedule showing booked-versus-capacity per slot, a revenue view with a 7-day bar chart and category-share donut, and a rate-card editor whose price changes update the storefront instantly. Admin routes are guarded by PHP session login, so customers can never reach them.
What do I need to run it, and can it be hosted online?
Any standard PHP/MySQL shared host works — the same kind of hosting most student projects already use. You import the provided SQL schema, set the database credentials in one config file, and upload the code; no Node, no build step and no paid services are needed for the base build. The demo in the screenshots runs from a single HTML file, but the delivered project is the full PHP/MySQL application with real persistence.
Is payment gateway integration included?
No — the base build uses pay-on-delivery, which is how most neighborhood laundries actually operate. UPI or card payment through a gateway like Razorpay is a listed optional add-on: the checkout is already structured so a payment step slots in before order confirmation. It is quoted separately because gateway approval needs the buyer's own business KYC.
What will I receive with the project?
The complete PHP/MySQL source code, the database schema with seed data for the 24-service rate card and demo orders, a step-by-step setup guide, the working demo file, and the full viva kit: project report PDF, presentation PPT and a Q&A preparation document. Everything is built-to-order, so the schema, report and PPT reference your project's actual features rather than a generic template.
Is this project suitable for a final-year project?
Yes — for Computer Science, IT and Web Development programs. It demonstrates the complete web-development arc: relational database design, session-based authentication, CRUD with business rules like slot capacity, and a reporting dashboard, all in a domain every examiner understands without a technical preamble. The viva angles are strong: why the status log is append-only, how the slot-capacity check prevents double booking, and how the revenue charts aggregate with GROUP BY.
Components & software requirements
- PHP 8 (backend logic, session auth, routing)
- MySQL 8 (orders, items, users, status-log tables)
- HTML5 · CSS3 (responsive storefront and dashboard)
- JavaScript ES6 (basket, slot picker, canvas charts)
- Apache · XAMPP (local development stack)
- bcrypt password hashing
- phpMyAdmin (database administration)
- Git (version control)
Delivery information
Built-to-order project. Delivery timeline is shared after order confirmation based on current queue.
Support terms
Complete documentation, setup guide, and viva preparation included. Support for setup and explanation provided.
Download free synopsis (PDF)
Enter your name and WhatsApp number — the synopsis PDF downloads immediately. We may send occasional project updates on WhatsApp; no spam.