In the summer of 2018, I took up my first internship with a brand new startup called trophytracks. It focused on hunting and was looking for developers to build out this idea of a hunting journal with three goals: Track. Predict. Harvest.
- trophytracks allows hunters to create a comprehensive hunting history by recording observations, harvests, locations, weather, notes, and even pictures.
- trophytracks will blend your past hunting data with current weather conditions to analyze trends and predict the ideal hunt.
- trophytracks offers predictive analytics that will help hunters maximize their chance of success by being at the right place at the right time.
Now I wasn’t much of a hunter, but I did love designing and developing applications. So when the opportunity came, I said ‘Yes!’. I was excited to put my knowledge of application development and data science to build something that would benefit a community of hunters. The startup was just getting off the ground and I was one of the first few developers on the project. Our team set out to materialize this idea of a hunting journal, that with the help of technology, will help hunters keep track of their hunts while also providing them with predictive insights.
Developing The Hunter’s Journal
As a university junior and an application veteran, the process of building applications was all too familiar. However, the decision to build the application using Google Polymer was one of many great challenges. We decided to start with the polymer framework because it helped us achieve two of our most important goals, allowing the application to be robust and widely accessible. Polymer is a framework based on the idea of being a Progressive Web Application (PWA). A PWA allows users to have access to the application on a laptop or a phone without having to go through the Apple or Android app store. We also decided to use DarkSky for getting the weather data since it provided a plethora of weather features for us to analyze. I took the time to learn the framework and started building the trophytracks application with functionality in mind. My goal for the summer was to get a minimum viable product (MVP) for hunters to use and test out.
For the back-end, we relied heavily on a lot of Amazon’s Web Services (AWS) to implement the user-login functionality, data storage and even hosting the application on Amazon’s servers. I started by learning more about Cognito and IAM Roles. This helped to authenticate hunters to use the application and also to authenticate the API calls that were made. I turned to Dynamodb for storing our data. This was a slight obstacle because Dynamodb used NoSQL as opposed to relational structures such as MySQL that I was familiar with. But with the help of the Lambda scripts, which were written in Python, I was able to read the weather information in a JSON format and save that information to the Dynamodb. Additionally, to store images and other files, I had to make use of another AWS service called S3 buckets. Finally, we hosted the published application on EC2 servers on Amazon so hunters would never run into unresponsiveness while using the application. Understanding the DarkSky weather API and implementing Google Maps on polymer was possibly one of the easier steps. I worked on building an interface for the application and connecting it with the different services. Our team spent the summer putting together the first version of the application that was later released in the fall of 2018.
The road for building the application from the ground up on a framework I never used was extremely challenging, but one that I embraced wholeheartedly. I loved learning a lot about the different functionalities of PWA and learning to use the full suite of AWS was thrilling. My internship ended that summer and although I didn’t get to experience a hunt, I did have some amazing deer meat!
Pivot, Pivot, Pivot
Fast forward to the fall of 2020 and we released trophytracks for both the Android play store and the Apple app store. This ‘pivot’ happened after a discussion with one of my university professors, I decided to try a different framework, it wasn’t as popular but it was also backed by Google. It was called Flutter. I started looking into Flutter and found out that it provided support for automatic deployment for Android and IOS simultaneously under one codebase. This was different from a PWA and meant that we would have to deploy the application to the Apple and Android app stores instead. This also meant that we would lose support for the web version of the application. However, Flutter’s far mature framework allowed us to build far richer features quickly making it a rather trivial trade-off. It was hard to port anything over, given that Flutter used a programming language called Dart, so the application had to be practically rebuilt from scratch.
Our second ‘pivot’ was when we turned to Google Firebase since it had far better support for Flutter than AWS. Firebase was a one-stop spot for all our services and integrated flawlessly with Flutter. We used it for user authentication and used Cloud Firestore for storing user data. Since Cloud Firestore also used NoSQL, I was able to use the same structure to save the data. Firebase also offered Cloud Storage that allowed us to save different images in the application.
Our last ‘pivot’ was perhaps through no fault of our own. It turns out that Apple had acquired DarkSky in the first quarter of 2020 and discontinued the support for a weather API. Therefore, I started to search for other weather APIs that would provide the same level of quality and picked OpenWeatherMap. We were able to implement the new API to provide hunters with all the necessary weather information.
We had talented developers that worked relentlessly to get the application ready in time for hunting season. The final product was exactly what we had envisioned, not the minimum viable product but the real deal, The Hunter’s Journal.
A Look Back
The experience was one that taught me a lot about the different development stages, from the idea to the publishing of the application to the respective stores. I gained knowledge about many different frameworks and multiple different services. It was thrilling to get to experience the inner workings of a start-up and for that reason, I continued to work on trophytracks to see the project through to its completion. I got to work with some brilliant developers that taught me a lot about better programming practices and more about the development process. Looking at the different versions of the application and seeing how much it has grown reflects on how much thought has gone into its design and development.
This fall, thanks to a few dedicated developers, hunters across the globe can log the wildlife that they come across and keep a note of different hunting patterns. The application helps take the guesswork out of when and where to hunt and helps hunters be at the right spot, at the right time. With a HuntPro subscription, you can get all the insights from your data and utilize that information for future hunts. Find out what days and times are best to hunt, and at which spots. HuntPro not only supports the developers but also allows the storage of an unlimited number of photos for all your hunts! Us developers are working on adding more features, like sharing hunts between hunters, adding machine learning models for better predictive analysis, implementing offline compatibility but for now, we hope you enjoy using our app, trophytracks. Hope you leave us with valuable feedback and thank you for taking the time to check out our application.
Akhil John | Software Developer at trophytracks