How 0770-lakshya/messwebsite-react works
Pakadarpanalaya is IIT Bhilai’s static mess portal. Visitors navigate to daily and weekly menus, browse notices and poll results, and view committee and contact information; the menu supports a vegetarian-mode toggle. The complaints desk adds Google sign-in and an institute-domain check before exposing the complaint form/QR flow. The README documents live Google Sheets content and menu data, plus the weekly schedule and committee hierarchy. Source excerpts confirm routing, content and poll loading, and complaint sign-in; menu parsing and several page implementations were not sampled, so their internal wiring is kept minimal.
Main entry points: App.jsx App and routes · Home.jsx Home overview · Menu.jsx Daily menu · Complaints.jsx Complaints desk
Components 23
Portal shell
- App and routes
src/App.jsx - Shared layout
src/components/Layout.jsx - Navigation
src/components/Navbar.jsx
Dining information
- Home overview
src/pages/Home.jsx - Daily menu
src/pages/Menu.jsx - Weekly schedule
src/pages/WeeklyMenu.jsx - Vegetarian mode
src/lib/VegMode.jsx - Menu loading hook
src/lib/useMenu.js - Menu data logic
src/lib/menu.js - Menu display components
src/components/MenuBits.jsx
Community pages
- Committee hierarchy
src/pages/Committee.jsx - Contact information
src/pages/Contact.jsx
Feedback and polls
- Poll sheet loader
src/data/pollData.js - Complaints desk
src/pages/Complaints.jsx
Content and data
- Site content
src/data/siteData.js - Notices and announcements
src/lib/useContent.js
Other components
- Visitor
- Menu spreadsheet
- Content spreadsheet
- Public poll totals
- Google sign-in
- Google identity service
- Complaint form and QR
Connections 31
- Visitor → App and routes: opens portal
- App and routes → Shared layout: renders routes
- Shared layout → Navigation: displays navigation
- App and routes → Home overview: routes to
- App and routes → Daily menu: routes to
- App and routes → Weekly schedule: routes to
- App and routes → Committee hierarchy: routes to
- App and routes → Contact information: routes to
- App and routes → Complaints desk: routes to
- Home overview → Menu loading hook: loads menu
- Daily menu → Menu loading hook: loads menu
- Weekly schedule → Menu loading hook: loads schedule
- Menu loading hook → Menu data logic: calls fetchers
- Menu data logic → Menu spreadsheet: fetches and parses
- Home overview → Vegetarian mode: reads mode
- Daily menu → Vegetarian mode: uses mode
- Home overview → Notices and announcements: loads notices
- Notices and announcements → Content spreadsheet: fetches workbook
- Notices and announcements → Notices and announcements: caches locally
- Home overview → Poll sheet loader: loads poll totals
- Poll sheet loader → Public poll totals: fetches totals
- Home overview → Site content: reads page content
- Committee hierarchy → Site content: reads hierarchy
- Contact information → Site content: reads contact details
- Complaints desk → Site content: reads access settings
- Complaints desk → Google sign-in: starts sign-in
- Google sign-in → Google identity service: requests profile
- Complaints desk → Complaint form and QR: reveals after access check
- Home overview → Menu display components: renders menu sections
- Daily menu → Menu display components: renders menu sections
- Weekly schedule → Menu display components: renders weekly table