Our Tech Stack
Designed around simplicity, ease of deployment and ease of development, I chose to use a React frontend and BaaS PocketBase backend.

PocketBase

React JS
Frontend
The frontend is a React SPA. For styling, I opted to use a selection of mini CSS libraries and conventions that I have developed myself previously. Functionally, it works a lot like Tailwind. Data is sent between the frontend and backend using the PocketBase SDK.
The frontend uses a number of react libraries to aid various functions such as the deadline calendar. View all of the packages in use by checking out the project on GitHub.
Backend
To avoid spending hours writing API routes and managing all the necessary security, I chose to use a favorite backend-as-a-service of mine, PocketBase. PocketBase is a an absolutely brilliant project and offers a backend and SQLite Database hosted from a single executable file. While this could lead to scalability issues, thanks to its efficient design PocketBase is more than sufficient for the Exeter Application Tracker.
The Database
PocketBase uses a built-in SQLite database. The schema for which is displayed below:

Open Source
The Exeter Application Tracker is completely open source. View the source code on GitHub.