May 26, 2025

Shuttle Bus Reservation System – Software Requirements Specification (SRS)

1. Project Overview

The Shuttle Bus Reservation System is designed to streamline and automate the booking process for student shuttle services operating between the Petone and Porirua campuses. The system integrates Microsoft Azure Active Directory (Azure AD) for authentication and offers features such as seat booking, conflict detection, email notifications, QR-based check-in via kiosk scanners, and automatic enforcement of booking policies and penalties.


2. Objectives

  • Provide a seamless shuttle booking experience via a user-friendly web interface.
  • Ensure only eligible users can book through Microsoft Azure AD integration.
  • Prevent time-conflicting bookings to maintain fairness and order.
  • Allow users to cancel bookings within policy-defined windows.
  • Implement real-time QR code-based check-in using self-service machines.
  • Identify and manage no-shows with automated expiry rules.
  • Track and penalise repeat offenders through a temporary blacklist system.

3. Stakeholders

StakeholderRole
StudentsEnd users – book and cancel shuttles
Shuttle CoordinatorAdministrator (optional dashboard)
DevelopersSystem developers and maintainers
IT SupportAuthentication and infrastructure support

4. System Roles and Permissions

RolePermissions
UserLogin, view shuttle schedule, book, cancel, scan to check-in
Admin(Optional) View reservations, manage blacklist (future)

5. Technical Stack

  • Frontend: React with TypeScript
  • Backend: .NET Core Web API
  • Authentication: Microsoft Azure AD (OAuth2/OpenID Connect)
  • Database: SQL Server or PostgreSQL
  • Email Service: SMTP, SendGrid, or Microsoft Graph API
  • QR Scanning: Web interface on a kiosk machine (self-service)
  • Task Scheduler: Background jobs (e.g. Hangfire)

6. Functional Requirements

6.1 Shuttle Routes

Two fixed routes:

  • Petone → Porirua: 07:30 and 15:00
  • Porirua → Petone: 07:40 and 15:10

Only one direction can be booked in the same time slot per day.


6.2 Booking Rules

  • Users can book up to 7 days in advance.
  • Users cannot book both directions at conflicting times on the same day.
  • A user may have only one booking per time period per day (morning or afternoon).
  • Users cannot book if they are currently blacklisted.

6.3 Cancellation Rules

  • Bookings can be cancelled anytime before 5:00 PM on the same day.
  • After 5:00 PM, cancellations are disabled for that day’s bookings due to data already being sent to the shuttle provider.
  • Cancellation confirmation is sent via email.

6.4 Email Notifications

  • Confirmation Email on successful booking
  • Cancellation Email if a booking is cancelled
  • Emails include route, time, location, and QR code for check-in

6.5 QR Code Check-In

  • Upon booking, users receive a QR code or check-in code.
  • On the day of travel, users scan at the self-service machine near the shuttle area.
  • The scan confirms attendance and marks the booking as Checked In.

6.6 Booking Status

StatusDescription
BookedReservation is active
CancelledReservation was cancelled by user
CheckedInUser successfully scanned and boarded
ExpiredUser did not scan before departure

7. Violation and Blacklist Policy

7.1 Violation Definition

A violation occurs when a user fails to check in (booking expires).

7.2 Blacklist Rule

  • Users with 3 or more violations are added to a temporary blacklist.
  • Blacklisted users are blocked from making new bookings for 14 days.
  • Blacklist status is automatically lifted after the penalty period.

8. Scheduled Background Tasks

TaskScheduleDescription
Update Expired BookingsEvery 10 minutesMarks unscanned bookings past departure as Expired
Evaluate Blacklist CandidatesDaily at midnightAdds users with ≥ 3 violations to blacklist
Remove Expired BlacklistsDaily at midnightUnblacklists users whose penalty period has ended

9. Database Schema (Simplified)

9.1 Users Table

FieldTypeDescription
IdUUIDPrimary key
EmailStringUnique Azure AD email
ViolationCountIntegerTotal violation count
IsBlacklistedBooleanWhether user is currently blocked
BlacklistedUntilDateTimeEnd date of blacklist period

9.2 Reservations Table

FieldTypeDescription
IdUUIDPrimary key
UserIdUUIDReference to Users table
RouteStringE.g. “Petone → Porirua”
DateDateTravel date
TimeTimeTravel time
StatusEnumBooked, CheckedIn, Expired, Cancelled
CreatedAtDateTimeTime of booking
UpdatedAtDateTimeTime of status change

10. Non-Functional Requirements

CategoryDescription
SecurityHTTPS enforced, OAuth2, input validation
Performance< 3s page load time; < 1s booking response
ScalabilityDesigned to support additional routes and schedules
MaintainabilityModular codebase, RESTful API structure
ReliabilityAuto-recovery tasks and logging of failures

11. MVP Development Scope

MVP Features (Minimum Viable Product):

  • Microsoft Login (Azure AD)
  • Booking and conflict detection
  • Booking and cancellation UI
  • Email confirmation and cancellation notices
  • Manual QR check-in (self-service kiosk)
  • Expiry logic and blacklist rule

Optional features (for later phase): Admin dashboard, export reports, audit logs, booking statistics.