Australia has fantastic fuel price reporting API’s required by law, but alot of the existing apps for consumers are buggy, bloated with advertisements and are not really innovative when it comes to user functionaility. This is where Fuely enters. Fuely makes it much easier to save money when refueling your car.
Have you ever seen really cheap petrol thats 20km from your house and wondered if it’s really saving you money driving all the way over there? Fuely’s main quality of life feature is calculating this saving factor for you based on your car type, reported fuel efficency, weather condition and other scientific factors. Users are presented with several options including shortest difference, highest savings and overall best place to shop for fuel.
Name: Max Taylor
Student number: 47496934
The features that the software system should have are:
The scope for the MVP of this system will include the features:
Scalability is super important for a consumer tool like this one. As it is quite a cool gimmick, just spreading through word of mouth could increase userbase size dramatically and as such the project will need to scale on demand. Breaking it up into subsystems and services and containerising each will allow us to scale on demand and grow services that are being used more frequently on demand. It would negatively affect users if the application were to be slow and buggy due to scaling issues.
Security is very important in a location data collecting application such as this. This application will collect important personal information such as what car you drive and where you drive it which is quite sensitive and could be detrimental if it where to be leaked or compromised. As such data secuirty must be considered at all points of developement and their must be rigorous testing to ensure the highest standard.
As there exists other fuel price applications who may want to implement similar features, it is important that this application is easy to extend with new features in order to stay relevant and cutting edge. It should be built in a modular way which allows for easy addition of other features, post launch, and constant updates to improve the quality of the application.
To evaluate the scaleability of the application, tests will need to be done when the application is at a low and higher loads. Tests need to check all functionaility as loads change in order to evaluate if the application is scaling correctly. This may also require checks on the containers that are being created to establish their health.
To evaluate security the overall architecture and also the codebase needs to be scrutinised to ensure the highest level of data safety. This means that when designing this project, any features that work with the location and user data as well as the database design, need to keep security high on the list of design prinicples.
To evaulate extensibility, the architecture and design choices should allow an easily upgradable and expandable application which is comparmentalised in order to allow easy addition of features. Checks need to include breaking features into sub systems and microservices and ensuring overall compartmentalisation.