🚌 Bus Ticketing System

Simple Internal Ticketing System for Dhaka & Chittagong Booths
Total Buses 6
Seats per Bus 24
Routes 2
Main Screens 6

1. Purpose

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.

System Scale

2. Business Scenario

Daily Operations

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)

Seat Layout

Each bus has 24 seats arranged in 6 rows and 4 columns:

Rows: A, B, C, D, E, F | Columns: 1, 2, 3, 4
Example: A1, A2, A3, A4, B1, B2, ... F4

3. Users & 4. Core Features

3.1 Admin Users

Admin Permissions

  • Add/edit bus information
  • Add/edit route information
  • Create daily trips
  • Manage ticket booth users
  • View sales reports

3.2 Ticket Booth Staff

Staff Permissions

  • Search available trips
  • View available seats
  • Sell tickets
  • Cancel tickets
  • Print ticket
  • View daily ticket sales

4. Core Features

🔐

Login

Username and password authentication. Example users: dhaka_staff_1, ctg_staff_1, admin

🗓️

Trip Management

System automatically creates daily trips. Each bus has one trip per route at 7:00 AM.

💺

Seat Management

Each bus has 24 seats. Seat status: Available, Booked/Sold, Cancelled.

🎫

Ticket Selling

Complete workflow: Select route → Select date → Pick bus → Select seat → Enter passenger info → Confirm.

Ticket Cancellation

Booth staff can cancel tickets before journey time. Seat becomes available again.

🔍

Ticket Search

Search by: Ticket number, Passenger mobile, Journey date, Route, Bus number.

📊

Reports

View: Daily sales, Route-wise sales, Bus-wise seat status, Booth-wise sales, Cancelled tickets.

🖨️

Print Ticket

Print physical tickets with all details after successful sale.

MVP Features (Minimum First Version)

The system should include these core features:

10. Main Screens - UI Mocks

10.1 Login Screen

Entry Point

Booth Staff Login

Example Users:
dhaka_staff_1 (Dhaka Booth) | ctg_staff_1 (Ctg Booth) | admin (Admin)

10.2 Dashboard

Main Screen

Today's Overview

Total Seats 144 Sold Seats 102
Available Seats 42 Today's Sales ৳81,600

Today's Trips (25 May 2026)

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

5. Ticket Selling Process - Steps 1-3

Route → Date → Bus

Step 1: Select Route

Step 2: Select Travel Date

Step 3: Select Bus

Bus Time Available Action
Bus-1 7:00 AM 10
Bus-2 7:00 AM 18
Bus-3 7:00 AM 24

10.4 Seat Layout Screen - Step 4

Select Seat

Bus-1 | Dhaka → Ctg | 7:00 AM

Click on an available (green) seat to select

Available
Sold
A1
A2
A3
A4
B1
B2
B3
B4
C1
C2
C3
C4
D1
D2
D3
D4
E1
E2
E3
E4
F1
F2
F3
F4

Selected: A1

5. Ticket Selling - Step 5

Passenger Info

Enter Passenger Information for Seat A1

Required Fields *
Optional Fields

6. Ticket Confirmation - Step 6

Success
✅ Ticket Sold Successfully!

Your ticket has been generated and the seat is now booked.

Ticket Information

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

10.5 Ticket Search Screen & 7. Cancellation

Manage Tickets

Search Ticket

Ticket Found

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)

Cancel This Ticket

✅ Ticket Cancelled Successfully

Ticket TKT-20260525-0001 has been cancelled. Seat A1 is now available.

12. Simple System Flow

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

Cancellation Flow (Section 7)

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

9. Important Business Rules

Seat Status Rules (Section 4.3)

Booth Rules (Section 8)

Cancellation Rules (Section 7)

10.6 Reports Screen - Example Data

Daily Ticket Sales Report (25 May 2026)

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-wise Seat Status

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

Technical Specification

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