BTech 451 Project
First project meeting with Opus:
Met with senior developer Kodie Wixon, project lead Taylor Carnell, and financial analyst Roquito Lim to discuss the general idea of the app,
the recommended time-frame and schedule, and the platforms which would best suit the development. It was originally suggested that we use HTML5 for the desktop application
and have both a HTML5 web app and a native android app for smartphones/tablets, however upon further review it was decided that using just HTML5 would be sufficient for all
the functionality required (most notably taking pictures from a phone/tablet and utilising geolocation). By doing so code will be able to be shared between the desktop and
mobile application.
The next step will be getting set up in the Opus Auckland office and to begin further planning and development.
Second project meeting with Opus:
Met with Opus developer Taylor Carnell (the creator of the HazApp idea) to discuss potential technologies for this project. The main technology of note is the mapping API
ArcGis which I have begun to familiarise myself with in preparation of development. I have also clarified some of the finer functionalities of the application and have begun
designing the overall look and feel of the app.
The next step will be further familiarisation with ArcGis to learn how to make use of some of the more important functionalities like dynamically adding pointers with useful
information, and the interaction of different map marker layers.
Third project meeting with Opus:
Met with Kodie Wixon and Taylor Carnell to discuss and plan out what was needed within the next month or so. Also discussed my project requirements for the BTech course so that
both my needs and the companies needs were accounted for. Also after gaining access to the Opus internal network I have begun planning and working on the user interface design
and implementation utilising ArcGIS.
Further tinkering with ArcGIS, working on the client side application (so far just for the desktop implementation). I have primarily been looking at the ArcGIS Javascript API which is available online. This also includes several very useful code examples which I have been experimenting with.
First presentation for BTech Project:
Presented my into presentation for my HazApp project. The presentation primarily covered the outline of the project including motivations, solutions, and technologies that I
would be using to complete the project. I am awaiting questions and comments regarding my project from my academic supervisor Mano.
Next week I have a big meeting with the Opus team to discuss and plan out the database design for the project (as we will be creating a database to contain the hazards from scratch).
Fourth project meeting with Opus:
Met with Kodie Wixon, Taylor Carnell, and Mitchell Bennett to discuss and plan out the coming weeks of development. It was decided that I would be assigned the mobile side of the application,
and we are aiming to have our first prototype (of both the mobile and desktop side of the application) to be completed and ready for in-house user testing by the first week of July.
From this meeting we also designed our first draft for the PostreSQL based database.
I have created a digital version of the ERD plan using draw.io. After a couple of video meetings with the team I have made a few changes to the point that the ERD should be able to be implemented
into a real database.
Over the coming weeks I will also be continuing my research of suitable technologies to use, leading up to the submission date of my Mid-Year Report.
The ERD has been used to implement the HazApp database using pgAdmin 3. At the current time, there is no real data in the database (only table and relationship definitions), I will be taking some time to input some typical data so that testing may commence.
Development has begun:
I have prioritised getting my local copy of the HazApp database working on my home computer using both pgAdmin 3 and XAMPP so that I can freely use it as a test base
for data while I am developing the mobile side of the application. After successfully setting up the database I have used PHP to perform the basic CRUD operations needed to complete the first
prototype.
This week I have put my time towards learning and getting the ArcGIS mapping technology to work. I have kept in mind that as I am developing for mobile/tablets I need to have a responsive web
design which can accommodate all screen sizes and I have also implemented a simple function to locate where the device is being used and zoom to that location on the map so that users may
easily report hazards that are on projects they are working at.
I have also put a lot of time towards completing my Mid-Year Report which is due at the start of next week.
Mid-Year Report completed:
After submitting my Mid-Year Report I have turned my focus to creating an HTML5 form for hazard reporting. As we are in a very early stage of development, I will only be focussing on area that
I believe are most important to the hazard reporting task.
Exam period for university has started so my work load for the project will be reduced for the coming few weeks. With this in mind I will be hoping to complete the hazard reporting form, and then
work towards combining my HTML5 and PHP code so that when a user completes the hazard form on a mobile device the data will be transferred into the HazApp database.
I hope to make up for the time lost over the exam period in the 4 weeks of mid-year break after my final exam.
Continued development on the base application. Re-factored and updated the user interface and also incorporated bootstrap to make the design more responsive (work on all screen sizes without cluttering or compromising functionality).
Fifth Project Meeting with Opus:
Spoke with Taylor Carnell and Mitchell Bennett on how the development would continue leading up to the first round of user acceptance testing. Focussed on integrating my work with theirs.
Finalising the first prototype leading up to the meeting with Opus' business/software management representatives. Most notably added several new fields to the hazard form page and accessed the PostgreSQL database which automatically receives all currently active hazards and displays them on the map view as well as receives the newly created hazard report (adding it into the database).
Mid Year Presentation
After presenting my mid year presentation I received some useful ideas primarily related to the user interface design and the fields that would be included.
Added function to automatically zoom to a user's location (based of the devices geolocation) when the application is first opened. Encountered some bugs regarding different behavious on different browsers (Chrome vs Internet Explorer vs Mozilla).
Updated the foundation of the PostgreSQL database. In particular fixed some incorrect table columns and created a new view for the hazard table which is more information rich and easier to understand than the original hazard table. This new view will primarily be used for the hazard information modal which I will be implementing next.
Removed the old alert dialogue that was used a filler for a particular hazard's information. Replaced it with a more user friendly and better looking bootstrap modal window. Also changed the filtering of the hazard information modal so that it only displays only the information deemed necessary. For the meantime it is the hazard type, severity, description and reported date, however this can easily be changed in the future if more/less is seen as appropriate.
Created a dozen new hazard type symbols which I have implemented into the hazard map view. Instead of all hazards simply showing up on the map as the same symbol, each different hazard type has its own corresponding symbols. This has further increased the richness of information as now users no longer have to select a hazard (to view the information on the hazard type) as it is clearly apparent in the map view alone.
ELT Presentation:
Merged work from the past 4 weeks with some of the functionality Taylor Carnell and Mitchell Bennett have been working on. This is primarily in preparation to get an up-to-date version working to be put "on-line" so that the
user testing phase may begin. This week we also presented our progress to date to Opus' ELT (general managers and CEO). Got a very positive response as well are some userful inputs for where the project is to head next.
completed User Interface improvements for the hazard information modal. Also implemented the new Opus health and safety approved severity scale on the hazard form. The map view now has a collapsable legend for the newly implemented hazard symbols.
Trip to Opus' Software Development Headquarters in Christchurch:
Visited the software development team of Opus in Christchurch, where amongst other things we discussed my progress to date and my plan for the coming months leading towards the completion of my project. The hazard form's
latitude/longitude fields have been extended to have a graphical map representation of the area a new hazard is to be logged.
Worked on the final touches before the application is ready to be put on-line for real users to use. This included some graphical bugs on smaller screen devices as well as some other smaller bugs affecting the map view.
HazApp is online - User Acceptance Testing:
The hazard reporting side of HazApp has now gone live so that the first round of user acceptance testing can commence. This has meant that a log in system is needed, as such we have decided to go with a htaccess login.
Inital feedback from the Geotech team who have been participating in the user acceptance test has come in. Analysis/discussions of their comments have started, and some of the smaller changes have been implemented.
Working with Highcharts to generate dynamic visualisations of the reported hazard data. Continuing to make minor improvements based of the user acceptance testing feedback.
Development has ended:
Focus is now on completing the final report writeup and the final presentation.
Finishing final report and preparing/presenting the final presentaion.