A Smart Public Transport Accessibility Information App is designed to provide real-time data and resources to individuals with mobility challenges, ensuring they can navigate public transportation systems smoothly. Using Object-Oriented Design (OOD) principles, the system will be modular, reusable, and scalable.
Key Features:
-
Real-time Accessibility Updates: Provides current status of elevators, ramps, and other accessibility features at transit stations.
-
Route Planning: Suggests accessible routes based on the user’s specific needs (e.g., wheelchair-friendly, limited walking distance).
-
Multi-modal Support: Offers accessibility information for buses, trains, subways, trams, etc.
-
User Profiles: Allows users to customize accessibility preferences (e.g., wheelchair, visual impairments).
-
Feedback & Reporting: Enables users to report accessibility issues.
Object-Oriented Design (OOD) Concepts:
-
Classes and Objects:
-
User Class: Represents an individual using the app, containing properties like name, user ID, accessibility needs (e.g., wheelchair, hearing aid), and preferences.
-
TransportStation Class: Represents a station or terminal, including attributes like station ID, location, and accessible facilities (e.g., ramps, elevators).
-
Route Class: Represents a public transport route, including origin, destination, and stops along the way, with metadata for accessibility (e.g., wheelchair access at each stop).
-
Notification Class: Represents notifications sent to the user, e.g., elevator maintenance, route detours, or delays that affect accessibility.
-
Feedback Class: Represents user feedback on accessibility features, including comments, ratings, and timestamps.
-
Map Class: Manages the interactive map of public transport, highlighting accessible routes, stations, and facilities.
-
Admin Class: For administrators to update system data like facility availability, feedback management, and real-time incident reports.
-
-
Inheritance:
-
PublicTransport Class: The parent class for all types of public transport like buses, trains, or trams. Shared attributes include route name, schedule, and stops.
-
AccessibleTransport Class: A subclass that inherits from
PublicTransportbut adds specific accessibility features such as wheelchair access, audio announcements, and low-floor design.
-
-
Encapsulation:
-
Data Privacy: Each class should manage its own data with private fields (e.g.,
userId,feedbackId,routeId) and expose necessary information via public getter and setter methods. -
User Preferences: A
getAccessibilityPreferences()method could be used to retrieve specific user preferences, ensuring the app tailors results to individual needs. -
Public Access Points: The app’s data access should be encapsulated behind interfaces, allowing for data exchange with external systems like transit APIs, while ensuring internal structures remain flexible.
-
-
Polymorphism:
-
User Input Handling: A single method
getRouteInformation(User user)can be used to provide route suggestions. The method would adjust the type of response based on the user’s profile. For example, it would prioritize bus routes for a user who needs a wheelchair-friendly option while suggesting trains for others. -
Notification System: The app could implement different types of notifications (e.g., maintenance, detours, delays), but the underlying system will use a common interface (
sendNotification) regardless of the notification type.
-
-
Composition:
-
App Composition: The
SmartTransportAppclass could have a collection ofUserobjects,Routeobjects, andStationobjects, each interacting with one another to provide an overall experience. -
Map System: The map is composed of different
StationandRouteobjects. The map itself doesn’t store station data but rather references objects that contain all the necessary details.
-
-
Association:
-
User-Route Association: Users can associate themselves with one or more routes they typically take, allowing the app to provide tailored accessibility information for those specific routes.
-
Station-Route Association: Stations are associated with multiple routes. Each station contains information on which routes are accessible and what facilities they offer.
-
System Workflow:
-
User Registration: The user creates a profile, specifying their accessibility needs (e.g., wheelchair, visual impairment).
-
Route Search: Users input their start and end points, and the system calculates the best accessible route(s).
-
The app pulls data from
RouteandStationobjects to evaluate accessibility features.
-
-
Real-Time Updates: The app provides real-time updates about the stations and transport vehicles, highlighting accessible features and any issues like malfunctioning elevators.
-
Feedback Submission: Users report problems like blocked ramps, damaged lifts, or other accessibility barriers through the
Feedbacksystem. -
Admin Updates: Admins use the app to update the status of stations and transport routes to ensure data remains current.
Data Flow:
-
User Input: The user enters travel details (e.g., departure station, destination station).
-
Route Search: The app queries the
RouteandStationclasses for the available transport routes and accessibility features. -
Information Display: The map is rendered, and the most accessible routes are shown based on user preferences. Notifications about delays or maintenance are pushed to the user.
-
Feedback: After the journey, users can rate the accessibility features they encountered, feeding into the system for future improvements.
Example Use Case:
-
User Profile Setup: A user enters their accessibility preferences, such as wheelchair access.
-
Route Planning: The user searches for a route from “Station A” to “Station B.” The app checks for available routes, ensuring that all stations along the route have the required facilities (e.g., ramps, elevators).
-
Travel Monitoring: While traveling, the user gets notifications if any facilities along their route become unavailable (e.g., an elevator is out of order).
-
Feedback: After the journey, the user reports that a ramp at a certain station was blocked. The admin receives the feedback and updates the system accordingly.
Technologies & Tools:
-
Frontend: React Native for a cross-platform mobile application.
-
Backend: Node.js with a database like MongoDB to store route, station, user, and feedback data.
-
Real-Time Features: WebSockets for real-time updates on transport status.
-
Map Integration: Google Maps or OpenStreetMap for interactive route display and station visualization.
By adhering to Object-Oriented Design principles, this Smart Public Transport Accessibility Information App ensures modularity, flexibility, and future scalability.