EAL Surfer Neo by PoweredByRamen
Department of Health Environment Action Level Surfer Challenge
When a new development site in Hawaii has a reason to suspect contamination, State requires the Environmental Action Levels (EALs) summary report . During the construction, if they encounter new chemical in the soil, they have to stop everything and wait for the Environment Hazard Evaluation process to complete before they can start up again, which cost millions of dollars!
Dr. Roger Brewer from Department of Hawaii, as well as many toxicologists and ecologists, have developed an expert system in the form of an Excel application. This application is used to help site surveyors create proper summary reports for their Environmental Hazard Evaluation process.
Currently, the technology supporting the EAL is archaic; an Excel application that each site surveyor needs to download from the DoH website. Although the website has the latest version, the Excel application could be copied from one surveyor to the next without verifying the version number. The Excel application only allows for evaluation of one chemical at a time and the two-page summary report generated by the Excel application is routinely overlooked by users and not included in environmental reports.
How we built it
We thought utilizing the Model-View-Controller (MVC) design pattern would give us a good way to split up the work load, build an application that has sustainability, as well as staying faithful to the Excel application design.
Breaking Down the Build Process
- Untangled all the logic and data within the Excel application
- Converted CSV files (~40+ table tabs) to tables, and mass dump it into a SQLlite database
- Created matching UI in the form of HTML/JQuery
- Deconstructed and rebuild the main “compiler” logic into Python
- Converted the Excel report templates into HTML formats, allowing Python to dynamically fill in multiple report forms and generate one entire PDF report dump
- Integrated each previous mentioned component to fit inside the Django framework
Challenges we ran into
- It took a lot of time and effort to break down the Excel application logic, and translate it into Python format
- Time constraints – we could only work on this project after work and during the weekends
- Learning curve – spent a lot of times researching Python and Django technology as we had never used it for development
- We both come from a back-end development environment, so getting the front-end to work well and play nice was a bit tricky at times
Accomplishments that we're proud of
- Web based application for single point of source, as opposed to previously where many surveyors downloading many different versions of the Excel application
- Ease of use; simplified the users’ experience of one button push to get the results back
- Maintain the same look and feel of the Excel UI to stay faithful to the application aesthetic behavior
- User can now enter multiple chemicals
- PDF outputs can be all saved together, and user can print and attach them to their report easier
What we learned
- New technology such as the Django framework, Python language, and various components/packages within Python to get our project up and running.
- Teamwork and to communicate effectively. We knew from the very beginning that working and jiving as a team will carry our project to the finish line, so we made sure to set up meetings and give status updates so we could help each other out and push forward.
- Things that are vastly different from our daily work. We both came from a back-end environment so it was very fun to learn about the front-end, and how everything all work together in a full stack view. It was also very fun to quickly prototype something to see if it fit into our project needs.
- To working and network with our client, Dr. Roger Brewer and Ms. Lynn Bailey. We were provided with opportunities to learn about new topics such as soil hazards. and while meeting new people career spheres.
- Add ‘Step 3’ of the Excel app, where users could input site data
- Clean up SQLlite database so the admin page used to create, update, and delete data models could be cleaner and easier to use by Dr. Brewer/maintainers
- Work on obtaining descriptive table column names
- Update UI to give it a more modern and sleek look
- Expose an API our of current app to build a mobile application
- Use GIS mapping technology to pre-fill user required inputs based on location