Document Type


Lead Author Type

CIS Masters Student


Dr. Jonathan Engelsma,

Embargo Period



Android development, Kotlin, Mobile Application


Many roller coaster enthusiasts like to maintain a detailed list of every ride they’ve ridden. Having an organized way of storing this data would be very beneficial. Theme Park Companion is an app that allows users to manage their amusement park visits. Users are able to plan their trips and then use the app while at the park to keep track of what they have done and how long they visited. The user can log rides they've ridden, how long they waited in the queue, and what the advertised wait time was. Additionally the app provides an interface to keep track of any purchases that they have made, such as food, games, merchandise, or admission tickets. Users can store their season passes within the app, which then displays the barcode for them to use to enter the park or use while in the park. The app, built for Android, was written in Kotlin. This language features a number of benefits over Java, including built-in null safety and a more concise syntax. User authentication is completed through FirebaseUI. Firebase Firestore is used to store user data as well as amusement park data. Since users can upload photos from their visits, Firebase Storage stores these files. For purposes of navigating between screens, Jetpack’s Navigation Component was utilized. This presents the developer a more visual representation of how the app flows from one screen to another.