Case Studies

ATFGunDB

ATFGunDB was a now defunct passion project that I used to track round counts on my firearms as well as costs. The code has been open sourced and can be found here.

Technology Used

Highlighting the core innovations of our application.

Go

Backend REST API was powered by Go and Gin

AWS

Lambda, S3, and SES were used for the infrastructure

Auth0

Handled authentication and JWT

Ionic/Capacitor

Cross-platform application was built with the Ionic framework

Front End

React, TailwindCSS, & ChartJS were used on the frontend

Laravel

Admin interface used Laravel

MongoDB

Round counts and range trips were handled in a NoSQL database

PostgreSQL

Admin backend and reporting interface used PostgreSQL

Project Overview

ATFGunDB is an application that tracks a user’s gun collection, ammo inventory, and round counts accumulated on guns to aid in preventative maintenance as well as tracking maintenance.

Utililizing Auth0 intitially presented some unique challenges on the mobile platform since iOS limits communicating user information with “3rd party services”. Additionally, extra care needed to be taken to ensure that we redirected back to the app properly upon successful login. On both iOS and Android an intent/url scheme had to be registered in the manifest/plist files.

A conscious decision to use Contexts inside React over Redux was made even though there was a non-trivial amount of state to manage because of the relatively linear nature of the data flow and because most of the components did require a rerender if data changed (such as tables of inventory or ChartJS charts).

A separate management interface was provided to allow administrative staff to monitor user activity and prevent any abuse as well as observe how well marketing efforts are paying off.

In conclusion, we were able to fully leverage current technology to provide a unique experience for the user as well as offer insight and control to the client.