Skip to content

A simple and modern web app for IIT Madras students to check their mess menu. No more hunting for confusing PDFs! πŸ›

Notifications You must be signed in to change notification settings

peddintisonu/IITM-Mess-Menu

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

89 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

IITM Mess Menu Logo

IITM Mess Menu Viewer

A simple, fast, and beautiful way for IIT Madras students to check their mess menu.
No more searching for confusing PDFs!

React Vite Tailwind CSS


🎯 What is this?

This project is a user-friendly web application designed to help students at IIT Madras easily view their daily and weekly mess menus. It takes all the different mess schedules and presents them in a clean, interactive, and always up-to-date interface.

Simply open the app, and you'll instantly know what's for breakfast, lunch, snacks, and dinner.

✨ Key Features

This app is packed with features designed for a seamless and intelligent user experience.

Smart & Personalized

  • 🧠 Intelligent "Today" View: Automatically highlights the current or next upcoming meal and smoothly scrolls it into view on load. Past meals are visually de-emphasized.
  • πŸ”„ Cycle-Aware Preferences: Set a different mess preference for each menu cycle. The app intelligently remembers your choice for the monsoon semester, winter break, and more.
  • πŸš€ Proactive Onboarding: When a new mess cycle begins, the app automatically prompts you to set your preference, ensuring a seamless transition.
  • 🎨 Light & Dark Modes: A sleek interface that looks great day or night, with a manual toggle and respect for your system's theme.

Powerful Tools

  • πŸ“… Historical Calendar: Use the beautiful, themed calendar to view the menu for any past or future date within the available cycles.
  • Full Week Explorer: Toggle between the standard single-day view and a compact "Full Week" view to see the entire week's menu at a glance.
  • πŸŽ‰ Dynamic Event Menus: The app automatically displays special, temporary menu changes for festivals and events, complete with a notification banner.
  • βš™οΈ Advanced Settings: Manage your preferences for previous, current, and next cycles, see a privacy notice, and reset the app if needed.

Performance & Reliability

  • ⚑ Blazing Fast Performance: Built with a "Static Shell" architecture. Skeletons prevent layout shift, and an anti-flash script ensures a smooth dark mode loading experience.
  • πŸ“Ά Full Offline Support: As a Progressive Web App (PWA), the entire app and its menu data are cached, making it fully functional without an internet connection.
  • ⬆️ Instant App Updates: A toast notification appears right in the app when a new version is deployed, allowing you to reload and get the latest features immediately.

πŸ’» Technologies Used

This app was built using a modern frontend stack to ensure it's fast, reliable, and easy to use.

  • React (with Vite)
  • Tailwind CSS v4
  • Lucide React (Icons)
  • MUI X Date Pickers (Calendar)
  • React Loading Skeleton (Performance)
  • Vite PWA Plugin

🀝 How to Contribute

Contributions are what make the open-source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.

Suggesting Changes or Reporting Bugs

Got an idea to make this even better? Found a mistake in a menu or a bug in the app? The best way to help is to open an issue. Be as descriptive as possible!

Making Code Contributions

If you'd like to contribute code, here’s how you can get started:

  1. Fork the Project

    • Click the Fork button at the top-right of this page to create a copy of this repository in your own GitHub account.
  2. Clone Your Fork

    • Get a copy of the code onto your local machine.
    git clone hhttps://github.com/peddintisonu/IITM-Mess-Menu.git
  3. Install Dependencies

    • Navigate into the project folder and install the necessary packages.
    cd IITM-Mess-Menu
    npm install
  4. Create a New Branch

    • It's important to create a new branch for your changes to keep things organized.
    git checkout -b feature/YourAmazingFeature
  5. Make Your Changes

    • Start the development server to see your changes live as you code.
    npm run dev
    • Now, you can edit the code, fix bugs, or add your new feature!
  6. Commit and Push Your Changes

    • Once you're happy with your changes, commit them with a clear message and push them to your fork.
    git add .
    git commit -m "feat: Add some amazing feature"
    git push origin feature/YourAmazingFeature
  7. Open a Pull Request

    • Go to your forked repository on GitHub. You'll see a prompt to create a Pull Request. Click it, describe your changes, and submit it for review.

Thank you for helping make this tool better for everyone!

About

A simple and modern web app for IIT Madras students to check their mess menu. No more hunting for confusing PDFs! πŸ›

Resources

Stars

Watchers

Forks

Contributors 2

  •  
  •