Project Info
This project did not submit a demo video on Devpost.
Inspiration
We’ve all been there—you’re scrolling through Instagram or TikTok and come across a video of a perfectly sizzling bowl of ramen or the crispiest chicken sandwich you’ve ever seen. You immediately send it to your group chat with, “WE NEED TO GO.” But then… nothing happens. Maybe it gets lost behind a flood of memes, or no one follows up, or the logistics of finding a time that works for everyone kills the vibe. Foodie inspiration is everywhere, but turning that excitement into actual plans is surprisingly hard. We built Triply to fix that. It’s your personal food adventure planner: automating everything from saving restaurant posts to booking the hangout and even splitting the bill afterward. What It Does Triply turns a social food recommendation into a real outing, effortlessly. Here’s how it works: Create a Party: A “party” is your friend group; think of it like your foodie crew or group chat. Drop a Post: Paste an Instagram post into the party. It could be a reel, a picture, or a carousel. AI Analysis: Our system uses AI to analyze the content (via screenshot) and extract: Restaurant name Location Food items Tags, vibes, and other context clues Restaurant name Location Food items Tags, vibes, and other context clues Scheduling the Hangout: Based on the restaurant's open hours and all party members’ availability, Triply suggests dates and times for the visit. Bill Management: After the hangout, users can upload a photo of the receipt. Our system parses it, identifies who ordered what, and intuitively splits the bill. No more awkward math or Venmo chasing! Triply isn’t just a restaurant recommender. It’s a full-circle tool to turn spontaneous foodie hype into actual memories. How We Built It Frontend: Built with Next.js, designed to be minimal and mobile-first for seamless use while texting or browsing social media. AI Backend: We use Claude to process screenshots of Instagram posts. It extracts structured data from unstructured visual media using carefully tuned prompts. We incorporate Google Maps APIs for resolving locations, hours, and directions. We use Claude to process screenshots of Instagram posts. It extracts structured data from unstructured visual media using carefully tuned prompts. We incorporate Google Maps APIs for resolving locations, hours, and directions. Bill Splitting: We use Claude to process screenshots, filter out irrelevant entries, and tag items for each person using menu recognition and named entity detection. We use Claude to process screenshots, filter out irrelevant entries, and tag items for each person using menu recognition and named entity detection. Data Handling: User data is stored on Firebase and used only to optimize planning and payment flows. User data is stored on Firebase and used only to optimize planning and payment flows. Challenges We Ran Into Our biggest challenge was post analysis. Instagram is notoriously bot-resistant, so we had to rely on screenshot inputs instead of scraping text or metadata. Screenshots are messy (there’s no standard format) but we engineered a system to consistently pull relevant info with high reliability. Other major challenges: Balancing Claude’s token limits, input fidelity, and number of images. Too little detail, and the model fails; too much, and it takes overly long to process. Building prompts that generalize across a variety of post types (reels, stories, photos, captions). Accurately identifying locations, even for lowkey or niche restaurants, and handling near-duplicate or misspelled names. Creating a user-friendly and reliable receipt splitting tool that works without requiring every user to itemize their own order. Accomplishments We’re Proud Of Our AI post analysis works surprisingly well. Even on visually chaotic posts or vague captions, it often extracts the correct restaurant and food items. We built a working prototype that turns a post into a scheduled plan end-to-end. We tackled an actual real-world pain point that we experience and made something we’d genuinely use. We created an intuitive UI that doesn’t require users to understand the tech under the hood. What We Learned Prompt engineering is no joke. It can be make or break for a technology like this. You can spend hours tuning just a few words to make a model behave better. Planning things with friends is a surprisingly deep problem space. There’s so much room for intelligent tooling. This was our first hackathon! Git was interesting at times. What’s Next for Triply We’re excited to expand Triply’s capabilities: Menu Matching: Automatically cross-reference food items with real restaurant menus for better recommendations and receipt tagging. Multi-platform Support: Bring in content from TikTok, Yelp, YouTube, and Google Reviews. Auto-invite & Calendar Integration: Instantly create calendar events with reservation links and reminders. Group Polls & Preferences: Let groups vote on where to go next, with intelligent ranking based on past hangouts. Food Journal Mode: Turn your visits into a shared food diary, with ratings, photos, and comments. Triply is just getting started. We want to make group food adventures effortless and way more fun! Slides Check out our demo slides here: Triply Demo Presentation
This is a Next.js project bootstrapped with create-next-app.
Getting Started
First, run the development server:
npm run dev
# or
yarn dev
# or
pnpm dev
# or
bun dev
Open http://localhost:3000 with your browser to see the result.
You can start editing the page by modifying app/page.tsx. The page auto-updates as you edit the file.
This project uses next/font to automatically optimize and load Geist, a new font family for Vercel.
Learn More
To learn more about Next.js, take a look at the following resources:
- Next.js Documentation - learn about Next.js features and API.
- Learn Next.js - an interactive Next.js tutorial.
You can check out the Next.js GitHub repository - your feedback and contributions are welcome!
Deploy on Vercel
The easiest way to deploy your Next.js app is to use the Vercel Platform from the creators of Next.js.
Check out our Next.js deployment documentation for more details.
hackathong
Enhanced Video Analysis Features
Improved Frame Extraction
- 1 frame per 2 seconds: Videos are now analyzed more thoroughly with frame extraction every 2 seconds
- Progress tracking: Real-time progress bar shows frame extraction and analysis status
- Better coverage: Ensures comprehensive analysis of video content
Smart Place Name Validation
- Google Search Integration: Validates place names by searching online to distinguish between:
- Real business names (e.g., "Cali Spartan Restaurant")
- Account names (e.g., "@calispartan")
- Generic terms that aren't specific places
- Context Analysis: Uses location hints like "san jose", "bay area" to improve place identification
- Confidence Scoring: Each identified place gets a confidence score based on search results
Enhanced Location Detection
- Context Clues: Extracts location hints from tags and captions
- Multiple Validation: Combines visual analysis with online search validation
- Geocoding: Provides real addresses and coordinates for validated places
Setup Requirements
To enable Google search validation, add your SerpAPI key to your environment variables:
SERPAPI_KEY=your_api_key_here
Note: The system will work without the API key but place validation will be limited.
Analysis
View
Metric
- 57
- 11
- 7
Figures cover GitHub contributors during the hackathon window. A co-authored commit counts in full for each author, so per-member totals add up to more than the whole-team figures.
Technology
- AnthropicIn code
- CSSIn code
- FirebaseIn code
- JavaScriptIn code
- Next.jsIn code
- ReactIn code
- Tailwind CSSIn code
- TypeScriptIn code
8 of 8 appear in the indexed code.
AI coding agents
No AI coding agent signals were found in this repository.
Detected from committed agent config files and commit authorship. Absence of a signal is not proof an agent was unused.
Codebase size
Source size
1.0 MB
Source files
102
Counts recognized source files only; vendored directories, binaries and lockfiles are excluded, so this is smaller than the repository on disk.
Repository
jasonduongg/hackathon
123 files · 8.3 MB · @ cd8e6e5
Structure
Interface
58 files · 47%Screens, components and styles rendered to the user.
API & routing
18 files · 15%Request entry points: routes, handlers and controllers.
Application logic
21 files · 17%Domain rules, services and shared utilities.
Supporting
Layers are inferred from where files sit in the tree, not from reading the code. A project that names its directories unconventionally will read oddly here — open the file browser to check anything the diagram implies.
Languages
- TypeScript98%
- Markdown1%
- JavaScript0%
- CSS0%
Share of indexed source by file size. Binary and vendored files are excluded.
Dependencies
package.json
npm · 38- @anthropic-ai/sdk
- @aws-sdk/client-s3
- @aws-sdk/s3-request-presigner
- @heroicons/react
- @radix-ui/react-slot
- @react-three/drei
- @react-three/fiber
- axios
- class-variance-authority
- clsx
- firebase
- firebase-admin
- framer-motion
- lucide-react
- maath
- motion
- next
- next-themes
- +20 more
Declared in the repository’s manifests at the indexed commit. A declared package is not proof it is used, and runtime dependencies are listed first.
This project’s features have not been analysed yet.
Export this project's context (description, README, evidence, key source files) to chat with an AI agent elsewhere.