
To the left is a view of a User playing a scavenger Hunt, particularly one titled "The Great Hunt". You see the available hints given to the user for the location they must identify. They are able to tap the map to mark their guess, and then check their answer with the button shown below. they also have access to a discussion forum where multiple users can chat about the Scavenger Hunt and help give hints to each other.
Location Authorization
This app requires the User's Location in order to provide them with information about where they are on Stanford's campus, as well as for a future Feature implementation of location-based verification.

Login Page and Registration Pages



The User is able to create a New account. their Username, Password, and Scavenger Hunt Data will be stored using Swift Data's Persistent Data storage model, and the app ensures no two user's have the same username.
The app opens up at the Login Page. From here, the user can enter their login information to enter the app.
If the user is new to the app, they can click on the "New User" link to register. this will allow them to be able to play.
General Views/Features
Upon logging in, users View this home screen which lists the current hunts they are a part of, all of the hunts that are available on the platform, their total score, and a button allowing them to create a new hunt.

Users can add a new hunt to their list of current hunts by tapping on a hunt under the list menu under “Add a hunt!” text. See the video to the right to see this feature.
In this video, the user taps the List Item titled "The Richard Powers Hunt", and that is added to the User's own list of active hunts above.
WHen you Bring up A Hunt View for a specific Hunt, a Navigation Link brings up a view with a hunt Description, hints for that hunt, and some UI elements to check the User's guess. There is also a navigation link to a discussion forum (which we will look into later).

Guessing and Verifying an attempt at a User guess:
The video to the left shows a user tapping a position on the map where they feel the Hunt Location is, and then verifying it with the corresponding Verification button below.
This is what will happen if the user correctly guesses the right location for the hunt.
And this is what will happen if the User incorrectly guesses the location for the hunt.
Below is some SwiftUI Script Components that control the User Guess and verification process of the app. Notice that we use a MapReader proxy in order to allow the app to gain access to the tap gesture position of the User's tap on the Map when they are placing their guess marker, giving us access to the latitude and longitude coordinates of their guess.
Access to the latitude and longitude coordinates of the user's tap would then allow us to determine if the user has guessed correctly using the "is Within Distance" function. particularly, our app determines that the user guess is correct if their tap placement is within 150 meters of the actual location specified by the creator of the hunt.



Chat Features
Users can chat with each other to find teammates for Scavenger Hunts or asked for help.

To the left is a video of a User sending a message to the discussion forum for "The Great Hunt" Hunt.
Creating a Scavenger Hunt
This video shows how a user can create a new scavenger hunt for others on the platform to play.
The user first enters the name and description of the hunt.
Next, the user can tap the location on the map that correlates to the location the hunt is leading to. That location will be converted into coordinates by the app and will act as a reference point for when other users are trying to Make Guesses (As Shown above).
The user can also input any hints they wish to be given to help guide others toward the target Location.
When All the information is filled out and the user is satisfied, they can submit the hunt, which will then be available for other users to join and play.
Technical Details:
Placing the marker as the creator of the hunt requires the same programmatic functionality as the user guessing a location.
The SwiftUI Code for the Create Scavenger Hunt Page is shown below.


The App in action!
Next Steps:
- More sophisticated Backend to store Scavenger Hunt Statistics
- Location-Based Verification (User must be at the Location to verify their guess)
- Leaderboard
- Multi-Step Scavenger Hunts (Requires increased User Setup and moderation)
- Tailor the app towards other use cases outside of Scavenger Hunts.