project-proposal-2025

Brisbane City Reporting App

Abstract

Have you ever wanted to report an issue to the city council such as a deceased animal on the side of the road, a pothole or a tree that has fallen over but did not know how or who to contract and did not feel like navigating the messy maze of government/council websites? The Brisbane City Reporting application allows citizens to log issues directly with the council and track them. It features a public-facing interface for logging issues and a council-facing interface for managing and resolving them.

Author

Name: Riley Whitlock

Student number: 46987033

Functionality

The system provides a simple application that allows users to log issues with the city council and track them. This can range from potholes, deceased animals along the side of the road or even trees that have fallen over. It will also allow city council workers to change the status of and post updates for publicly logged issues in a separate application available to the council only.

Features

Public Facing End:

Council Facing End:

Scope

The scope of the MVP of this system will include the following features.

Public Facing Application:

Council Facing Application:

Quality Attributes

Availability: Availability is crucial to the Brisbane City Reporting App because it needs to always be accessible and functional as the issues reported could pose a danger to the public (i.e. tree blocking major road or malfunctioning traffic light). Citizens may use this application at any time of the day to log and report hazards, especially during emergencies (i.e. cyclone Alfred) or to view existing issues that may be hazardous. Council workers may also use this application to post important updates/status changes for issues that pose safety concerns. Ensuring high availability allows more users to access the application increasing the likelihood of timely reports and faster council responses.

Scalability: Scalability is also crucial to the Brisbane City Reporting App since it needs to provide consistent functionality during peak usage which may occur at unpredictable times. During events such as Cyclone Alfred, usage may be spike dramatically (significantly more issues being reported) than usual so the system needs to scale to maintain responsiveness and avoid service disruptions.

Extensibility: Extensibility is important to the Brisbane City Reporting App since new issue types and fields (filled out by user when reporting issues) may need to be added in the future to better capture the diverse nature of logged issues. The addition of new issue types and fields needs to be possible without entirely refactoring the application.

Evaluation

Availability: To evaluate the system’s availability, various scenarios should simulate different real-world conditions, including normal usage, high load periods, and component failures. Monitoring tools should be used to monitor the availability of the system during tests. Synthetic monitoring tools will ping key system endpoints at regular intervals (e.g., every minute) to track uptime and response consistency over time. Additionally, downtime recovery simulations (manually stop services to see how fast the system recovers) should also be run to determine how well the system recovers and how quickly it becomes available again when components fail. Will be considered successful if:

Scalability: To evaluate the systems availability, stress testing should be conducted to simulate increased levels of user requests. These tests will assess how well the system maintains performance under growing demand and whether its architecture can handle increased load. Performance metrics such as average response time, error rates, and throughput will be monitored across varying load levels, with a particular focus on a worst-case scenario. In the worst-case scenario, the system will experience five times the average expected traffic to simulate peak load conditions that the system could expect to receive during a major event (i.e. cyclone Alfred). Will be considered successful if:

Extensibility: To evaluate the systems extensibility, new feature additions will be simulated during development.

The time and effort (in terms of lines of code and affected modules) required to implement the new features will be measured. Will be considered successful if