Inspiration
Our teammate, Luke, is in a long-distance relationship with a time difference. He mentioned that one of his struggles is scheduling quality time with his girlfriend considering the time difference and their conflicting schedules. From our experiences, we realized Luke’s struggles with coordinating dates were universal to many couples in long-distance relationships.
What it does
Two partners pair up with an invite code and set their time zone, country, available hours, and genre preferences. From there, Across finds a shared free window and suggests a movie, a game, or a recipe that fit inside both users schedules, where each can be refreshed individually if it's not a good fit. For movies, the server first searches through genres that both partners selected, then chooses one of the two genres either partner selected if no shared-genre match is available. Runtime is checked against the couple's set availability, and the full runtime is fit into the shared window. Games follow the same logic, filtered to categories and excluding anything already suggested; recipes follow the same repeat-prevention rule. Games reserve 60 minutes and recipes reserve 90 minutes in the shared schedule. Either partner can suggest a date, and suggesting counts as accepting; the plan only saves once both partners say yes, and from there it exports straight to a calendar (.ics) file. Alongside the bigger dates sits “Our moment”, a daily ritual where both partners get a shared prompt from a rotating pool of 28 and can each upload one photo Neither photo reveals until both are submitted or the reveal window arrives, and that reveal time can be adjusted in settings. The first reveal happens one local day after a pair opens the feature, each prompt opens 12 hours before its reveal, and both partners see their deadline in their own time zone. Photos never reveal early, even if both partners submit right away, and after the reveal, each partner can leave one emoji or message reaction per photo, and everything, including photos and reactions, disappear after exactly 24 hours, with no archive kept.
How we built it
Frontend: React Native, Expo, TypeScript, Expo Router, Figma, Canva
Backend: Node.js, Express, TypeScript
Authentication and Shared User Data Storage: Supabase
Activity data: TMDB (movies), RAWG (games), TheMealDB (recipes)
Challenges we ran into
Learning how to use API keys and implementing them into the project was a major challenge. We had to ensure that our API keys were not exposed in the application, with only our backend being able to access them. Figuring out how it all worked was very challenging. We also found it hard to come up with our project idea. Finding the balance between a project that was interesting and unique while still being feasible to create with our skills and limited time was hard.
Accomplishments that we're proud of
We are most proud of finishing the project in 24 hours with so many functional features. We initially expected to only be able to implement two of the main features we came up with, but we ended with many more; we even included connections to multiple public databases for the movies and games categories. Another accomplishment was designing a clean user interface. Finally, we are proud to have learned new skills such as using API keys and Figma.
What we learned
Our back-end coders learned how to use API keys for the first time. We gained a deeper knowledge of using AI tools such as Codex to assist in coding. The team members who worked on the front end learned how to use Figma to create mock-ups for the first time. We also learned how to apply UX/UI principles to create an interface from scratch rather than merely updating an existing interface.
What's next for Across
Background reminders before a planned date, Our Moment history for couples who want to look back after months together, and expanding matched activities beyond movies/games/recipes into things like music listening parties, etc. We also want to work on Google Calendar integrations.
Built With
- expo.io
- express.js
- node.js
- rawg
- react-native
- themealdb
- tmdb
- typescript
Log in or sign up for Devpost to join the conversation.