project-proposal-2025

iToilet

Abstract

That’s where this project comes in. The iToilet is a smart phone application that, given a user’s location, can show and direct them to the nearest useable and publicly accessible restroom (in terms of either functionality, cleanliness, or both) in their area. iToilet users are also able to rate restrooms in order to give restrooms more up-to-date and accurate ratings.

Author

Name: Zach Clark

Student number: 44370266

Functionality

The iToilet’s functionality would be based around a GPS map widget centred on the user’s current location that has all the publicly accessible restroom nearby displayed. The user can request the app to find them the nearest useable restroom based on a five-star rating (i.e., what quality of restroom the user considers ‘useable’), and then the app plots a route to that restroom. If the user goes to that restroom, they can then rate the restroom themselves to contribute to that restroom’s rating on the app. The app would also have the functionality to allow users to add restrooms to the app that aren’t currently listed, or report fake or broken or otherwise unavailable restrooms (these actions would have to go through an approval process from the services admin before the app is updated).

The iToilet would require the following system components:

- Smart phone-based user interface. 

- Database for storing user profiles, restroom locations, restroom ratings. 

- Web or smart phone-based interface for admin staff for handling user support and service updates. 

- API for sending and receiving data from the user interface to the database. 

- API for sending and receiving data from the admin interface and the database.  ## Scope An MVP for the iToilet could be just the map with nearby restroom locations pinned to it for the Smart phone user interface (foregoing the route functionality), with some design element indicating the restrooms’ ratings, along with a way for users to rate a given restroom. An MVP would still require user profiles for handling ratings. Restroom locations could be copied from publicly available data sources (could also reduce the service range to just Brisbane city for data entry reasons when doing this for an MVP). An MVP would still require the database mentioned above. Could possibly avoid implementing the admin interface and the respective API; but would still require the API for the user interface. 

Quality Attributes

The most important attributes for the iToilet are its Availability, Reliability, and Scalability.

Availability: The app needs to be easily accessible and useable in a public setting at any time of day, where and when people would be looking for a useable public restroom. As it is intended to be a smart phone application, the app should be both available and useable on a wide range of popular smart phone platforms.

Reliability: While a failure in the system would not be a catastrophe for the user (most of the time, it’s happened to everyone), the iToilet still needs to complete user requests’ quickly and present data accurately without any functionality breaking for the app to be worth having for the user. The locations of public restrooms need to be correct, routes to restrooms need to be the quickest, publicly available route, and restroom ratings need to be accurate regarding user feedback.

Scalability: Given the potential scale of the iToilets service (there are a lot of public restrooms in any reasonably large city, as well as a lot of people who might be in need of them at any given time), the app needs to be able to handle potentially thousands of users trying to use the app at once, including fluctuating demand throughout the day as there would be peak times for this service.

Evaluation

For evaluating the app’s availability, this can simply be done by checking how many smart phone platforms and/or operating systems the app can reliably function on.

For Reliability, this would need to be measured by the accuracy of the iToilet’s functionality, how long it takes to complete a user’s request, and how often, if ever, the system breaks due to a user’s actions.

Accuracy of restroom locations on the map, and the quality of provided routes to restrooms can be measured by manually testing the iToilet and recording how often the app does something unexpected (wrong location for a restroom, strange route to a restroom, etc.)

The reliability/accuracy of restroom ratings can be measured my just calculating the correct average for restrooms and comparing them to the ratings displayed on the app to see if they’re correct.

For scalability, this could be tested using bot users to simulate peak time usage of the app and stress testing the system to see if it breaks. You could also add a large number of fake restrooms to the database to make the dataset more complex to help stress test the system.