Inspiration

Every morning, millions of people face the same daily dilemma: "What should I wear today?" Checking weather apps, analyzing hourly forecasts, and mentally pairing outfits takes precious time and energy.

Existing fashion and closet-organizing apps often fail because of high friction: they force users to spend hours taking photos of every garment, removing backgrounds, and tagging fabrics. Furthermore, standard generic recommendation tools suggest random clothing items that users do not actually own.

We created LookCast to solve this with a zero-overhead, actual-wardrobe philosophy. No heavy downloads, no tedious photo uploads, and no generic recommendations. Just open Telegram, set up your profile and personal closet once, select your city, and get an instant, stylish, weather-smart outfit recommendation built strictly from the clothes in your own home.

What it does

LookCast is an AI-powered Telegram bot that acts as your personal, weather-smart stylist with a strict, personal-closet focus:

  • Strict Step-by-Step Onboarding: Ensures complete personalization by guiding users through a mandatory 3-step setup sequence (City Location -> Gender & Style Profile -> Personal Wardrobe List) before unlocking outfit recommendations.
  • Real-Time Weather Engine: Fetches live temperature, "feels like" metrics, wind speed, and precipitation conditions for the user's city via the OpenWeatherMap API.
  • Context-Aware Occasion Selection: Customizes recommendations based on the user's agenda for the day (Casual Walk, Office / Work, Party / Night Out, Date, Sport) via interactive inline buttons.
  • Strict Wardrobe Match & Exclusions: Recommends outfits formed strictly from items stored in the user's personal closet. It accepts natural language updates (e.g., "I bought a red hoodie") and smart exclusions (e.g., "I don't have boots"), making sure missing items are never suggested again.
  • Appropriateness Guardrails: Prevents illogical or absurd outfit combinations (for example, refusing to suggest a skirt or formal wear for gym activities if no sportswear is recorded, and instead prompting the user to update their wardrobe).
  • Interactive Combination Shuffler: Includes a "Try another combination" option that allows users to request alternative outfit combinations from their existing closet with a single click.

How we built it

LookCast was built with a lightweight, high-performance local tech stack focused on user speed and strict data persistence:

  • Interface & Async Framework: Built using python-telegram-bot running locally with non-blocking asynchronous threads (asyncio.to_thread) for smooth UI responsiveness during AI generation.
  • Weather Integration: OpenWeatherMap API for live parsing of multi-metric weather data.
  • Database Architecture: Local SQLite (lookcast.db) database storing user profiles, city settings, preferred base styles, and custom wardrobe lists with exclusion notes.
  • Generative AI Core: Google Gemini API (models/gemini-3.8-flash) utilizing structured prompt engineering to analyze weather parameters, occasion context, and closet contents simultaneously.
  • Decision Engine Model:

$$\text{Outfit} = f(\text{Weather Forecast}, \text{Occasion Context}, \text{User Wardrobe}, \text{Exclusions})$$

where comfort index (C \in [0, 1]) is maximized against practical weather constraints.

Challenges we ran into

  • Async & Threading Blockages: Synchronous API requests initially caused the Telegram interface to freeze. Resolving this required offloading LLM calls into background threads using Python's asyncio utilities.
  • AI Hallucinations vs. Closet Constraints: Large language models tend to invent missing wardrobe pieces. Crafting strict prompt guardrails was essential to ensure the model only selected items present in the user's SQLite database entry.
  • Handling Server Surges (503 Errors): During high API traffic spikes, responses would occasionally time out. Implementing automated retry mechanisms with error handling ensured continuous bot operation without crashing.
  • Contextual Appropriateness: Filtering out absurd suggestions—such as suggesting a dress for a workout—by teaching the model to evaluate event appropriateness before making clothing selections.

Accomplishments that we're proud of

  • Successfully designed and deployed a fully functional, end-to-end automated Telegram bot running locally.
  • Achieved a strict onboarding pipeline that ensures zero recommendation errors due to missing profile or wardrobe data.
  • Engineered a natural-language exclusion system where users can simply type what they do not own, instantly updating the bot's memory.
  • Created a non-blocking, fast asynchronous architecture that delivers complete outfit recommendations in seconds.

What we learned

  • Methods for structuring system prompts in Google Gemini to enforce strict real-world constraints (closet contents, weather limitations, event logic).
  • Techniques for managing non-blocking asynchronous task execution alongside SQLite database operations in Python.
  • Product strategy: demonstrating that a text-and-button Telegram bot can provide a faster, lower-friction user experience than complex standalone mobile apps.

What's next for LookCast

  • Cloud Hosting & 24/7 Server Deployment: Moving the bot execution from local execution to a continuous cloud server deployment (VPS) for uninterrupted 24/7 uptime.
  • Visual Outfit Flat-Lays: Integrating image generation tools to output visual previews of the suggested outfit combinations alongside the text output.
  • Calendar Integration: Connecting with Google Calendar to automatically read scheduled events and suggest appropriate outfits without manual selection.
  • Seasonal Wardrobe Archiving: Adding automated seasonal prompts to help users archive summer clothes or pull out winter coats as local temperatures change.

Built With

  • asyncio
  • google-gemini-api
  • openweathermap-api
  • python
  • python-dotenv
  • sqlite
  • telegram-bot-api
Share this project:

Updates

Submission history