Hybrid Web and USSD community hall and event booking on Laravel, with mobile money payments and SMS via Africa's Talking.
# Community Booking System
### Hybrid Web and USSD platform for booking community halls and event tickets, with mobile money payment and SMS confirmation
Book from a browser or from any basic phone over USSD, against one shared backend, one set of rules, and one database.
---
## Table of contents
1. Overview
2. Features
3. Screenshots
4. Tech stack
5. System architecture
6. Database schema
7. Core workflows
8. The USSD experience
9. Project structure
10. Routes and endpoints
11. Requirements
12. Installation
13. Configuration
14. Running USSD and payments locally
15. Usage guide
16. Testing
17. Roadmap
18. License and author
---
## Overview
The Community Booking System lets a community centre publish two kinds of bookable resource, halls that are reserved by time window and events that are sold by ticket quantity, and lets the public book them either on the web or over USSD on a feature phone. Payment is by mobile money, and a confirmation with a reference code is sent by SMS.
The design goal is that the browser and the USSD session are not two applications. Both call the same service layer, so a booking made by a smartphone user and a booking made from a basic handset are the same record, follow the same lifecycle, and obey the same availability and payment rules. The engineering worth reading is underneath the two front ends: preventing double booking under concurrency, holding a reservation while payment settles, and running a USSD menu as a server side state machine.
---
## Features
| Area | What it does |
|------|--------------|
| Public browsing | View available halls and events with no account. |
| Hybrid accounts | One identity per phone number. Web signs in with email and password; USSD recognises the phone number and a PIN. |
| Hall booking | Reserve a hall for a time window with start and end times. |
| Event booking | Buy a quantity of tickets against a fixed …