Inspiration

It started with a midnight craving for instant noodles and a completely irrational shame spiral about it. We thought: what if instead of suffering alone, an AI could roast you for your terrible food choices — but in a way that's actually funny, weirdly validating, and still useful?

Every food app is either a calorie tracker that judges you silently, or a delivery app that enables you without comment. We wanted something in between: a chaotic best friend who calls you out, assigns you a personality based on your craving patterns, and then still helps you find the food. The combination of roast comedy, personality psychology, and real-world maps felt like something nobody had built — so we built it.


What it does

Craving.lol is an AI-powered Android app where you type or speak what you're craving, pick an AI personality mode, and get a personalized roast — complete with a Craving Personality verdict from 10 archetypes like Chaotic Goblin, Midnight Philosopher, or Health Pretender.

You can choose from 4 AI personas (Comedian, Philosopher, Therapist, Diet Saboteur) and dial the roast intensity from Mild to full Unhinged. After the roast, you tap "Find It Near Me" and a dark-mode interactive map shows nearby restaurants using OpenStreetMap — no Google Maps required.

Beyond the roast, there are food mini-games embedded in the chat (trivia, calorie guessing, emoji riddles), a community Hall of Shame feed, a fake alibi call feature to escape social situations, and a live voice conversation mode powered by ElevenLabs TTS. Every craving is saved and surfaced as analytics over time — including your personal Goblin Index, Existential Index, and hourly snack distribution chart.


How we built it

The app is written in Kotlin 2.0 with Jetpack Compose and Material 3, following a clean MVVM architecture. We used Room for local persistence, Retrofit for networking, and Firebase for push notifications, analytics, and crash reporting.

The AI roasts are powered by the Groq API. A custom ResponseTuningAlgorithm dynamically adjusts the temperature, frequency penalty, and presence penalty for every request based on time of day, craving category, and input length — so no two roasts feel the same. The PromptBuilder constructs rich system prompts per personality, and the PersonalityEngine classifies the roast output into one of 10 archetypes using keyword and sentiment analysis on the response text.

The interactive map is a full Leaflet.js implementation running inside a WebView with CARTO dark tiles, animated emoji markers, a pulsing location dot, and distance filter chips — connected to the Overpass API for place search and OpenRouteService for walking directions. Voice input uses Android Speech Recognition, and the AI voice call feature streams audio back via ElevenLabs in real time.


Challenges we ran into

The biggest challenge was making the AI feel genuinely funny across wildly different inputs. "Pizza" and "leftover cold pasta at 3am" need completely different energy, and getting consistent comedic timing required many iterations of the PromptBuilder and ResponseTuningAlgorithm.

Getting Leaflet.js and native Android to communicate smoothly through a WebView — passing live GPS coordinates, handling permission callbacks, and rendering animated markers without jank — required careful work with JavaScript bridges and lifecycle management.

Designing the PersonalityEngine to reliably classify roast text into the right archetype without a second API call was a fun constraint-driven problem. We also had to balance ElevenLabs API latency with a snappy voice call UX, and navigate Android 13+ permissions changes while building the alibi call feature on top of the notification system.


Accomplishments that we're proud of

We built full restaurant discovery and routing using only open-source APIs — no Google Maps dependency anywhere. The dynamic AI tuning system means every roast has genuinely unique parameters. The 10 craving personalities emerge from analyzing the roast text itself rather than from a simple category picker. And the entire voice pipeline — speech input to LLM to ElevenLabs TTS — works as one coherent flow.

Most of all, we're proud that this feels like a complete, polished product: dark neon aesthetic, Lottie animations throughout, spring-physics buttons, swappable themes, streak tracking, sharable roast cards, and a mini-game system embedded in the chat. It's not a demo — it's an app people would actually use.


What we learned

Prompting for comedy is genuinely hard. Tone is fragile — one extra sentence can turn a sharp roast into a lecture. We learned to treat prompt engineering like UX design: test with real people, observe where they laugh vs. go quiet, and iterate on word choice the same way you'd iterate on a layout.

We also learned that WebView-based maps can be a legitimate architectural choice when you need visual flexibility that native SDKs don't offer — but the JavaScript bridge demands disciplined state management. And building the analytics system taught us how much richer a product feels when you give users a mirror. People genuinely love seeing their Goblin Index.


What's next for craving.lol

We want to bring real-time social features to the Hall of Shame with live reactions and community craving trends. An iOS port is on the roadmap so iPhone users can also be roasted. We're exploring fine-tuned models per personality for sharper, more consistent comedy, and weekly craving leaderboards for the most unhinged combos. Longer term, we want to add persistent AI memory that learns your patterns and references past cravings — and explore restaurant partnerships triggered by your craving personality type.


I put an enormous amount of work and heart into this project and would be incredibly grateful if the judges could take a few minutes to try it. The APK is ready to install and the full source code is available on GitHub.

Note for judges: Since this was built under hackathon time pressure, you may occasionally run into a bug or two. If anything doesn't work as expected — a screen crashes, the map doesn't load, the voice call cuts out, anything at all — please don't hesitate to report it to me directly at founder.medintelli@gmail.com. I'll do my best to help immediately. Thank you so much for your time and patience, it truly means a lot. 🙏

📁 Metadata & App 🔗https://drive.google.com/drive/folders/1hQ3kUx95Pk8AYaU0EargVvApVMaP5toz?usp=sharing

📲 Download APK ⬇️ https://drive.google.com/file/d/144m5vqOC5AJF6-mqxfQsvlfYmuduGmpN/view?

💻 GitHub Repository 🐙https://github.com/OverflowX-tech/Craving.lol

🔒 Your Privacy is Fully ProtectedThe app is completely safe to install and use. ✅ No background processes ✅ No personal information access ✅ No ads or third-party SDKs

📲 Simple & Lightweight The APK is clean, lightweight, and built purely for demonstration. It will not affect your device's performance or security in any way. 🙏 We appreciate your time and trust in evaluating our project. If you have any concerns or questions regarding the app's safety, feel free to reach out to us directly — we're happy to address them! Thank you !

Built With

Share this project:

Updates