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.
The general architecture broke down to the following:
Additionally the Laravel management install communicates with Mailchimp to add new users to the marketing mailing list.
Ionic and Capacitor with React were used to maintain a single codebase among iOS, Android and desktop environments.
Technologies used include:
- AWS : Lambda/S3/SES
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.