Inspiration
As a group with plenty of firsthand experiences planning dates (we have in total, 3 couples). We came up with this idea to streamline date planning and as a tool to break out of our comfort zones when going out. As university students specifically, we’ve had considerable conundrums regarding how to organize around dates, budgets, time constraints, personal circumstances along with an abundance of other restrictions.
We also built this app as a way to help local businesses get discovered. Beyond finding that modern outings can be a bit monotonous: going to the same places, eating the same food and that it may be hard for some businesses to get discovered beyond the traditional restrictive pathways of going through google maps or mainstream platforms. Hence, we developed this app as a compliment to date planning by giving an alternative way to discover and experience new places and new activities often sidelined in a way that's more dynamic, personalized, and ever-evolving date experiences: here is a description:
What it does
Our project generates end-to-end date plans from a user brief such as:
- Dietary Requirements
- budget
- transport
- Reservations
From there, the system builds concrete date ideas with real stops, connective moments, transport-aware sequencing, weather awareness, maps links, and even a restaurant booking handoff when relevant.
How we built it
We built the project as a hybrid system: deterministic filtering and retrieval first, then LLM planning on top of grounded data.
Backend
The backend is written in Python and uses the Foursquare OS Places parquet dataset (THEME 2). We filter candidates deterministically, then feed it to the frontend
Key backend pieces include:
- a parquet-backed query pipeline over the Foursquare dataset
- template-aware retrieval from
config/date_templates.yaml - a local exact vector store for semantic search over place embeddings
- a tool-using date-planning agent built around OpenRouter
- grounding and validation logic to reject malformed or hallucinated plans
- Google Maps verification and route tooling
- weather-aware rejection logic for outdoor plans
- an async Bland AI booking service for restaurant phone calls
- additional enrichment and evidence extraction using Brave Search and Crawl4AI
Challenges we ran into
Ideation was a challenge, we had so many ideas going in all different directions, and finding a focus and a common agreement was our main challenge, On the frontend side, another challenge was adapting the app to the backend architecture before all of the API surfaces were finalized, so we designed the client to support template browsing, form-based generation, and chat-based generation while still handling fallback behavior cleanly.
Ie we gave dummy values before finally merging it with our actual apis
Accomplishments that we're proud of
Were very proud of completing a end to end full stack website in the span of 2 days. We’re very appreciative of everyone's contribution in making this happen and for us not to give up. We’re proud of going through uncertainties together to make a final product that we were all satisfied with and we are proud of the dedication and heart we’ve poured into this project.
What we learned
We learnt how important it is to believe in the project. We’ve had times where we were doubtful and wanted to give up. We’ve doubted our idea and our capabilities, but we’ve learnt through doing this project to not give up, and that failure is acceptable if it means we have tried.
What's next for Date Night
A lot more optimization in relation to external API calls, expansion into testing if we so choose to continue, and more dreaming :)
Maybe even a date (or two)
Built With
- asyncstorage
- duckdb
- expo.io
- foursquare
- httpx
- numpy
- open-meteo
- openrouter
- pandas
- pyarrow
- python
- react-native
- tanstack
- typescript
Log in or sign up for Devpost to join the conversation.