Inspiration
Have you ever seen a street performer you couldn't tip because you didn't have cash? Have you ever wanted to experience a local event or pop-up art venues, on vacation or in your city, but you didn't know where to look?
We've encountered these same issues too.
What it does
ephemeral is an app that helps people discover temporary arts and culture events near them before they disappear. Temporary events, street performances, and pop-up art venues make up a considerable amount of tourism and culture in city hubs. ephemeral taps into this field dominated by physical cash flow, and streamlines it so people can pay artists directly without physical cash. What differentiates this from other payment apps is that you can find temporary art and culture events in the app. You can search the app to find events, or describe what you want and have an AI recommend you places to visit. When you find a place to visit, you can tip the artist easily through Apple Pay or the card on your phone. ephemeral also asks you to confirm the event is going on when you get there, just to make sure it's still happening. ephemeral also asks the artist to upload an image of where they are as an extra verification step.
How we built it
We connected the mobile application to Amazon EC2 for backend hosting and to Amazon S3 for storing and retrieving user uploaded images. In addition to connecting Amazon S3 and EC2, we connected EC2 to DynamoDB for update information in real time. Finally, we connected Stripe Connect to EC2 for payment integration and Google Gemini to EC2 for our recommendation system. An image of this implementation can be found in the image gallery for this project.
Challenges we ran into
We ran into some challenges incorporating a payment feature, map/event distance feature, an AI assistant that recommends places and activities to visit, and event verification.
There's a lot of payment methods out there, so out first we had to brainstorm and research what we wanted to use. We ended up using Stripe Connect and added P2P (Peer-to-Peer) tipping where street performers can onboard as "Connected Accounts" and receive instant payments from users via Apple Pay or Credit Card, with our backend handling the account mapping.
For our map feature and event distance features, we had issues with having to choose which map's API to use, since some APIs might not be compatible with certain devices. We decided to go with Apple Maps, since Apple Maps was able to display maps on every type of device, no matter if it was running iOS or Android. We also implemented Geohashing with DynamoDB, so that instead of scanning every event in the database, our backend uses hierarchical string prefixes to query only the relevant areas near a user. This allows the app to scale to millions of events with sub-second query times.
The AI assistant was also tricky since we needed to prompt it to just recommend places and while being concise. We wanted to match the text style of the user when talking to them and wanted to not have the AI hallucinate events. To do this, we had our AI analyze the user’s requested "vibe" ( "chill jazz" or "street fashion") and cross-references it with our live database. We used FastAPI and Pydantic to ensure validation for every event and payment. We also implemented a custom validation layer that parses AI responses to ensure that any event recommended by Gemini actually exists in our DynamoDB table
Accomplishments that we're proud of
We're incredibly proud that this project went from just an idea to a fully worked out app with map features, payment features, and database that stores events and profiles that users can create. We're also proud that we were able to incorporate an AI that can recommend you places to visit just by saying "i want clothes" or "jazz concerts".
What we learned
We gained lots of experience with having a vision of our frontend and designing a backend that could work with it. We also gained experience creating multiple systems that intersect in one product, such as payment, AI assistants, map features, and profile creation.
What's next for ephemeral
The next steps for ephemeral is being able to expand our product. Our ideal source of revenue would be advertisements; after scrolling through a certain number of events on the explore tab, an advertisement would take the place of an event. However, these would be small and infrequent enough so not to ruin the experience of the users. This would allow us to expand our database and include more features for people. We can also include a subscription service to allow users to not see advertisements and get recommended deals and coupons to events they might like.
Another component is more verification for users and better account systems. This will allow profiles to be more secure and safe. Once profiles are more secure, we can also add a reputation system and ratings. This will allow users who have recurring events to gain more traction and develop their audience/customers.
Built With
- amazon-dynamodb
- amazon-ec2
- amazon-web-services
- fast-api
- gemini
- javascript
- pydantic
- react-native
- stripe-connect
- typescript
Log in or sign up for Devpost to join the conversation.