Inspiration
We looked towards existing projects that make us interact with the world and each other in interesting ways, such as Pokemon Go, the Unsent Project, and BeReal, which allowed to come up with Yours, Eventually.
What it does
Users can travel the map (for demo it is click to move, otherwise it would use GPS) and interact with letters other people have left. Letters within 2km of the user become visible, and letters within 50 m are able to be picked up. Users can contribute (write a comment) to letters they pick up and add a reaction (from a set of predefined ones). Users can also author their own letters. Letters you pick up / author are stored in your "pocket", and you can have up to 3 letters at a time. To prevent hoarding, letters will automatically drop after 24hrs (could also be implemented to be a random time within like 12-24 hours to encourage wider spread). When you pick up a letter you can observe the journey it took (each time it was picked up / dropped), and authors can view the stats of their letters in their "Data" dashboard.
How we built it
Frontend is just vanilla HTML/CSS/JS with Leaflet for the map. Backend is Node + Express, with Supabase (Postgres) handling the database letters, pickups, drops, and contributions are all just rows we query and join. We used OpenAI's Moderation API to auto-screen letters and contributions before they go live, with a block/flag threshold system so obviously bad stuff gets rejected outright and borderline stuff gets held for review. Project is deployed by Render.
Challenges we ran into
The main challenge was that everything was new to us. We've never really done anything with Supabase, SQL, OpenAI, and APIs in general, but we were able to figure it all out :)))
But getting OpenAI's moderation API to work in the Render deployment was challenging bc there were so many menus.
Accomplishments that we're proud of
We are quite proud of what we believe to be a pretty unique idea, as well as how far we've been able to develop our MVP, especially since it is one of our member's first hackathon.
What we learned
We learned a lot about JavaScript and API calls.
What's next for Yours, Eventually
The overall design could definitely be improved. Some of the pop-up UI elements are default .html styles. Need a better admin page to manage the flagged letters and contributions. Also, need to optimize word / character counts to improve UX.
If it's possible, we also want to optimize our moderation to allow more / less of certain topics as well as implementing a community way to flag or report harmful letters / contributions.
However, the main thing we wanted to add was the ability to attach a photo to your letter, which would be turnt into a stylized postcard with Reve, but Reve's API has been sunsetted for now it seems.
Built With
- html
- javascript
- openai
- render
- reve
- sql
- supabase
Log in or sign up for Devpost to join the conversation.