Trailblaze Screenshots

Trailblaze was my final year project for my B.S.c in Business Computing. The project was a blank canvas and each student could come up with their own project that would demonstrate what they had learned during the last four years. I decided to build a web application that would assist hill walkers when planning their routes by generating a route card based on way points provided by the user.

So whats a route card?

A route card is basically a record of where a hill walker intends to go and when they will be back. The hill walker fills out the route card and leaves it with someone trustworthy. If the walker does not return the person they left it with can alert rescue who can use the card to estimate the walkers location. As well as assisting rescue teams the route card is a very useful for navigation aid for hill walkers in poor weather conditions as it allows them to understand distance, bearings, and arrival time for each way-point of their route. 

So it's easy to see why route cards are useful, however they are not widely used and I believe this because they are just time consuming to create as well as requiring a basic knowledge of map reading.

The Web Application/RESTful Web Service

I began with a web application built on the Struts 2 framework. I implemented an MVC (Model View Controller) pattern which made the project easier to manage. For data management I built an EJB (Enterprise Java Beans) project with Hibernate which was connected to a MySQL database. The web application allowed registered users to create walking routes by entering six figure Irish grid reference points for each way-point on their route. By converting the Irish grid reference points to GPS it was then possible to work out distance, bearing, and elevation between those points with some help from the Google Maps API.

The web application allowed users to save their routes as well as connect with other users and share popular walking routes. Users could add emergency contacts who would be contacted in the event that the user declared an emergency via the Android application. These emergency contacts are alerted by text message and a random pin number is generated allowing them to log in and view the users last known location which is taken from the users phone and sent through the web service. For privacy and security an emergency contact could only view a users location once an emergency was declared by the user. The user would also be notified when an emergency contact viewed their location. 

The mobile application needed to have similar functionality to the web application and share the same data, I created a RESTful web service to make this possible. JSON was used to communicate between the mobile application and web service. Below is a diagram of the overall web application and web service architecture.

Trailblaze Architecture
Trailblaze Architecture