E-Season is a mobile and web-based application designed to modernize the process of purchasing and managing train season tickets in Sri Lanka. The platform enables passengers to purchase season tickets online, reducing wait times and improving convenience. A dedicated web application also empowers railway staff to manage ticketing, validate tickets, and access real-time passenger data, enhancing operational efficiency.
- Introduction
- Problem Statement
- Objectives
- Features
- Target Audience
- Architecture
- Technologies Used
- User Stories
- Installation and Setup
- Project Timeline
- Contributing
- License
- Interfaces
Sri Lanka Railways currently operates a manual seasoning system, causing delays and increasing the workload on railway staff. E-Season addresses these challenges by introducing a mobile application for passengers and a web-based application for railway staff, streamlining the seasoning process, enhancing user experience, and improving operational efficiency.
The existing manual ticketing system for train season passes leads to long queues, passenger dissatisfaction, and high operational demands on railway staff. E-Season aims to provide a comprehensive digital solution to these issues by offering both mobile and web-based applications that enable passengers to purchase tickets online and railway staff to manage ticketing and passenger data efficiently.
- Improve Convenience: Allow passengers to buy season tickets digitally, reducing the need to queue at counters.
- Enhance Efficiency: Provide railway staff with a web application to manage seasons, validate purchases, and monitor real-time passenger data.
- Automate Operations: Simplify seasoning processes and reduce manual intervention, decreasing human errors.
- Enhance User Experience: Offer intuitive and accessible user interfaces for passengers and staff.
- User Registration and Authentication: Secure sign-up, login, and password recovery options.
- Season Ticket Purchase: Browse routes, view prices, and buy season tickets using secure payments.
- Real-Time Ticket Availability: View real-time ticket availability and receive notifications of any changes.
- Profile Management: Manage account details, payment methods, and view purchase history.
- Push Notifications: Receive alerts for ticket availability, promotions, and reminders.
- Accessible Design: Multilingual support and accessibility features such as larger text and voice assistance.
- Mobile Ticket Validation: Present digital tickets directly within the app for verification by railway staff.
- Secure Data Handling: Data encryption and privacy compliance for secure transactions.
- Staff Login and Authentication: Secure login for railway staff to access the web portal.
- Passenger Data Access: View passenger information and season ticket status for efficient ticket validation.
- Real-Time Season Availability: Access current season ticket availability to assist passengers.
- Ticket Validation: Verify digital tickets presented by passengers using the mobile app.
- Notifications and Alerts Management: Monitor service status, price changes, and operational alerts.
- Feedback Collection: Receive feedback from passengers and report issues through the web interface.
- Multi-Language Support: Enable staff to work in their preferred language for improved communication.
- Daily Commuters: Individuals who travel by train for work or study and need a convenient way to purchase season tickets.
- Students: School and university students who benefit from quick, affordable ticketing options.
- Senior Citizens: Older passengers who rely on trains for social or personal errands and need accessible navigation.
- Railway Staff: Employees in charge of ticket sales, customer service, and train operations who benefit from automated ticketing and data access.
E-Season utilizes a distributed architecture with separate components for mobile and web applications:
- Mobile App: Developed with Flutter for both iOS and Android to provide an interactive experience for passengers.
- Backend: A unified backend, built with Node.js, handles authentication, ticket management, and real-time data.
- Frontend - Web App: Developed using React (or Angular), offering a robust interface for railway staff to manage ticketing and passenger interactions.
The backend uses MySQL, storing essential data in multiple tables:
- Users: Stores profiles, roles, and authentication data for passengers and railway staff.
- Tickets: Contains ticket availability, purchase history, and associated route data.
- Transactions: Logs all ticket purchase transactions, including payment details.
- Mobile app: Flutter
- Web Frontend: react.js or Angular
- Web Backend: Node.js
- Database: MySQL
- Authentication: Firebase Authentication
- Push Notifications: Firebase Cloud Messaging for mobile push notifications
- Payment Integration: Stripe or PayPal for secure transactions
- Security: Multi-factor authentication (MFA), encryption for data privacy
- As a daily commuter, I want to purchase a season ticket online so I don’t have to wait in line.
- As a student, I want quick access to discounted tickets so I can manage my expenses.
- As a senior citizen, I want an easy-to-use app interface with larger text and accessible navigation.
- As railway staff, I want a web platform to validate tickets and view passenger information for efficient management.
- Flutter SDK for mobile development.
- Node.js and npm for backend and web application development.
- MySQL database for data storage.
- Firebase project for authentication and notifications.
-
Clone the repository:
git clone https://github.com/Prasad-k-Github/ESeason-online-train-season-purchesing-system.git cd e_season
-
Set up environment variables: Create a
.env
file in the backend directory with environment variables (database URL, API keys, Firebase credentials). -
Install dependencies:
cd backend npm install
-
Run the backend server:
npm start
-
Install Flutter dependencies:
cd mobile flutter pub get
-
Run the app:
flutter run
-
View on mobile:
- Use a physical device or an emulator to view the app.
-
Navigate to the web directory:
cd web
-
Install dependencies:
npm install
-
Run the web application:
npm start
-
Access the app:
- Open your browser and go to
http://localhost:3000
to view the web interface for railway staff.
- Open your browser and go to
Please refer to the Gantt Chart for a detailed breakdown of the development phases, including planning, development, testing, and deployment stages.
Contributions are welcome! To contribute:
- Fork the repository.
- Create a new branch (
git checkout -b feature-branch
). - Commit your changes (
git commit -am 'Add new feature'
). - Push to the branch (
git push origin feature-branch
). - Open a Pull Request.
- Maintain consistent code style and conventions.
- Add comments to clarify complex code sections.
- Test any new features thoroughly.
This project is licensed under the MIT License - see the LICENSE file for details.