feat: server-based version with menu flagging, distributed polling, and SSE
Complete implementation including: - Express server with Bessa API proxy - Puppeteer scraper for menu data - Flag storage (file-based persistence) - SSE manager for real-time updates - Polling orchestrator for distributed polling - Frontend with weekly view, ordering, and flagging UI - Yellow/green glow indicators for flagged items
BIN
screenshots/after_access_code_input_2026-02-02T12-48-10-237Z.png
Normal file
|
After Width: | Height: | Size: 57 KiB |
BIN
screenshots/after_access_code_input_2026-02-02T12-54-20-956Z.png
Normal file
|
After Width: | Height: | Size: 57 KiB |
BIN
screenshots/after_access_code_input_2026-02-02T12-59-29-191Z.png
Normal file
|
After Width: | Height: | Size: 57 KiB |
BIN
screenshots/after_access_code_input_2026-02-02T13-02-10-408Z.png
Normal file
|
After Width: | Height: | Size: 57 KiB |
BIN
screenshots/after_access_code_input_2026-02-02T13-06-06-285Z.png
Normal file
|
After Width: | Height: | Size: 58 KiB |
BIN
screenshots/after_access_code_input_2026-02-02T13-08-31-187Z.png
Normal file
|
After Width: | Height: | Size: 57 KiB |
BIN
screenshots/after_access_code_input_2026-02-02T13-14-52-623Z.png
Normal file
|
After Width: | Height: | Size: 58 KiB |
BIN
screenshots/after_access_code_input_2026-02-02T13-16-14-800Z.png
Normal file
|
After Width: | Height: | Size: 58 KiB |
BIN
screenshots/after_access_code_input_2026-02-02T13-23-25-272Z.png
Normal file
|
After Width: | Height: | Size: 58 KiB |
BIN
screenshots/after_access_code_input_2026-02-02T13-27-48-494Z.png
Normal file
|
After Width: | Height: | Size: 58 KiB |
BIN
screenshots/after_access_code_input_2026-02-02T13-28-36-791Z.png
Normal file
|
After Width: | Height: | Size: 58 KiB |
BIN
screenshots/after_access_code_input_2026-02-03T08-56-50-844Z.png
Normal file
|
After Width: | Height: | Size: 58 KiB |
BIN
screenshots/after_access_code_input_2026-02-03T09-40-21-463Z.png
Normal file
|
After Width: | Height: | Size: 58 KiB |
BIN
screenshots/after_access_code_input_2026-02-03T09-50-35-785Z.png
Normal file
|
After Width: | Height: | Size: 58 KiB |
BIN
screenshots/after_access_code_input_2026-02-03T11-17-16-092Z.png
Normal file
|
After Width: | Height: | Size: 58 KiB |
BIN
screenshots/after_access_code_input_2026-02-05T17-30-44-707Z.png
Normal file
|
After Width: | Height: | Size: 58 KiB |
BIN
screenshots/after_access_code_input_2026-02-05T20-06-50-583Z.png
Normal file
|
After Width: | Height: | Size: 58 KiB |
BIN
screenshots/after_access_code_input_2026-02-09T11-55-10-362Z.png
Normal file
|
After Width: | Height: | Size: 58 KiB |
BIN
screenshots/after_password_input_2026-02-02T12-48-12-232Z.png
Normal file
|
After Width: | Height: | Size: 57 KiB |
BIN
screenshots/after_password_input_2026-02-02T12-54-22-924Z.png
Normal file
|
After Width: | Height: | Size: 57 KiB |
BIN
screenshots/after_password_input_2026-02-02T12-59-30-253Z.png
Normal file
|
After Width: | Height: | Size: 57 KiB |
BIN
screenshots/after_password_input_2026-02-02T13-02-11-485Z.png
Normal file
|
After Width: | Height: | Size: 57 KiB |
BIN
screenshots/after_password_input_2026-02-02T13-06-07-407Z.png
Normal file
|
After Width: | Height: | Size: 58 KiB |
BIN
screenshots/after_password_input_2026-02-02T13-08-32-289Z.png
Normal file
|
After Width: | Height: | Size: 57 KiB |
BIN
screenshots/after_password_input_2026-02-02T13-14-53-754Z.png
Normal file
|
After Width: | Height: | Size: 58 KiB |
BIN
screenshots/after_password_input_2026-02-02T13-16-15-880Z.png
Normal file
|
After Width: | Height: | Size: 58 KiB |
BIN
screenshots/after_password_input_2026-02-02T13-23-26-378Z.png
Normal file
|
After Width: | Height: | Size: 58 KiB |
BIN
screenshots/after_password_input_2026-02-02T13-27-49-552Z.png
Normal file
|
After Width: | Height: | Size: 58 KiB |
BIN
screenshots/after_password_input_2026-02-02T13-28-37-888Z.png
Normal file
|
After Width: | Height: | Size: 58 KiB |
BIN
screenshots/after_password_input_2026-02-03T08-56-51-912Z.png
Normal file
|
After Width: | Height: | Size: 58 KiB |
BIN
screenshots/after_password_input_2026-02-03T09-40-22-517Z.png
Normal file
|
After Width: | Height: | Size: 58 KiB |
BIN
screenshots/after_password_input_2026-02-03T09-50-36-846Z.png
Normal file
|
After Width: | Height: | Size: 58 KiB |
BIN
screenshots/after_password_input_2026-02-03T11-17-17-490Z.png
Normal file
|
After Width: | Height: | Size: 58 KiB |
BIN
screenshots/after_password_input_2026-02-05T17-30-45-769Z.png
Normal file
|
After Width: | Height: | Size: 58 KiB |
BIN
screenshots/after_password_input_2026-02-05T20-06-51-661Z.png
Normal file
|
After Width: | Height: | Size: 58 KiB |
BIN
screenshots/after_password_input_2026-02-09T11-55-11-428Z.png
Normal file
|
After Width: | Height: | Size: 58 KiB |
|
After Width: | Height: | Size: 49 KiB |
|
After Width: | Height: | Size: 57 KiB |
|
After Width: | Height: | Size: 57 KiB |
|
After Width: | Height: | Size: 57 KiB |
|
After Width: | Height: | Size: 44 KiB |
|
After Width: | Height: | Size: 43 KiB |
|
After Width: | Height: | Size: 43 KiB |
|
After Width: | Height: | Size: 43 KiB |
|
After Width: | Height: | Size: 43 KiB |
|
After Width: | Height: | Size: 43 KiB |
|
After Width: | Height: | Size: 43 KiB |
|
After Width: | Height: | Size: 43 KiB |
|
After Width: | Height: | Size: 43 KiB |
|
After Width: | Height: | Size: 43 KiB |
|
After Width: | Height: | Size: 43 KiB |
|
After Width: | Height: | Size: 43 KiB |
|
After Width: | Height: | Size: 44 KiB |
|
After Width: | Height: | Size: 44 KiB |
|
After Width: | Height: | Size: 43 KiB |
|
After Width: | Height: | Size: 55 KiB |
|
After Width: | Height: | Size: 55 KiB |
|
After Width: | Height: | Size: 53 KiB |