How joshualikaist/babdoduk works
Babdoduk is a KAIST-focused food platform: visitors check free-food opportunities and cafeteria menus, choose a meal, and explore its magazine, activities, food log, and history. Its main data workflow gathers notices and mail, sanitizes and parses candidates, validates and deduplicates events, stores them, then exports a static feed for the site. The README documents additional public features whose page implementations are not present in the supplied tree; those branches are represented without guessed source paths. Edges reflect documented flow and sampled calls.
Main entry points: pipeline.py Event processing · home.js Home summaries · food-picker.js Menu picker UI · exporter.py Public feed export
Components 25
Public site
- Home summaries
js/home.js - Free-food feed
js/ggongbab.js - Cafeteria menu
js/kaist-menu.js - Cafeteria snapshot
Food discovery
- Menu picker UI
js/food-picker.js - Recommendation engine
js/food-engine.js - Slot animation
js/eat-slot.js - Food catalog
Free food pipeline
- Free-food refresh
scripts/refresh_ggongbab.py - Notice collectors
scripts/ggongbab/collectors - Notice sources
- Event processing
scripts/ggongbab/pipeline.py - Rule prefilter
scripts/ggongbab/prefilter.py - AI extraction
scripts/ggongbab/parsers/ai_parser.py - Event validation
scripts/ggongbab/parsers/validator.py - Event deduplication
scripts/ggongbab/dedup.py - Event repository
scripts/ggongbab/db/repository.py - Supabase store
scripts/ggongbab/db/supabase_client.py - Public feed export
scripts/ggongbab/exporter.py - Free-food snapshots
Community content
- Magazine
- Events and history
- Food spending log
- Restaurant map
Other components
- Site visitor
Connections 29
- Site visitor → Home summaries: opens
- Site visitor → Free-food feed: views
- Site visitor → Cafeteria menu: views
- Site visitor → Menu picker UI: chooses with
- Site visitor → Magazine: reads
- Site visitor → Events and history: reads
- Site visitor → Food spending log: records spending
- Site visitor → Restaurant map: opens link
- Home summaries → Cafeteria snapshot: fetches
- Home summaries → Free-food snapshots: summarizes
- Home summaries → Magazine: summarizes
- Free-food feed → Free-food snapshots: fetches
- Cafeteria menu → Cafeteria snapshot: fetches
- Menu picker UI → Recommendation engine: requests picks
- Recommendation engine → Food catalog: loads catalog
- Menu picker UI → Slot animation: mounts animation
- Free-food refresh → Event processing: runs
- Notice sources → Notice collectors: provides notices
- Event processing → Notice collectors: collects from
- Event processing → Rule prefilter: screens items
- Event processing → AI extraction: extracts events
- Event processing → Event validation: validates candidates
- Event processing → Event deduplication: deduplicates events
- Event processing → Event repository: reads and writes
- Event repository → Supabase store: persists records
- Free-food refresh → Public feed export: exports feed
- Public feed export → Event repository: reads publishable events
- Public feed export → Free-food snapshots: writes snapshots
- Menu picker UI → Food spending log: records locally