project-proposal-2025

Rent-a-Park

Abstract

Are you frustrated with being charged through the roof to park near your workplace? Or do you want to use your extra parking space to make money for you?

Rent-a-park allows residents and businesses to easily rent out surplus parking spaces. Resulting in cheaper prices for customers and extra cash for providers. You can search for parking spaces in your area, book ahead and sign up for long-term fixed rates.

Author

Name: Lachlan Harnett

Student number: 45804339

Functionality

The core features of the application are listed below:

Accounts

Listings

Search

Booking

Payment

Communication

Scope

The scope for the MVP of this product will include the following features:

Accounts

Listings

Search

Booking

Quality Attributes

The three most important quality attributes are listed in order below, along with specific security considerations for this application.

Availability

Since this is a customer facing application, real-time access is essential and it is therefore vital to ensure the application is available at all times. Users attempting to book parking while the system is down would cause frustration and wasted time. Additionally, whilst the system is unavailable, providers cannot manage their listings or confirm bookings, and customers will not be able to access important information. Ensuring functional user access to the application provides clear criteria for evaluation.

Deployability

This application will constantly be expanding into new regions and multiple local deployments will be required to provide a high level of performance. There may also be differences in regional configurations of the application so a high degree of deployability will ensure updates can be seamlessly deployed across many regions. Deployability refers to how easily and efficiently the system can be deployed, updated, and managed in different environments. A well-deployed system ensures fast releases, minimal downtime, and easy rollback mechanisms.

Scalablity

Parking demand changes greatly across different times of the day, week and year, so the system will need to handle highly varying workloads. Due to this ebb and flow of user activity, the system will also need to ensure that resources are economically utilised across a spectrum of user activity. Customers expect a high degree of performance, and scalability ensures that the system function with low response times. The scalability of the system determines how well it can handle an increasing number of users and data while maintaining performance. An evaluation should focus on resource efficiency, system limits, and functional stability under varying loads.

Security

As this application will handle payment data, it will require a high degree of security. Additionally, it is important that users are not allowed to spoof other users or repeatedly create bogus accounts to waste users time. As users may be listing parking spaces in their personal residence, they may also wish to hide other personal information, and this information should not be exposed to other users. A well secured system protects data, user privacy and system integrity against unauthorized access, attacks and misuse.

Evaluation

Availability

  1. The availability of the system can be evaluated by ensuring the application performs expectedly at a reasonable maximum load, A load testing tool such as Locust can be used to subject the system to a certain load and ensure that availability of the site is sufficiently maintained.
  2. Measurements should be taken of the uptime of the system and the time taken to restart the system if it is subject to downtime. Downtime required for developers to launch new versions of the system should be measured. Each of these should be evaluated against reasonsable benchmarks.
  3. The system should also incorporate logging using a tool like Prometheus and these logs should be analysed to ensure the system is able to recover from minor failures.

Deployability

  1. The deployability of the system can be evaluated qualitatively by investigating the ease of the deployment process as well the required manual steps.
  2. Quantitative evaluation would incorporate how quickly the system can be deployed in a new region.
  3. Evaluation should also cover how quickly service can be restored in the case a failed deployment is released.
  4. The ease in which the system can be replicated in a different environment should also be evaluated.
  5. Deployability across cloud platform providers could also be analysed by investigating the level of dependency on the chosen cloud provider.

Scalability

  1. Ensure the system is appropriately scaling to meet user demand, and investigate the resource efficiency of the system at varying loads.
  2. The maximum concurrent users of the system before service substantially degrades should also be measured.
  3. Declines in the performance of the functionality of the system at various load levels should be measured.
  4. User testing should be undertaken to establish reasonable benchmarks that the previously mentioned measurements can be compared to.

Security

  1. A vulnerability assessment should be undertaken of the application, and the system should protect against common attack vectors.
  2. The system should ensure that any sensitive information is protected from unauthorised access through encryption.
  3. A static analysis of the application’s code should be undertaken to identify potential exploits.
  4. Common protections such as login lockouts, throttling and multi-factor authentication should be successfully implemented.

Functionality

  1. Account functionality can be tested by successfully signing up and logging into an account. Listings should be created to ensure users can only manage their listings.
  2. Listing functionality can be tested by successfully creating a listing and ensuring it is available to other users. Listings should also be able to be deleted and edited.
  3. Search functionality can be tested by ensuring all appropriate listings are shown when search filters are selected. Sorting can be tested by checking the ordering of listings.
  4. Booking functionality can be tested by attempting to access the booking availabilities and ensuring these are correct. Tests should also incorporate a large number of users attempting to make the same booking simultaneously, and ensuring that only one user is able to make the booking.