SRS (Software Requirements Specification) - Durjoy01/Cholo_jai GitHub Wiki
Cholo jai- A train ticket website
Prepared by
Name | ID |
---|---|
Durjoy barua | 2131766642 |
Tasnim Fardaus | 2212553042 |
Fiad Sarowar | 2121365642 |
Md Rafid Hasan | 2013013642 |
Rahma Khan Isha | 2121709642 |
North South University Software Engineering (CSE - 327)
Introduction
1.1 Purpose: Purchasing train tickets accomplishes a number of vital tasks that make traveling by train easy. The first benefit of buying rail tickets is that they enable people to reserve a spot on a particular train for a specified day and time. Passengers' travel is made more comfortable and crowding is prevented with the help of this reservation system. Passenger flow is also managed with the use of this reservation system. There are further financial benefits to purchasing rail tickets in advance. A cost-effective option for travel is offered by the several train companies that offer discounts and special pricing for early ticket bookings. Travelers can benefit from these affordable offers and reduce their trip expenses by making earlier plans and buying their tickets. Purchasing train tickets also saves travelers time and the boarding procedure. Travelers can board the train quickly and easily if they have a pre-purchased ticket, as it removes the need to wait in large lines at the station. Particularly for major routes where there is a large demand for tickets, this convenience is especially helpful during peak travel seasons. It has also become even more accessible and convenient to purchase rail tickets online or through mobile apps. Travelers now have flexibility and ease in arranging their trips with the ability to purchase tickets from the comfort of their homes or while on the go. Additionally, seat selection tools, rapid booking confirmations and a range of payment choices are provided by online ticketing systems, which improves passengers' overall travel experience. In the end, we can say that with the help of the system, customers should be able to easily reserve train tickets, pick their desired seats and complete payments online. In order to guarantee that the system is scalable, safe and easy to use, both functional and nonfunctional needs will be included. Knowing how important it is to buy train tickets will help passengers make wise choices that will improve their overall experience traveling by train.
1.2 Intended Audience: The following stakeholders are among the main recipients of this SRS document : End Users (Passengers) : People who will use the system to make reservations, check timetables, and organize their trips. System Administrators: Employees in charge of keeping track of seat availability, scheduling trains, and updating fare information. Project Managers: Project managers are in charge of monitoring development and making sure the system satisfies corporate goals. Software Development Team: Engineers, developers, and UI/UX designers who will implement the functionalities specified in the document. Quality Assurance Team: Testers who will validate the functionality and performance of the system against the outlined requirements. Business Analysts: Professionals that will evaluate the system specifications to guarantee that they are in line with the objectives of the organization. Database Administrators: Experts in charge of overseeing the back-end data for reservations, travelers, and train timetables.
1.3 Intended Use: A rail ticket buying website is designed to make it easier and more efficient for travelers and railroad operators to reserve, manage, and buy train tickets. By using rail ticket purchase system, passengers can search, select and buy tickets for their desired times and routes. The system will provide updated information on how many seats are available, the arrival and departure time of the trains and also the price of the tickets. Passengers can book tickets using web browsers, mobile apps and also kiosks at train stations. Payments can be made via credit/debit cards, digital wallets. bank transfers etc. Passengers will also be able to select their preferred seats where applicable. Passengers can also view their past trips, save their payment details and travel preferences. By using rail ticket buying websites, operators can manage the availability and capacity of train seats efficiently. Operators can generate the financial management reports. Algorithms for pricing based on demand, timing, and availability can be applied by operators. Operators can also use the system to assist with ticket cancellations and, in compliance with business regulations, provide refunds or travel credits, and can send delay updates, platform changes or cancellations to passengers.
1.4 Product Scope: User Management: Permit users to register, sign in, and edit their profiles, which include payment options, personal data, and travel preference, offering safe ways to authenticate (password, OTP, or biometric, for example). Users who are not registered can reserve tickets without requiring an account. Also provide users with an interface where they can see their account information, saved preferences, and upcoming and prior trips. Ticket Booking and Reservation: Permit users to provide the origin, destination, date, and time while searching for trains. The available trains with schedules and available seats should be returned by the system. Customers are given the choice to choose from a variety of seat selections, including regular, first-class, and other possibilities. Ticket costs are determined automatically based on the distance traveled, the class of the seat, the time of booking, and any available discounts (e.g., for seniors, students). The system gathers the pertinent passenger data (name, age, ID, etc.) needed for ticketing. Offer choices for printing physical tickets using station kiosks, or for creating e-tickets or QR codes for smartphone check-in. Payments and billings: Accept a range of payment methods, including bank transfers, UPI, digital wallets, debit cards, and credit cards. Install fraud detection software and secure payment channels with encryption. Automatically generate receipts and send an email confirming it, after a successful payment. Users are allowed to cancel their tickets in accordance with the operator's policies, and automatically receive a refund or credit when necessary. Ticket Management: Subject to availability and operator rules, enable consumers to view their bought tickets, modify their travel dates, or upgrade their seats. Customers are allowed to cancel their tickets and offer partial refunds, travel credits, or refunds in full. Notify users by email, SMS, or app notifications of any changes, such as delays, cancellations, or platform changes. Train Schedules and Real-time Information: Give passengers real-time train monitoring, including with the train's current location, estimated arrival time, and departure time. Provide trip planning tools that make recommendations for routes, stops for transfers, and approximate travel durations. Inform passengers automatically of any changes to the schedule or disruptions and offer suggestions for alternatives when appropriate. Customer Support: Establish a help desk with tutorials, FAQs, and instructions for creating and handling tickets. Provide chatbots or human customer support representatives to address complicated questions, grievances, or ticketing problems. Get input from travelers about their experiences with the train service or booking process. Connectivity with Outside Systems: Achieve real-time updates and accurate scheduling by ensuring the program interfaces with national or regional railroad databases. Encourage integration for ticket reselling and package sales with other sites, such travel agencies. Guarantees transaction processing compatibility with various payment gateway providers. Safeguarding and Adherence: Guarantees that sensitive data (payment, personal information) is encrypted, and that the system conforms with data protection rules (e.g., GDPR). Provide explicit privacy guidelines and methods for obtaining user consent before collecting or processing data. Utilize barcode, RFID, or QR code scanning to integrate with conductor apps or station gate systems for ticket validation.
1.5 Risk Definitions:
System Downtime Risk
Definition: The possibility that server malfunctions, system overloads, or infrastructure problems will cause the software system to go down or experience outages. Users may be unable to purchase tickets during downtime, which could result in missed sales and unhappy customers. Effects include decreased sales, harm to one's reputation, unsatisfied customers, and ineffective operations. Mitigation: To swiftly identify and fix problems, use load balancing, redundant servers, and real-time monitoring solutions.
Cybersecurity and Data Breach
Risk definition is the possibility that private passenger data (such as payment details and personal information) will be compromised by hackers, illegal access, or data breaches. Weak security measures or system vulnerabilities may be to blame for this. Impact: Penalties for breaking data privacy laws (such as the GDPR), financial loss, legal ramifications, loss of customer trust, etc. Mitigation: Follow cybersecurity best practices, employ encryption, secure authentication, and conduct frequent security assessments.
Payment Processing Failure
Definition: The possibility that network outages, problems with the payment gateway, or mistakes in transaction processing will cause a payment transaction to fail. This can result in unfinished reservations and irate customers. Impact: A decrease in revenue, complaints from customers, and more support expenses. Mitigation strategies include integrating several payment gateways for redundancy, making sure that error handling is reliable, and informing users clearly when a payment fails.
System Scalability
Risk: The possibility that the system won't scale well during times of high demand (holiday seasons, special events, etc.), which could result in sluggish performance or crashes. Impact: Poor customer experience, unsuccessful transactions, decreased system performance, and revenue loss during peak periods. Mitigation strategies include designing the system with scalable cloud infrastructure, doing routine load testing, and improving the speed of the database and applications.
Inaccurate Train Schedule and Availability Data
Risk: The possibility that the train schedule or seat availability data is out of date because of inadequate data synchronization, sluggish system updates, or miscommunication between the railway operators and the ticketing system. Impact: Inaccurate traveler information, excessive or insufficient reservations, disgruntled customers, and a rise in customer service queries. Mitigation: Make sure that the railway systems are synchronized in real-time, and include systems for prompt updates and data validation on availability and schedules.
Regulatory Risk and Compliance
Definition: The danger of breaking any laws or rules pertaining to consumer rights, data security, or transportation laws. This can involve not adhering to regulations on ticket reimbursements, data privacy (like GDPR), or passenger accessibility for those with disabilities. Impact: Penalties, lawsuits, harm to one's reputation, and a decline in stakeholder trust. Mitigation strategies include keeping abreast of pertinent laws and regulations, putting compliance monitoring systems in place, and routinely reviewing and updating policies to reflect changes in the law.
Usability and User Experience Risk
Definition: The possibility that users would find the system slow, unintuitive, or prone to mistakes, which could result in canceled reservations and unfavorable reviews. Technical issues, sluggish loading times, and complex interfaces can all contribute to a poor user experience. Impact: Lowered consumer satisfaction, increased bounce rates, fewer return business, and unfavorable customer feedback. Mitigation strategies include extensive user testing, ongoing interface improvement based on user feedback, and responsive design for desktop, mobile, and kiosk platforms.
Definition of Integration Failure Risk
Definition: The possibility that the system may not correctly interface with external systems, such as payment gateways, national railway databases, or third-party travel platforms, leading to inaccurate ticketing, incomplete data, or interrupted service. Impact: Inaccurate information, operational inefficiencies, transaction failures, and postponed reservations. Mitigation: Test integrations frequently, create explicit data exchange protocols, and put failover systems in place in case a third-party system fails.
Theft and Forgery of Tickets Risk
Definition: The possibility that users or outside parties will try to take advantage of the system in order to get tickets illegally or create fake tickets for travel. This could entail creating fake e-tickets or avoiding payment procedures. Impact: Reduced income, trouble with the law, more security expenses, and possible delays in train operations. Mitigation: Use safe payment methods, improve fraud detection techniques, and put in place reliable ticket validation mechanisms (such as RFID and QR codes).
Customer Support Overload Risk
Risk: The possibility that the customer support staff will be overloaded with questions or complaints, particularly in the event of system outages, ticket cancellations, or scheduling interruptions. Impact: Poor customer service, long response times, loss of confidence, and client attrition. Reduction of damage: Provide self-service assistance tools, use AI-driven chatbots to handle simple inquiries, and make sure you have enough workers on hand at peak times.
Risk for Change Management and System Upgrades
Definition: The possibility that adding new functionality, updates, or upgrades would cause instability in the system or unanticipated consequences like malfunctions, slowdowns, or outages. Impact: Decreased system performance, annoyance from users, and disruption of services. Mitigation: Establish rollback procedures in case of unsuccessful deployments, adopt a structured change management strategy, and rigorously test all updates in a staging environment.
Data Loss or Corruption Risk
Definition: The possibility that important data—such as transaction, ticketing, or passenger information—will be lost or corrupted as a result of database problems, system malfunctions, or careless backup management. Impact: Possible regulatory infractions, loss of transaction data, complaints from customers, and difficulty processing reimbursements. Mitigation: Use dependable database management techniques, establish data recovery procedures, and make sure that routine automated backups are performed.
Overall Description
2.1 User classes and characteristics: Users of online rail ticket system can be categorized into 2 groups: 1.Primary users: Primary users can be a) Commuters: Will use the system to book tickets for daily travel. b) Leisure Traveler: Will use the system to plan trips and book tickets according to their plan. c) Business Traveler: Will use the system to book tickets for business trips. 2.Secondary users: Secondary users can be: a) Family and groups: Will use the system to book multiple tickets easily. b) Travel Agents: Will use the system to book tickets for their clients. 2.2 User Needs Finding out user needs is a crucial part for designing an effective rail ticket application. Keys need that are to be ensured are:
-
Quick and efficient booking: Real time updates on schedules and seat availability can ensure quick booking.
-
User friendly Interface: Interface should be very simple and easy to understand. Clear information on ticket type, price and schedule should be provided.
-
Booking management: Users can easily book or cancel a reservation thus increasing flexibility. Users can also access their previous bookings record.
-
Payment methods: Multiple payment methods must be introduced so that every classes of people can easily pay for their tickets.
-
Premium Service: Premium service can be introduced for business travelers and foreign travelers
-
Discounts and offers: Discounts and offers can be given on group tickets and business tickets
-
Accessibility Features: Making the app usable for elderly and disabled people.
2.3 Operating Environment The app will depend on various elements which will affect its functionality. Some are mentioned below:
- Platform Compatibility: The app should be available on multiple platforms (iOS, Android, web) to cater to a wide audience.
- Cloud Infrastructure: Utilizes cloud services for data storage, scalability, and performance.
- Transportation Regulations: Compliance with local, regional, and national transportation laws and regulations.
- Data Privacy Laws: Adherence to local laws, to protect user data and privacy.
- User Demographics: Understanding the needs of diverse user groups (commuters, leisure travelers, families, etc.).
- Feedback Mechanisms: Incorporating user feedback to improve features and services.
2.4 Constraints
- Technical Constraints:
- The system should be compatible with web browsers like Chrome.
- Page load should be fast and smooth.
- User data and ticket booking data should be stored securely.
- Data backup to prevent data loss.
- Third-party payment methods should be incorporated.
- Transactions should be secure.
- UI should be easy to use.
2.5 Assumptions User assumptions:
-
Users must know how to use basic Web-applications.
-
Users have an internet connection. Technical assumptions:
-
Railway department will provide proper train information
-
Payment system will be available.
-
Permission to sell tickets.
Requirements
3.1 Functional Requirements:
1. As a user
I want to search for available train options So that, I can find a suitable train for my travel based on my preferences.
Confirmation:
From and To Location:
The user wants to search for trains based on their departure and destination stations. The user selects or enters the "From" and "To" locations (e.g., "Delhi" to "Mumbai"). The system validates the entered locations (ensuring they are valid station names or codes) and presents the available train options for that route.
Travel Date:
-The user selects or enters the date of travel. -The system validates the date format and checks for availability of trains on the selected date. -The user can also select a specific time of day (e.g., morning, afternoon, or evening) if the system offers that option. -The system shows the available trains for the selected date, displaying departure times and other relevant information.
Boggy Type (Class or Train Type):
-The user wants to specify the type of train or class they prefer (e.g., Sleeper, AC, Executive). -The user selects the "Boggy Type" or "Train Class" from available options (e.g., Sleeper, AC 3-tier, AC 2-tier, Executive). -The system filters the train options based on the selected class and displays only those that match the user’s preference.
Additional Preferences (Optional):
-The user can apply other filters, such as train type (e.g., express, superfast, or local), seat availability (e.g., window seat, aisle seat), or special services (e.g., meal options). -The system shows relevant train options based on these additional preferences, allowing the user to narrow down their search further.
Search Results:
-After entering the required details (From, To, Date, and Boggy Type), the user clicks the "Search" button. -The system processes the search and displays a list of available trains based on the selected criteria. -Each train option shows essential details such as train number, train name, departure and arrival times, available classes, and seat availability. -The user can sort the results by time, price, or class to find the most suitable option.
Invalid Search Inputs:
-If the user enters an invalid location (e.g., a misspelled station name or a station that does not exist), the system prompts the user to correct the error and re-enter the valid location. -If no trains are available for the selected route and date, the system notifies the user and suggests alternative dates, routes, or classes.
Clear Search:
-If the user wants to start a new search or reset the current search criteria, they can click on the "Clear Search" button. The system resets all fields (From, To, Date, Boggy Type) to their default state, allowing the user to begin a new search with fresh inputs.
Final Confirmation:
-Once the user selects a train option from the search results, they can proceed to view seat availability or move forward with the booking process. -The system confirms that the user has selected the desired train and directs them to the next steps in the booking process (seat selection, payment, etc.).
2. As a user
I want to search for train information by train name
So that, I can view specific details about a particular train.
Confirmation:
-
Train Name Search:
- The user wants to find specific information about a train by entering the name or number of the train (e.g., "Rajdhani Express" or "12345").
- The user enters the correct train name or number in the search field and clicks "Search."
- The system validates the train name or number to ensure it matches an existing train in the database.
-
Train Information Display:
- Once the user enters a valid train name or number, the system retrieves and displays detailed information about the train.
- The displayed information includes:
- Train Name and Number: The official name and unique number of the train.
- Route Details: Departure and arrival stations, including intermediate stations along the route.
- Train Schedule: Departure and arrival times for each station on the route.
- Train Type: Whether the train is an express, superfast, or passenger train.
- Classes Available: The different classes available on the train (e.g., Sleeper, AC, Executive).
- Seat Availability: The real-time seat availability in various classes (if applicable).
- Other Services: Special amenities or services available on the train (e.g., catering, Wi-Fi, power outlets).
-
Invalid Train Name or Number:
- If the user enters an incorrect or non-existent train name or number, the system notifies the user that the train could not be found.
- The user is prompted to recheck the spelling or enter a different valid train name/number.
- The system may offer suggestions for popular trains or auto-correct common errors.
-
Train Route and Schedule Details:
- The user wants to view detailed route information for the selected train.
- The system displays the full route map with a list of stations the train passes through, showing scheduled departure and arrival times.
- If there are delays or updated schedules, the system may show real-time updates (e.g., delayed arrival time or modified route).
-
Train Facilities:
- The user wants to know more about the facilities provided on the train.
- The system provides information on amenities such as food services, cleanliness, onboard entertainment, and Wi-Fi availability (if applicable).
- It also shows whether the train has sleeper berths, AC coaches, and other specific services available.
-
Search Result Filters:
- The user can filter or sort the search results based on criteria like train type, schedule, or seat availability.
- For example, the user may filter the train by class (e.g., "Only AC Trains") or check if seats are available in a specific class (e.g., "Sleeper" or "AC 3-tier").
-
Alternative Train Suggestions:
- If the searched train is unavailable or there are no results, the system suggests alternative trains running on the same route or between similar stations.
- These alternatives could be trains that are available at nearby times or offer similar services.
-
Clear Search:
- If the user wishes to search for another train, they can click on the "Clear Search" button.
- The system resets the train name field, allowing the user to enter a new train name or number to search for different train information.
-
Final Confirmation:
- Once the user selects a train from the search results, the system confirms the selected train's details and allows the user to proceed with further actions, such as checking seat availability or making a reservation.
- The system displays a summary of the selected train information and may direct the user to booking options or further train-related services.
3. As a user
I want to confirm my train ticket
So that, I can secure my seat and confirm my travel plan.
Confirmation:
- After choosing a train and seat, the user will confirm the booking.
- The system will display a booking confirmation, and the user’s seat will be reserved.
- The user has selected a train, class, and seat (e.g., Sleeper, AC, Executive).
- The user clicks on the "Confirm" button to proceed.
- The system verifies seat availability and prompts the user to confirm their selection and payment method.
- The user has selected a train, class, and seat, and they have a special offer (e.g., promotional discount, membership discount).
- The user applies the discount code or offer during the ticket confirmation step.
- The system applies the discount and shows the revised ticket price. The user can then confirm the ticket purchase.
- The user wants to book tickets for multiple passengers (group booking).
- The user selects the number of passengers and enters details for each person (names, ages, seat preferences).
- The system confirms the availability of enough seats and presents the group booking total. The user confirms the booking and proceeds with payment.
- The user has selected a seat but wants to upgrade to a higher class (e.g., from Sleeper to AC).
- The user selects the upgrade option and proceeds to confirm the booking.
- The system processes the upgrade, shows the updated price, and asks the user to confirm the ticket with the new class and price.
- The user proceeds to payment and selects the preferred method (e.g., credit/debit card, mobile wallet, UPI, net banking).
- The system processes the payment through the selected method and confirms the ticket.
4. As a user
I want to register my personal information
So that, I don’t need to re-enter my details every time I make a booking.
Confirmation:
- The user will enter personal details such as name, contact information, and preferences.
- The system will save the data securely, allowing future logins and faster bookings.
- The user is visiting the train ticket booking website or app for the first time. The user selects "Sign Up" or "Register" to create a new account.
- The system prompts the user to enter their personal information (name, email, phone number, address, etc.), and the user submits the details to create an account.
- The user wants to register quickly without manually entering details. The user selects the option to "Sign in with Google".
- The system retrieves the user’s basic information (e.g., name, email) from their linked social media or third-party account and creates an account in the booking system.
- The user has successfully entered their personal information. The user is prompted to create a username and password to complete the registration process.
- The system stores the user’s credentials securely, allowing them to log in for future bookings without re-entering personal information.
- The user has already registered their personal details in the system. The user wants to update their information (e.g., change phone number, address, or preferences).
- The system allows the user to update the stored personal details and saves the updated information for future bookings.
- The user has entered their personal information during registration. The system sends a verification email/SMS to ensure the validity of the contact details.
- The user clicks on the verification link or enters the code sent to their phone to complete the registration process.
- The user has entered their personal information and wants to save payment details. The user opts to save their payment method (credit card, debit card, UPI, etc.) for future bookings.
- The system securely stores the payment information, allowing the user to quickly complete future bookings without re-entering their payment details.
5. As a user
I want to choose my preferred payment method
So that, I can pay for my train tickets easily and securely.
Confirmation:
- The system will present multiple payment options like credit card, debit card, and e-wallets.
- Once the payment is made, the user will get a confirmation, and the booking will be completed.
- The user selects the "Credit/Debit Card" payment option.
- The system prompts the user to enter their card details (card number, expiry date, CVV) and processes the payment securely.
- The user selects the mobile wallet option (e.g., Bkash, Nagad, UPay, Google Pay, Apple Pay).
- The system redirects the user to their wallet app or prompts them to complete the payment using their preferred wallet method.
- The user selects the "Net Banking" payment option.
- The system displays a list of supported banks, and the user selects their bank. The system then redirects the user to the bank’s secure login page to authorize the payment.
- Users can apply special discount coupons and codes and get discount while paying.
6. As a user
I want to download a confirmation pdf file with my ticket details
So that, I have a record of my booking and can access it at any time.
Confirmation:
- The user completes a booking successfully and clicks on the "Download PDF" button. The PDF containing the ticket details is generated and downloaded without any issues.
- The user receives a confirmation PDF with all the necessary details, such as train number, passenger information, journey date, and ticket ID.
- "Download PDF," but the system fails to generate the file due to a server error or missing data.
- The system displays an error message, e.g., "Unable to generate the PDF at the moment. Please try again later."
- The user clicks "Download PDF," but the system fails to generate the file due to a server error or missing data.
- The system displays an error message, e.g., "Unable to generate the PDF at the moment. Please try again later."
- The user downloads the PDF successfully but wants to download it again (e.g., for backup).
- The system allows unlimited or limited downloads based on its policy.
- The user logs out or the session expires but later wants to download the PDF.
- The user must log in again to access the booking history and download the PDF.
- The user tries to download the PDF on a mobile device using an app or browser.
- The system ensures mobile compatibility and provides a smooth download experience.
- The user downloads the file, but the PDF cannot be opened due to format issues or file corruption.
- The user receives a prompt to redownload the file or contact support.
7. As a user
I want to edit my personal information in my booking
So that, I can update my details before finalizing the ticket.
Confirmation:
-
Personal Details Edit:
- The user has already made a booking but needs to edit personal information such as name, age, gender, or contact details.
- The user clicks on the "Edit Info" button next to their booking and modifies the relevant fields (e.g., updating the contact number or correcting the name).
- The system validates the entered information (e.g., ensuring the name matches the ID format or checking if the contact number is valid).
- The system confirms the successful update of the personal information and reflects the changes in the user profile.
-
Email or Contact Number Change:
- The user wants to update their email or phone number for booking-related notifications.
- The user selects the "Edit Contact Info" option, enters the new email or phone number, and confirms the change.
- The system verifies the new contact details (e.g., sending a verification code to the new phone number or email).
- The system confirms that the contact details have been successfully updated and reflects the new contact information.
-
Gender or Age Change:
- The user needs to update their gender or age information for a specific reason (e.g., correcting age for a discount or ensuring proper classification).
- The user selects "Edit Personal Info," changes the gender or age, and submits the updated details.
- The system validates the age format and confirms the change, updating the booking with the revised personal information.
-
Emergency Contact Update:
- The user wants to add or update an emergency contact person’s details.
- The user selects the "Edit Emergency Contact" option, enters the contact's name, relationship, and phone number.
- The system validates the new contact details and confirms the update of the emergency contact information.
-
Document or ID Update:
- The user needs to update the document or ID information (e.g., passport number, government ID).
- The user selects the "Edit Document Info" button, enters the new document details (e.g., passport number), and uploads a scanned copy (if required).
- The system validates the document format (if applicable) and confirms the updated document or ID information.
-
Multiple Passengers Information Edit (Group Booking):
- The user has made a group booking but needs to edit the information for individual passengers, such as names, ages, or contact details.
- The user selects "Edit Group Info," updates the details for one or more passengers, and confirms the changes.
- The system validates the changes and ensures all passengers’ information is updated successfully. If there is a seat preference or a need to reassign seats, the system may prompt the user to reselect seating.
- The system confirms that the changes have been applied to the entire group and updates the booking accordingly.
-
System Notification of Successful Update:
- After editing the information, the user clicks on "Confirm Changes" to save the updates.
- The system displays a confirmation message that the user’s personal details have been successfully updated.
- The updated details are reflected in the user’s booking and profile.
-
Final Review and Confirmation:
- The user is shown a summary of the edited details (e.g., name, age, email, emergency contact) and prompted to review them.
- The user clicks "Confirm" to finalize the changes, and the system processes the update.
- The user receives a confirmation message or email with the updated booking details and information.
8. As a user
I want to log in to my account
So that, I can access my bookings, manage my profile, and proceed with the ticket purchase.
Login Process:
-
Traditional Login (Email and Password):
- The user enters their registered email address and password in the login fields.
- The system verifies the email and password combination.
- If the credentials are correct, the user is logged in and redirected to their account dashboard, where they can view bookings, manage their profile, and access other features.
- If the credentials are incorrect, the system displays an error message and prompts the user to retry.
-
Forgot Password:
- If the user cannot remember their password, they can click on the "Forgot Password?" link.
- The system prompts the user to enter their registered email address.
- The system sends a password reset link to the user's email address, allowing them to set a new password.
- Once the user resets the password, they can log in with the new password.
-
Google Login (Single Sign-On):
- The user opts to log in using their Google account by clicking on the "Login with Google" button.
- The system redirects the user to the Google authentication page.
- The user selects their Google account (or enters login credentials if not already logged in).
- Google prompts the user to grant permission to the system to access their basic profile information (name, email, etc.).
- Once the user grants permission, the system uses the Google credentials to log the user in automatically.
- The user is redirected to their account dashboard, where they can manage bookings and profile details.
- If the user is not registered with the system, the system will prompt them to sign up with their Google account details.
-
New User (Sign Up via Google):
- If the user logs in using Google but doesn’t have an existing account with the system, the system offers an option to sign up using their Google account.
- The user is asked to confirm their details (e.g., email, name) and proceed with registration.
- The system creates an account using the information provided by Google and logs the user in.
-
Social Media or Other Third-Party Login Options (Optional):
- If the system offers other login options (e.g., Facebook, Apple ID, or other social platforms), the user can select their preferred option for one-click login.
- The system redirects to the selected platform’s authentication page, and after successful login, the user is automatically logged in.
-
Session Expiry or Logout:
- If the user is inactive for a certain period, the session may expire, and the system prompts the user to log in again.
- If the user wishes to log out, they can click on the "Logout" button from their account dashboard or menu, and the system will log them out and redirect them to the login page.
-
Error Handling:
- If there is an issue during login (e.g., connectivity problem or server error), the system displays a clear error message (e.g., "Unable to log in at this time. Please try again later").
- The user is prompted to try again after resolving the issue or retrying the login process.
-
Security Features:
- The system may offer two-factor authentication (2FA) for added security. If enabled, after entering their password, the user will be prompted to enter a one-time passcode sent to their registered email or phone number.
- The system supports secure encryption of user credentials to protect sensitive data.
-
Final Login Confirmation:
- Once the user logs in successfully, they are shown a confirmation message (e.g., "Welcome back, [Name]!").
- The user can access their personal account dashboard, view previous bookings, or proceed with booking new tickets.
3.2 Non Functional Requirements : Performance:
- The system should handle at least 1,000 concurrent users without lag or downtime.
- Search results should be displayed within 2 seconds after the user initiates a search.
- Payment transactions should be processed within 5 seconds to avoid delays.
- The system should handle up to 10,000 transactions per minute during peak booking times, such as festivals or holidays.
Safety:
- The system should ensure that payment transactions are processed safely, preventing double-charges or ticket booking errors.
- User data protection should be prioritized, ensuring no leakage of personal details (such as name, ID numbers, payment information) due to system glitches.
Security:
- All sensitive data such as personal details, payment information, and travel history should be encrypted using SSL/TLS encryption.
- The system must comply with industry-standard PCI-DSS regulations for handling payment data securely.
- User authentication must be enforced through a secure login/password system, with an optional two-factor authentication (2FA) for enhanced security.
- Regular security audits and vulnerability assessments must be conducted to ensure the system remains secure from external threats.
Quality:
- The system should be designed with high availability, ensuring an uptime of 99.9% to avoid disruptions, especially during peak travel seasons.
- The user interface should be intuitive and user-friendly
- The system must be scalable, allowing for seamless expansion as the user base grows without affecting performance.