The app is built in TypeScript with the Ionic React framework and Capacitor for device-native functionality, such as local storage for caching, and scheduling notifications.
The dynamic content system, which was needed to handle information release for the ball, used Cloud Firestore. This Firestore database also handled submitted user information, such as dining food choices and their silent disco song request.
To make the app experience seamless users are authenticated anonymously through Firebase Auth.
Historically when guests signed up for a dining table they bring all their tables' information with them to the in-person signup, which was a very slow process for our team to then have to manually enter.
As a solution we moved information entry to the app, such that it could be completed ahead of time by the guests, who would then bring their unique identifier to signup, with which our team could quickly retrieve all their information. By doing so we cut down from last years sign up time of 3 hours to 15 minutes.
The Spotify API was integrated for the silent disco song selector. The app performs a call to their search endpoint and allows the user to make a song choice to be played on the night.
A simple serverless functions deployment handles authenticated calls that our team would need to make to the database, such as requesting a tables information, or fetching a list of all requested songs.
It also serves as the endpoint for providing the app with Spotify API access tokens.
View the code at github.com/spinks/LioninWinterBall.