A comprehensive, modern web application designed specifically for MIT Manipal students to quickly access essential campus services, academic resources, and emergency contacts. Built with Next.js 15 and featuring a beautiful glassmorphism design with dark/light mode support.
- Student Lifecycle Management: Quick access to both new SLCM 2.0 and legacy SLCM portals
- Library Resources: Previous years' question papers, EBSCO database access, and library portal
- Academic Platforms: Lighthouse (semester resources), Impartus (class recordings), and Brightspace Pulse apps
- Research Tools: Manipal PURE researchers directory
- Microsoft 365: Direct links to Outlook and Office 365 apps
- Real-time Status: Live open/closed indicators with current operating hours
- Complete Information: Contact numbers, delivery fees, packaging costs, and addresses
- Smart Hours Display: Shows current operating window or next available hours
- Quick Actions: One-click phone copying and vCard downloads
- Comprehensive Coverage: 12+ restaurants including Taco House, Hungry House, Hit&Run, and more
- Block-wise Organization: Complete directory of all hostel blocks (4, 7, 8, 9, 10, 14, 15, 17, 18, 19, 20, 21, 22)
- Warden Details: Names, designations, office phones, mobile numbers, and email addresses
- Reception Contacts: Main hostel phone numbers and email addresses
- Individual Contacts: Download individual warden contacts as vCards
- Auto Rickshaws: Gate 2 & 4 auto stands plus individual auto drivers
- Cab Services: Manipal Khaas, Manipal Cabs, and Sashikant Taxi
- Contact Management: Direct calling and vCard downloads for all transport services
- Campus Emergency: MIT Student Clinic, Campus Patrol, and KMC Ambulance
- Local Helplines: Student Health Clinic, KMC Emergency, Fire, MAHE Control Room
- National Helplines: Police (100), Fire (101), Ambulance (102), Women's Helpline (181)
- Mental Health: Suicide prevention helplines (Aasra, Spandana)
- Quick Access: Emergency badge indicators and one-click calling
- Laundry Services: Dhobimate with multiple contact numbers
- Printing & Xerox: Om Xerox, Print Shop, Pratham Xerox, FC2 Xerox
- Web Resources: Interactive campus map and weekly mess menu
- Service Locations: Detailed location information for each service
- Global Search: Fuzzy search across all services with βK shortcut
- Responsive Design: Optimized for desktop, tablet, and mobile devices
- Dark/Light Mode: System preference detection with manual toggle
- Glassmorphism UI: Modern glass-effect cards with backdrop blur
- Smooth Animations: Hover effects and smooth scrolling
- Accessibility: Proper ARIA labels and keyboard navigation
- Next.js 15.5.3 with App Router for modern React development
- React 19.1.0 with latest features and optimizations
- TypeScript 5 for type safety and better developer experience
- Tailwind CSS 4 with custom design system
- Radix UI primitives for accessible components
- Lucide React 0.544.0 for consistent iconography
- next-themes 0.4.6 for theme management
- tw-animate-css for smooth animations
- Fuse.js 7.1.0 for fuzzy search functionality
- JSON data files for easy content management
- vCard generation for contact downloads
- Geist Sans for body text
- Geist Mono for code elements
- Instrument Serif for headings
- ESLint with Next.js configuration
- Bun (recommended) or npm/yarn/pnpm for package management
- PostCSS for CSS processing
- Node.js 18+ or Bun runtime
- Git for version control
- Package manager: npm, yarn, pnpm, or bun
- Clone the repository:
git clone https://github.com/aaditagrawal/campus-dining.git
cd campus-dining- Install dependencies:
# Using bun (recommended)
bun install
# Or using npm
npm install
# Or using yarn
yarn install
# Or using pnpm
pnpm install- Start the development server:
# Using bun
bun dev
# Or using npm
npm run dev
# Or using yarn
yarn dev
# Or using pnpm
pnpm dev- Open your browser: Navigate to http://localhost:3000
src/
βββ app/ # Next.js App Router pages
β βββ academics/ # Academic resources page
β β βββ page.tsx # SLCM, Library, Lighthouse, etc.
β βββ emergency/ # Emergency contacts page
β β βββ page.tsx # Campus & national emergency numbers
β βββ hostels/ # Hostels directory page
β β βββ page.tsx # Block-wise warden information
β βββ restaurants/ # Restaurants directory page
β β βββ page.tsx # Food outlets with hours & delivery info
β βββ services/ # General services page
β β βββ page.tsx # Laundry, Xerox, web resources
β βββ travel/ # Travel services page
β β βββ page.tsx # Autos, cabs, and transport
β βββ globals.css # Global styles and design system
β βββ layout.tsx # Root layout with theme provider
β βββ page.tsx # Home page with navigation cards
βββ components/ # Reusable UI components
β βββ ui/ # Radix UI component library
β β βββ badge.tsx # Status badges
β β βββ button.tsx # Interactive buttons
β β βββ card.tsx # Content cards
β β βββ input.tsx # Form inputs
β β βββ label.tsx # Form labels
β β βββ navigation-menu.tsx # Navigation components
β β βββ sheet.tsx # Mobile navigation drawer
β β βββ switch.tsx # Toggle switches
β βββ site-header.tsx # Main navigation with search
β βββ theme-provider.tsx # Dark/light mode provider
βββ data/ # JSON data files
β βββ academics.json # Academic resources and portals
β βββ emergency.json # Emergency contact information
β βββ hostels.json # Hostel blocks and warden details
β βββ restaurants.json # Restaurant information and hours
β βββ services.json # General services (laundry, xerox)
β βββ travel.json # Transportation services
βββ lib/ # Utility functions and helpers
βββ search.ts # Search functionality and data types
βββ utils.ts # General utilities (slugify, cn)
βββ vcard.ts # vCard generation and download
# Using bun
bun run build
# Or using npm
npm run build# Using bun
bun start
# Or using npm
npm startdev- Start development server with hot reloadbuild- Build optimized production bundlestart- Start production serverlint- Run ESLint for code quality checks
The application features a powerful global search system:
- Fuzzy Search: Uses Fuse.js for intelligent search across all content
- Keyboard Shortcut: Press
βK(Mac) orCtrl+K(Windows/Linux) - Real-time Results: Instant search results as you type
- Smart Navigation: Direct links to specific sections and items
- Fallback Suggestions: Shows random items when no query is entered
- Pages: Main navigation sections
- Restaurants: All food outlets and their details
- Hostels: Block information and warden contacts
- Travel: Auto and cab services
- Emergency: All emergency contacts
- Services: Laundry, printing, and web resources
- Academics: Academic portals and resources
- Primary: Dark gray (
oklch(0.205 0 0)) - Secondary: Light gray (
oklch(0.97 0 0)) - Accent Colors: Category-specific colors for different sections
- Emergency: Red accents for emergency services
- Background: Subtle gradient with animated color shifts
- Headings: Instrument Serif for elegant display text
- Body: Geist Sans for optimal readability
- Code: Geist Mono for technical content
- Glass Cards: Semi-transparent cards with backdrop blur
- Responsive Grid: Adaptive layouts for all screen sizes
- Interactive Elements: Hover effects and smooth transitions
- Status Indicators: Color-coded badges for different states
All content is stored in JSON files for easy management and updates:
- Type Safety: Full TypeScript interfaces for all data structures
- Validation: Consistent data format across all categories
- Extensibility: Easy to add new fields or categories
- Version Control: All changes tracked in Git
- Restaurant Hours: Real-time status calculation
- Contact Information: Direct phone and email links
- Location Data: Addresses and service locations
- Service Details: Fees, notes, and additional information
- TypeScript: Strict type checking enabled
- ESLint: Next.js recommended configuration
- Component Structure: Functional components with hooks
- File Naming: kebab-case for files, PascalCase for components
- Image Optimization: Next.js automatic image optimization
- Code Splitting: Automatic route-based code splitting
- Bundle Analysis: Built-in bundle analyzer
- Caching: Optimized caching strategies
We welcome contributions from the MIT Manipal community! Please see our Contributing Guide for detailed information on:
- Data Contributions: Updating restaurant hours, contact information, and service details
- Code Contributions: Bug fixes, feature additions, and improvements
- Content Updates: Adding new services, updating information, and maintaining accuracy
This project is licensed under the MIT License - see the LICENSE file for details.
- Built with: Next.js and React
- UI Components: Radix UI for accessibility
- Icons: Lucide for consistent iconography
- Styling: Tailwind CSS for utility-first design
- Search: Fuse.js for fuzzy search capabilities
- Fonts: Geist and Instrument Serif
For questions, suggestions, or to report issues:
- GitHub Issues: Create an issue
- Pull Requests: Submit a PR
- Community: MIT Manipal student community
Made with β€οΈ for the MIT Manipal community