Cheap Rides
Abstract
Cheap Rides is a user-friendly application designed to simplify the process of choosing the most cost-effective ride-sharing option. In addition to offering instant fare comparisons from various ride-sharing platforms, the app seamlessly integrates with users’ accounts across these services, allowing them to order rides from multiple providers through one central interface. Prioritising the scalability, reliability and availability of the Cheap Rides platform will be crucial to its success. As the usage of Cheap Rides is expected to largely fluctuate throughout the day/week scalability will ensure that the platform can handle any large demand spikes while minimising the costs of operations when there are less users. Reliability ensures that users will always be able to make an economically informed decision when booking rides. Finally, availability ensures that users will be able to use the application whenever they please. By prioritizing scalability, reliability, and availability, Cheap Rides aims to deliver a user-friendly and dependable ride-sharing platform that empowers users to make informed decisions and save money on their transportation needs, making urban travel more accessible and efficient.
Author
Name: Angus Whittaker
Student number: 45853328
Functionality
Cheap Rides is designed to offer the following functionalities:
Request a Ride
- Users can request a ride to their desired location by inputting their pickup location and destination. They may then select their favoured booking option and request the ride.
Map and Navigation
- Users can select their destination and pickup location using a map-based UI like Google Maps.
Aggregate Ride Information
- Ride fares for the requested trip will be aggregated from several different platforms and then displayed for the user.
- For each relevant ride the estimated ride duration will be stated.
Central Booking Interface
- Users can link their Cheap Rides profile with their ride-share profiles so that bookings can be made without having to swap applications.
Secure Payment Processing
- Users can purchase rides through Cheap Rides so secure transactions and payment detail storage must be implemented to instil user trust.
User Profile
- Users can add/remove linked ride-share profiles and payment details here as well as modifying login credentials
User Authentication
User Account
- Users can sign up and login.
Request a Ride
- Users can request a ride to their desired location by inputting their pickup location and destination.
Aggregate Ride Information
- Rides fares for the requested trip will be aggregated from only 2 platforms and displayed for the user. For each relevant ride the estimated ride duration will also be stated.
Central Booking Interface
- Users may link their Cheap Rides profile with any of 2 approved platforms.
Quality Attributes
- Availability: In the context of this application availability refers to the software’s ability to always be accessible by end users at any time. This is crucial as users utilise ride-share applications at all times of the day and so any down-time or unavailability can result in great user dissatisfaction and subsequent loss of user traffic.
- Scalability: In the context of this application scalability refers to the software’s ability to be simultaneously usable by many end users and economically cope with varying user loads. This is crucial to accommodate for a growing user base and ensuring that any demand spikes can be effectively met and hence ensure user satisfaction. Furthermore, it is expected that throughout the day and week the application demand will go through peaks and troughs, increasing the need for scalability to minimise costs.
- Reliability: In the context of this application reliability refers to the software’s ability to consistently aggregate ride fare data from ride-share platforms and allow for users to book rides. This is crucial as any faults in the system’s functionality will decrease user trust and create user dissatisfaction.
Evaluation
To evaluate the MVP for Cheap Rides, testing will be undergone to cover both the functionality and quality attributes previously specified.
Functionality Testing:
User Account
- Ensure user can create a new account and that it is saved.
- Ensure user data cannot be accessed without being logged into relevant account.
- Ensure user can log out/in of an existing account.
Request Ride
- Ensure user can input a pickup and destination location.
- Ensure once a ride query is submitted a list of ride options appears.
- Ensure that user can book a ride.
Aggregate Ride Information
- Ensure that communication with relevant ride-share platforms API is operational.
- Ensure that a list is compiled of all available ride-fares for the specified journey.
- Ensure that prices listed on Cheap Rides correctly corresponds with those that the ride-share platforms would show.
Central Booking Interface
- Ensure that user can link/unlink other ride-share accounts to their profile.
- Ensure that no other user can access these linked accounts.
- Ensure that relevant ride-share login information is securely stored.
Quality Attributes Testing:
Availability:
- Continuously monitor that the server is operational.
- Periodically check request response times to ensure everything is still running efficiently.
Scalability:
- Load testing to assess Cheap Ride’s capacity and identify any possible bottlenecks.
- Failover testing to assess how well the system copes with failures.
Reliability:
- End-to-End testing to verify user workflows are seamless.
- Error-Handling testing to ensure that if any errors do occur, they are handled gracefully and have minimal impact on the user experience.