Find a file
aaditagrawal 334ff5d0cc
Merge pull request #25 from aaditagrawal/stylex-rewrite
Rewrite styling from Tailwind CSS to StyleX
2026-09-06 02:42:38 +05:30
.github/workflows chore: add CI workflow and tighten oxlint rules 2026-08-09 12:27:49 +05:30
archive/2025-wrapped chore: bump deps and add oxfmt 2026-08-09 11:52:17 +05:30
public chore: bump deps and add oxfmt 2026-08-09 11:52:17 +05:30
scripts chore: bump deps and add oxfmt 2026-08-09 11:52:17 +05:30
src feat: rewrite styling from Tailwind CSS to StyleX 2026-09-06 00:18:17 +05:30
tools/oxlint/anti-slop chore: add anti-slop oxlint plugin (#22) 2026-08-18 09:27:30 +05:30
.gitignore chore: remove accidental pnpm-lock.yaml 2026-08-09 12:28:20 +05:30
.oxlintrc.json chore: add anti-slop oxlint plugin (#22) 2026-08-18 09:27:30 +05:30
api-1.json feat: Achieved Client Side API calls, updated with CORS support, fixed day modal, minor UI changes. 2025-12-25 12:03:06 +05:30
babel.config.js feat: rewrite styling from Tailwind CSS to StyleX 2026-09-06 00:18:17 +05:30
bun.lock feat: rewrite styling from Tailwind CSS to StyleX 2026-09-06 00:18:17 +05:30
components.json
CONTRIBUTING.md chore(ts): build on TypeScript 7 (#17) 2026-07-25 23:28:33 +05:30
LICENSE added the MIT license 2025-08-25 09:20:10 +05:30
next.config.ts chore: bump deps and add oxfmt 2026-08-09 11:52:17 +05:30
openapi.json Moved to an API driven version due to the TIK integration 2025-08-25 03:20:42 +05:30
package.json Merge pull request #25 from aaditagrawal/stylex-rewrite 2026-09-06 02:42:38 +05:30
portless.json :octocat: portless support 2026-05-08 10:18:09 +05:30
postcss.config.js feat: rewrite styling from Tailwind CSS to StyleX 2026-09-06 00:18:17 +05:30
README.md Build static menu bundle for public app 2026-06-01 02:42:30 +05:30
tsconfig.json chore: add anti-slop oxlint plugin (#22) 2026-08-18 09:27:30 +05:30
vercel.json fix(perf): apply menu-data cache headers on Vercel, not just Cloudflare (#15) 2026-07-25 18:55:22 +05:30
wrangler.jsonc Update wrangler config name to fc-menu (#4) 2026-03-16 11:35:18 +05:30

Food Court Menus

Fast, friendly viewer for weekly mess/food-court menus with time-aware highlighting in Indian Standard Time (IST). The app now integrates with the Food Court API to automatically fetch and display the latest menu data.

Contributions, Please

The app now uses an external API for data, so contributions focus on code improvements, UI enhancements, and feature development. Data is managed through the Food Court API at https://tikm.coolstuff.work/docs/reference.

Highlights

  • Time-aware: detects current/upcoming meal using device time converted to IST and auto-focuses it
  • Minimal “playing card” UI with tasteful icons for Breakfast/Lunch/Snacks/Dinner
  • Horizontal carousel: highlights the primary meal, dims the rest, auto-scrolls to the current one
  • Inline navigation: click Year / Week / Day in-place to switch context
  • Fully responsive for mobile, tablets, and laptops

Tech

  • Next.js (App Router), TypeScript
  • Tailwind CSS v4
  • shadcn-inspired components (Cards)
  • lucide-react icons

Getting Started

Prereqs: Node 18+ and Bun.

Development server:

bun run dev

Visit http://localhost:3000.

Production build & start:

bun run build
bun run start

Lint:

bun run lint

Static menu bundle configuration:

MENU_API_URL=https://tikm.coolstuff.work

bun run build fetches menu history from MENU_API_URL, writes a static bundle into public/data/menu-bundle, and then exports the site. The client reads that bundle and chooses the current week using IST dates, so future menus can be deployed early without becoming current early.


Project Structure

  • src/app/ — pages (home, weeks, per-week page) and API routes for week discovery
  • src/components/ — UI components (cards, carousel, inline selectors)
  • src/data/weeks/ — API client functions for fetching menu data
  • src/lib/ — types and IST/time utilities

Future Work (Scope)

  • Adding support for other messes
  • User-defined local input for their own mess with a client-side OCR pipeline

Deployment

Any Node-compatible host will work. Build with bun run build and serve with bun run start.