The company needs a simple online ticketing system for internal use by two ticket booths:
Booth staff will use the system to sell tickets to passengers, check available seats, book seats, and print/view ticket information.
The company has 6 buses. Every day:
| Route | Number of Buses | Total Capacity |
|---|---|---|
| Dhaka → Chittagong | 3 buses (Bus-1, Bus-2, Bus-3) | 72 seats (3 × 24) |
| Chittagong → Dhaka | 3 buses (Bus-4, Bus-5, Bus-6) | 72 seats (3 × 24) |
Each bus has 24 seats arranged in 6 rows and 4 columns:
Username and password authentication. Example users: dhaka_staff_1, ctg_staff_1, admin
System automatically creates daily trips. Each bus has one trip per route at 7:00 AM.
Each bus has 24 seats. Seat status: Available, Booked/Sold, Cancelled.
Complete workflow: Select route → Select date → Pick bus → Select seat → Enter passenger info → Confirm.
Booth staff can cancel tickets before journey time. Seat becomes available again.
Search by: Ticket number, Passenger mobile, Journey date, Route, Bus number.
View: Daily sales, Route-wise sales, Bus-wise seat status, Booth-wise sales, Cancelled tickets.
Print physical tickets with all details after successful sale.
The system should include these core features:
Example Users:
dhaka_staff_1 (Dhaka Booth) | ctg_staff_1 (Ctg Booth) | admin (Admin)
| Total Seats | 144 | Sold Seats | 102 | |
| Available Seats | 42 | Today's Sales | ৳81,600 |
| Bus | Route | Time | Available Seats |
|---|---|---|---|
| Bus-1 | Dhaka → Ctg | 7:00 AM | 10 |
| Bus-2 | Dhaka → Ctg | 7:00 AM | 18 |
| Bus-3 | Dhaka → Ctg | 7:00 AM | 24 |
| Bus-4 | Ctg → Dhaka | 7:00 AM | 12 |
| Bus-5 | Ctg → Dhaka | 7:00 AM | 8 |
| Bus-6 | Ctg → Dhaka | 7:00 AM | 20 |
| Bus | Time | Available | Action |
|---|---|---|---|
| Bus-1 | 7:00 AM | 10 | |
| Bus-2 | 7:00 AM | 18 | |
| Bus-3 | 7:00 AM | 24 |
Click on an available (green) seat to select
Selected: A1
Your ticket has been generated and the seat is now booked.
| Ticket No | TKT-20260525-0001 |
| Passenger Name | Rahim Uddin |
| Mobile No | 01700000000 |
| Route | Dhaka → Ctg |
| Bus No | Bus-1 |
| Seat No | A1 |
| Journey Date | 25 May 2026 |
| Departure Time | 7:00 AM |
| Fare | ৳800 |
| Sold By | Dhaka Booth Staff |
| Sold At | 24 May 2026, 10:30 AM |
| Status | Sold |
| Ticket No | TKT-20260525-0001 |
| Passenger | Rahim Uddin |
| Status | Sold |
| Journey Date & Time | 25 May 2026, 7:00 AM |
| Can Cancel? | Yes (Before 7:00 AM on 25 May) |
Ticket TKT-20260525-0001 has been cancelled. Seat A1 is now available.
1. Login → Staff logs in with username/password
2. Select Route → Staff selects route (Dhaka→Ctg or Ctg→Dhaka)
3. Select Date → Staff selects travel date
4. View Buses → System shows available buses with seat count
5. Select Bus → Staff selects a bus
6. View Seats → System displays seat layout (4×6 grid)
7. Select Seat → Staff selects an available (green) seat
8. Enter Info → Staff enters passenger name, mobile, optional fields
9. Confirm Sale → Staff confirms ticket sale
10. Print Ticket → System generates & prints ticket, seat becomes Sold
1. Search Ticket → Staff searches by ticket number or mobile
2. Open Ticket → System displays ticket details
3. Enter Reason → Staff enters cancellation reason
4. Confirm Cancel → Staff clicks "Confirm Cancellation"
5. Cancel Confirmed → Ticket marked as Cancelled, seat becomes Available
| Route | Sold Tickets | Available Seats | Total Sales |
|---|---|---|---|
| Dhaka → Ctg | 60 | 12 | ৳48,000 |
| Ctg → Dhaka | 55 | 17 | ৳44,000 |
| TOTAL | 115 | 29 | ৳92,000 |
| Bus | Route | Time | Available Seats |
|---|---|---|---|
| Bus-1 | Dhaka → Ctg | 7:00 AM | 10 |
| Bus-2 | Dhaka → Ctg | 7:00 AM | 18 |
| Bus-3 | Dhaka → Ctg | 7:00 AM | 24 |
| Bus-4 | Ctg → Dhaka | 7:00 AM | 12 |
| Bus-5 | Ctg → Dhaka | 7:00 AM | 8 |
| Bus-6 | Ctg → Dhaka | 7:00 AM | 20 |
You can use any programming language you want.
You can use any Database or even in-memory database
The project can be a console/desktop/web application