Who this is for: Anyone deciding between AI app builders for a small booking, sign-up or reservation app: whether the builder handles capacity, double bookings, a protected admin page, export and data that survives republishing.
Scenario: A one-person yoga studio takes class bookings. Visitors book, move or cancel; only the owner sees and cancels all bookings and exports them.
Build a web app for a one-person yoga studio to take class bookings. Requirements: 1. A public page shows the classes for the next 14 days: Monday to Friday at 07:00 and 18:30, Saturday at 09:00, no classes on Sunday. Each class has 8 spots and shows how many spots are left. 2. A visitor books a class by entering a name and an email address. The number of spots left goes down by one. A class with 0 spots left cannot be booked. 3. After booking, the visitor sees a confirmation with a unique link to manage the booking. 4. Through that link the visitor can move the booking to another class that still has spots, or cancel it. Cancelling frees the spot. 5. The same email address cannot book the same class twice. 6. An admin page protected by a password shows all bookings per class, lets the admin cancel any booking, and has a button that exports all bookings as a CSV file with the columns: class date, class time, name, email, status. 7. Bookings are stored in a database and are still there after a page reload and after the app is republished. 8. Publish the app at a public URL. Do not add payments, email sending or user accounts.
Repair template: These tests fail: <list with test number, what you did, what you saw>. Fix only these, change nothing else, and republish.
Builder: ____________ Plan and mode: ____________ Date: ____________
| ID | Check and pass condition | Result | Notes |
|---|---|---|---|
| T01 | App published Loads at a public URL without logging in to the builder. | ☐ pass ☐ partly ☐ fail ☐ not tested ☐ n/a | |
| T02 | Schedule Next 14 days; Mon-Fri 07:00 and 18:30, Sat 09:00, no Sunday; 8 spots each. | ☐ pass ☐ partly ☐ fail ☐ not tested ☐ n/a | |
| T03 | Booking Name and email; spots left drops by one, also after a reload. | ☐ pass ☐ partly ☐ fail ☐ not tested ☐ n/a | |
| T04 | Confirmation Confirmation shows a unique manage link. | ☐ pass ☐ partly ☐ fail ☐ not tested ☐ n/a | |
| T05 | Full is full Ten simultaneous booking requests on an empty 8-spot class: 8 accepted, 2 refused. One manual double click is not this test; use simultaneous-bookings.js. | ☐ pass ☐ partly ☐ fail ☐ not tested ☐ n/a | |
| T06 | No double booking The same email cannot book the same class twice, also typed in capitals. | ☐ pass ☐ partly ☐ fail ☐ not tested ☐ n/a | |
| T07 | Move The manage link moves a booking: old class +1, new class -1. | ☐ pass ☐ partly ☐ fail ☐ not tested ☐ n/a | |
| T08 | Cancel The manage link cancels a booking and frees the spot. | ☐ pass ☐ partly ☐ fail ☐ not tested ☐ n/a | |
| T09 | Manage link not guessable The link contains a long random code, not a sequence number. | ☐ pass ☐ partly ☐ fail ☐ not tested ☐ n/a | |
| T10 | Admin page protected No access without or with a wrong password, in the page and through the app's own API. | ☐ pass ☐ partly ☐ fail ☐ not tested ☐ n/a | |
| T11 | Password not exposed The admin password is not in the page source, the JavaScript or any URL. | ☐ pass ☐ partly ☐ fail ☐ not tested ☐ n/a | |
| T12 | Overview The admin page lists all bookings per class, consistent with T03-T08. | ☐ pass ☐ partly ☐ fail ☐ not tested ☐ n/a | |
| T13 | Admin cancels The admin cancels a booking; the spot is freed and the status visible. | ☐ pass ☐ partly ☐ fail ☐ not tested ☐ n/a | |
| T14 | CSV export Download with exactly: class date, class time, name, email, status; rows match what you booked. | ☐ pass ☐ partly ☐ fail ☐ not tested ☐ n/a | |
| T15 | Input checks An empty name, a name of only spaces and an invalid email are refused by the server. | ☐ pass ☐ partly ☐ fail ☐ not tested ☐ n/a | |
| T16 | Data survives Bookings are still there after a reload and after republishing. | ☐ pass ☐ partly ☐ fail ☐ not tested ☐ n/a | |
| T17 | Usable on a phone At 390 px wide, schedule, booking and manage link work without sideways scrolling. | ☐ pass ☐ partly ☐ fail ☐ not tested ☐ n/a | |
| T18 | Take it with you Export the code (GitHub or zip) and the data; try to run it outside the builder and note what does not come along. | ☐ pass ☐ partly ☐ fail ☐ not tested ☐ n/a |
Written for AI and no-code app builders that can build a small booking app. Run it during the trial, before you pay or claim a discount. The deal pages show the offer for each tool, with who confirmed it and when.
What this checklist does not cover: Not a security audit beyond T09 and T11, no load test beyond ten requests, no payments, email or real traffic, and one run per builder.