Inspiration
The Perfect Reunion: Finding the Best Destination for Friends Around the World
In response to Skyscanner’s prompt—to design a fun, collaborative travel planner that helps friends in different locations pick the perfect meeting spot—we imagined a seamless chat-based experience. Why force everyone into a separate website or native app when holiday planning already happens in group chats? By building directly in Telegram, we bring filters like green travel, interests, events, and cost-optimization straight into the conversation. Over 36 intense hackathon hours, we dreamed up this solution to meet people exactly where they already talk.
What it does
- Flexible criteria: Each participant picks relevant filters via a Telegram poll (dates, budget, interests).
- Budget prioritization: Set and adjust your collective spending limits.
- Tinder‐style voting: Swipe through the top 5 candidate cities that fit everyone’s inputs—yes or no—until a winner emerges.
- AI-powered itinerary: Once the city is chosen, Ollama generates tailored trip recommendations right in the chat.
How we built it
- Skyscanner API: We fetched cheapest flight prices between key European hubs over a rolling date window.
- Telegram Bot & Polls: Designed interactive polls so users could specify dates, budget, and interests without leaving the chat.
- Swipe UI: Implemented a lightweight “Tinder” interface in JavaScript—cards you swipe to vote “yes” or “no.”
- Ollama Integration: Hooked up a local LLM via Ollama to suggest itineraries once the winning city is selected.
Challenges we ran into
- ngrok networking: Exposing our local server to Telegram WebApp was finicky and often broke mid-demo.
- API latency & compute limits: Real-time calls to Skyscanner were slow even with multithreading, and our hackathon VM had limited resources.
- Time constraints: With only 36 hours, we had to scope features tightly and defer performance optimizations.
Accomplishments that we're proud of
- Learning to build a full Telegram WebApp bot from scratch.
- Integrating multiple external APIs and an on-premise LLM seamlessly.
- Crafting a working “best city” picker algorithm under pressure.
What we learned
- The end-to-end lifecycle of a Telegram bot (webhooks, polling, WebApp interface).
- Asynchronous API design and basic multithreading for performance.
- UI/UX trade-offs: choosing simplicity over complexity in a hackathon.
What’s next for TripTinder for Telegram
- Real-time Skyscanner: Fully integrate live API calls (we prototyped multithreading but need more compute to hit latency targets).
- Daily price database: Cache and update flight prices daily to avoid repeated API delays.
- Global expansion: Add more cities and extend beyond Europe—our dataset already supports it.
- UX refinements: Improve loading states, card animations, and error handling in production.
- Group analytics: Offer summary insights on vote trends, budget averages, and travel recommendations.
Built With
- api
- fastapi
- javascript
- mongodb
- ngrock
- ollama
- python
- rag
- telegramapi
Log in or sign up for Devpost to join the conversation.