Bullseye is a mobile application to replace the paper-based system for recording ABA outdoor and indoor archery rounds. Bullseye will also enable archers to see their progression, track goals and identify areas of improvement in their rounds.
The project will be broken down into three areas:
- the API,
- the mobile application, and
- the marketing website
- Setup basic TypeScript-based Jest tests.
- Add Github Actions pipeline to run Jest tests.
- Create a ERD for the database structure.
- Install and setup Prisma with PlanetScale, create the initial migration.
- Write Jest tests for the CRUD API routes to store round information.
- Write the CRUD API route functions to satisfy the written tests.
- ...
- ...
The API will be built using the Serverless Framework, published using Amazon Web Services.
Functions will be written in TypeScript, and the project will be developed using the Test Driven Development practise to ensure safety while iterating rapidly. Unit tests, feature tests and integration tests will be written using Jest.
The mobile application will be developed using Flutter, and the Dart language.
... Flutter packages will be added here as the mobile development of the application starts and are deemed necessary.
The marketing website will be developed using the Astro framework. As there will be no need to serve any dynamic frontend features, nor any project-based user functionality, this project is not a good candidate for larger frameworks like NextJS or Laravel.
ReactJS and TypeScript will be used on the frontend, where Astro components do not suffice; however this will be extremely limited and I do not forsee much JavaScript needing to be served to the client other than the default Astro bundle.
As I am concerned about privacy, I will use Fathom Analytics as our website analytics tracker over Google Analytics.