-
-
Mobile app intro screen
-
Home Screen
-
Upload Photo
-
Send Uploaded Photo To Your Groups
-
See Other's Photos In Your Groups
-
View Top Scores Each Week In Your Groups
-
Attempt Challenges From Your Friends, See Their Attempts
-
Wait For the AI To Verify Your Image
-
Yay! Your Submission Was Successful
-
Oh No! Your Submission Wasn't Matched
Inspiration
Ah, the age-old stereotype that software devs never go outside. Well, no longer will that be the case!
What it does
SnapTime is a mobile app where you and your friends can give each other scavenger hunt challenges! One person takes a photo of a notable location, and the others in their "Snap group" will have to race to find and take a picture of the same thing. If our app AI determines their replicated photo is similar enough to the original, the user who replicated the photo will receive points and climb in the leaderboards!
How we built it
We used React Native to build the mobile app, and Express.js to build the backend. For frontend, we used Zod schema validation to validate that data is in the correct before being processed, ensuring Type Safety. React Query was used to efficiently fetch data from the backend. On the backend, we used Prisma as our ORM tool allowing us to define schemas and create queries, and a SQLite database to simplify database management. Docker was used to containerize the application, allowing us to maintain a permanent server environment that is reachable. Other Features: We used technologies like large-language models, namely OpenAI API to power the core functionality of the app. The technology enabled the app to accurately analyze and determine whether two images represent the same object or scene, providing users with reliable and precise results.
Challenges we ran into
It was difficult to find an accurate and reliable way to determine the similarity of two images. We were on the fence between using a large language model vs an interesting algorithm called perceptual hash, which generates an image score that captures the features of the image. We look forward to investigating and implementing more ways to detect image similarity!
Accomplishments that we're proud of
We were floored by the amount of features we were able to implement during this hackathon: we actually implemented all the major features of our planned MVP for the project!
What we learned
After countless hours of pair programming, brainstorming, and debugging, we all developed our collaboration and systems design skills. We were remarkably in-sync and organized during this hackathon. In terms of technical skills, we learned about API design, project structuring, mobile app development, and a briefly foray into prompt engineering. There were also several gotchas about React Native that we wouldn't have learned without this project.
What's next for Snaptime!
We believe Snaptime could be useful in a variety of scenarios. One such use case is helping people orient themselves in a new physical environment. For example, newly enrolled university students could the app to challenge one another to explore their campuses in September. The logical next step for Snaptime is to add additional features such as larger groups to support these use cases. Finally, with enough traction, we even plan to launch our paid premium subscription tier with a mascot inspired by a certain owl to further motivate users to touch grass. Subscribed user will receive encouraging notifications daily that reminds them that no day is complete without its fair share of outdoor activity.
Built With
- express.js
- node.js
- openai
- prisma
- react-native
- sql




Log in or sign up for Devpost to join the conversation.