This is the repository for the ESW Water App, which is called WaterSense. The goal of WaterSense is to augment the old UCI maintenance reports
system with a mobile and web app that enables easy reporting and management of reports by users and UCI staff.
The UCI maintenance report system is outdated. In the current UCI maintenance system, when someone wants to report a broken utility like a broken water main or sprinkler, they must send
a report either by email or through a web form. This system has
some problems:
- If you're reporting broken utilities you will be doing it on your phone. No one wants to wait for their laptop to start when their room is flooding. However, web forms and email are formats that developed in the desktop era and are awkward for mobile.
- Written email reports are only as detailed as users make them, and can lack important info. Where was the report? What does it look like? From a maintenance standpoint, there are some details that need to be known even if the reporter puts in minimum effort.
- Web Forms require inputting a lot of data over and over again. If you already reported once and gave your contact info, why do you need to give it again? The less effort a user needs to put in to report, the more likely they will do so. Also, the web forms ask you to use Internet Explorer or Safari. Nuff said.
So what do WE do about it?
WaterSense is a mobile and web app that makes reporting easy and fast for users while still providing maintenance
personnel all the info they need.
Everyone must sign in through their UCI email, and reporters and personnel have separate views of the app.
Reporters (students and professors) can make reports and view their progress on a map.
Maintenance personnel can view assigned jobs and their reports on a map and update their job progress to end users. IF it is desired,
personnel may also request additional info from users and chat in real-time.
To report,
- 1. sign in with your UCI email,
- 2. mark your location on Google Maps,
- 3. take a picture,
- 4. write an optional report, and then
- 5. submit.
Once a report has been submitted to UCI maintenance, reporters can see their reports on a map. When they click on a marker, they'll see:
- who's been assigned,
- his/her progress as comments, and
- expected completion time (or just the time of completion if it's finished).
The frontend UI of the mobile and web apps is built with Ionic 2 which is itself based on Angular 2. If you don't know what those words mean, that's fine. Ionic 2 has extensive documentation and Angular's awesome components system which should be natural for programmers familiar with OOP. If you're in ICS 31 or 32 and don't know what OOP is, smh.
- 1. Develop the user view for viewing report statuses.
- 2. Develop the personnel status view.
- 3. Create a menu for personnel to see running jobs.
The backend that stores report + status + user data is Firebase. Authentication is done with the Angular-Firebase module
AngularFire2 and the Ionic Native Google+ plugin.
We don't have a schema figured out yet, and due to Firebase's emphasis on real-time data and need to put server logic on the client we
may ditch it and go instead go with an AWS webserver + MEAN stack route.
As you may have figured with all the tech lingo, this is going to be the more advanced part of development.
- 1. Finalize the stack.
- 2. Determine the schema for the app: reports + jobs/statuses + users + reporters + employees.
- 3. Make the DB data integrated with the existing UCI maintenance data format (maybe send an email of the data as its stored in the DB).