Demo Project

SpotMyMeal

Restaurant Recommendation System

Content-based recommendation engine using TF-IDF and cosine similarity. Enter a restaurant you love and discover similar places.

3,200+
Restaurants
50+
Cuisine Types
TF-IDF
Similarity Engine
Flask
Web Framework

About SpotMyMeal

SpotMyMeal is a Flask web application that recommends restaurants using content-based filtering. The system analyzes cuisine text with TF-IDF vectorization, computes cosine similarity between restaurants, and returns the top 10 most similar matches filtered by the user's preferences for cuisine type, budget, and minimum rating.

PythonFlaskPandasscikit-learnTF-IDFCosine SimilarityJinja2HTML/CSS

Key Features

🔍

Name Search

Find a restaurant by exact or partial name match

🧠

Smart Matching

TF-IDF + cosine similarity finds cuisine-aligned alternatives

🎯

Flexible Filters

Filter by cuisine, budget, and minimum rating

Top 10 Results

Sorted by rating - best matches first

🎨

Glassmorphism UI

Modern neumorphism design with gradient accents

📊

Analytics Route

Built-in rating distribution histogram

How It Works

1. User enters a restaurant name and optional filters
2. App finds matching restaurant (exact match, partial name fallback)
3. TF-IDF vectorizer converts cuisine text to numerical vectors
4. Cosine similarity identifies the 50 most cuisine-similar restaurants
5. Filters applied: cuisine type, max budget, minimum rating
6. Top 10 results sorted by Mean Rating, duplicates removed

Dataset

Restaurant CSV

3,225 restaurants with 5 attributes: name, aggregate rating, mean rating, cuisines (comma-separated), and cost for two (INR). Rating range: 1.0-5.0. Cost range: 1-950 INR. Cuisines include North Indian, Chinese, South Indian, Mughlai, Italian, Thai, Fast Food, and more.