Skip to content

A Python package that helps you track and find your favorite meals effortlessly. Simply input your cravings, and MealAlert will scan cafeteria pages near you, sending real-time notifications when your desired dish is available. No more endless scrolling—just quick, stress-free meal discovery!

License

Notifications You must be signed in to change notification settings

trholy/lunchhunt

Repository files navigation

🍽️ Revolutionize Your Lunch Break with LunchHunt!

Tired of Ctrl+F for food? Let LunchHunt do the searching — so you can do the eating.


🚀 What Is LunchHunt?

LunchHunt is a Python-powered food concierge that automatically checks local canteen menus, finds your favorite meals, and sends you Gotify push notifications when they appear.

Now available as:

  • 🐍 Command-line/Script mode — for traditional Python users
  • 🌐 Web UI mode — a new, intuitive dashboard built with Plotly Dash

📘 Documentation

📖 Full docs available on GitLab Pages


🧭 Choose Your Setup

You can now use LunchHunt in two ways:


🐍 Option 1 — Run LunchHunt via Python

1️⃣ Clone & Setup

git clone https://github.com/trholy/lunchhunt.git
cd lunchhunt
pip install .

2️⃣ Configure Your Cravings

Edit example_2.py and define your favorite foods:

# Example configuration
favorite_foods = ["Eierkuchen", "Milchreis", "Hefeklöße"]

3️⃣ Run a Gotify Server

Use Docker to spin up a local Gotify server for notifications: 👉 Gotify Installation Guide

4️⃣ Run LunchHunt

python example_2.py

💬 Receive instant push notifications with location details!


🌐 Option 2 — Run LunchHunt with Web UI (Recommended)

🧩 Docker Compose Deployment

version: '3.8'

services:
  lunchhunt:
    build: .
    container_name: lunchhunt
    ports:
      - "8050:8050"
    environment:
      - TZ=Europe/Berlin
      - PUID=1000
      - PGID=1000
    volumes:
      - ./settings:/home/lunchhunt/app/settings
    restart: unless-stopped

  gotify:
    image: gotify/server
    container_name: gotify
    ports:
      - 8080:80
    environment:
      - GOTIFY_DEFAULTUSER_PASS=admin
      - GOTIFY_DEFAULTUSER_NAME=admin
      - TZ="Europe/Berlin"
    volumes:
      - "./data:/app/data"

Then run:

docker compose up --build -d

Access the UI at 👉 http://localhost:8050


🧭 LunchHunt Web UI Overview

💡 Purpose

The LunchHuntApp is a web-based configuration interface (built with Plotly Dash) that helps you:

  • Configure food preferences & canteens
  • Schedule daily notification jobs
  • Manage multiple profiles
  • Integrate seamlessly with Gotify
  • Create & delete cron jobs visually

💡 Benefits for Busy Devs

Save Time – No more Ctrl+F through menus

Reduce Stress – LunchHunt does the searching

Boost Productivity – Focus on code, not canteens


📂 Project Structure

lunchhunt
├── .dockerignore
├── .gitignore
├── .gitlab-ci.yml
├── Dockerfile
├── LICENSE
├── README.md
├── THIRD_PARTY_LICENSES.txt
├── assets
│   └── style.css
├── data
│   └── .gitkeep
├── docker-compose.yml
├── docker-entrypoint.sh
├── documentation
│   ├── examples
│   │   ├── example_1.md
│   │   └── example_2.md
│   ├── notify
│   │   └── notifier.md
│   ├── scrap
│   │   └── scraper.md
│   ├── utils
│   │   └── util_functions.md
│   └── web
│       └── webUI.md
├── example_usage
│   ├── example_1.py
│   └── example_2.py
├── img
│   └── scroll_meme.png
├── mkdocs.yml
├── pyproject.toml
├── run.py
├── settings
│   └── settings.json
├── setup.py
└── src
    └── lunchhunt
        ├── __init__.py
        ├── notify
        │   ├── __init__.py
        │   └── notifier.py
        ├── scrap
        │   ├── __init__.py
        │   └── scraper.py
        ├── utils
        │   ├── __init__.py
        │   └── util_functions.py
        └── web
            ├── __init__.py
            └── webUI.py

🤝 Contribute & Share

💬 Contributions are welcome! Fork it or share LunchHunt with colleagues who deserve better lunch breaks.

About

A Python package that helps you track and find your favorite meals effortlessly. Simply input your cravings, and MealAlert will scan cafeteria pages near you, sending real-time notifications when your desired dish is available. No more endless scrolling—just quick, stress-free meal discovery!

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •