← Back to Home
AI & automation

Üni Yemek

One service that gathers cafeteria menus from eight universities

Node.jsExpressCheerioPythonHeadless browserREST API

Screenshots & Schematics

Üni Yemek homepage and university menu discovery platform
Üni Yemek homepage and university menu discovery platform

Problem & Challenge

University cafeteria menus published across fragmented platforms in incompatible formats: static HTML tables, client-side SPA renders, and unstructured PDF documents.

How It Works

01

Automated cron jobs crawl institutional cafeteria portals on regular schedules.

02

Static HTML is parsed with Cheerio, SPAs are evaluated using headless browser instances, and tabular PDFs are processed with Python.

03

Raw menu entries are parsed into structured schemas with meal slots, calories, and allergens.

04

Sanitized records are served via an Express REST API with client caching headers.

05

Students view categorized daily and monthly menus through responsive search and filter tools.

Architecture & Technical Decisions

Node.js, Express REST API, Cheerio HTML parser, Python PDF extraction pipeline, Headless Chromium runtime, JSON-backed datastore, and modern responsive frontend.

A data pipeline collecting menus from eight Turkish universities. Because every school publishes in a different shape, it runs three paths: per-school scrapers for plain pages, a headless browser for JavaScript-rendered ones, and a Python parser for menus published as PDFs. Collected records are de-duplicated and served through an Express API, alongside user menu submissions and an admin panel.