A unified campus solution with role-based access (Student, Teacher, Canteen, Admin-ready) in a dark black/orange theme.
- Timetable Management
- Days vertically, time slots horizontally
- Break slots highlighted and labeled
- Responsive grid with sticky headers
- Food Ordering
- Category chips, search, filter
- Food cards: veg/spicy badges, rating, price, prep time
- Actions: Order Now, Schedule
- Recent orders section
- Event Discovery
- Event cards with category badges, date/time/location/organizer
- Stats (upcoming count, participants, categories)
- Register action
- Resource Booking (scaffold-ready)
- Library and seminar hall routes reserved
- Campus Map (scaffold-ready)
- Route reserved for voice-based assistance
- Attendance (view-only scaffold-ready)
- Internship/Jobs (scaffold-ready)
- Dashboard
- Quick links to primary tools: Timetable, Attendance, Food
- Profile dropdown with initials, name, role, logout
- Timetable
- Same grid as Student with break slots
- Attendance Management
- Date picker and section selector
- Mark all present/clear
- Per-student Present/Absent toggle
- Save action
- Food Ordering
- Same UI/UX as Student (categories, search/filter, rich cards)
- Registration captures business and operations data
- Planned modules
- Stock management
- Orders (current/completed/history)
- Queue and scheduled orders
- Events CRUD and publish
- Internship/job posts CRUD
- Approvals for teachers and canteen
- Login (Student, Teacher):
POST /api/login- Request:
{ email, password, role } - Response:
{ id, name, email, role, avatarInitials }
- Request:
- Signup:
POST /api/signup/{student|teacher|canteen} - Passwords hashed with bcrypt
- Client session stored in
localStorage:isLoggedIn,userRole,currentUser - User dropdown (
components/user-menu.tsx)- Shows initials-based avatar, name, role
- Logout clears local storage and redirects to
/
- Global dark theme with orange accents
- Consistent button/card styles via
components/ui/* - Sidebars
StudentSidebarandTeacherSidebarwith active route state
- Timetable grid
- Sticky first column and header row
- Horizontal scroll for many time slots
- Accessibility
- High-contrast labels and focus outlines
- Student: core profile, academics, guardians, interests, skills,
avatarInitials - Teacher: core profile, professional details, subjects, specializations,
avatarInitials - Canteen: business, cuisines, operating hours, banking,
avatarInitials
- Student:
/student/dashboard,/student/timetable,/student/food,/student/events,/student/resources,/student/map,/student/attendance,/student/internships - Teacher:
/teacher/dashboard,/teacher/timetable,/teacher/food,/teacher/attendance-management - API:
/api/login,/api/signup/student,/api/signup/teacher,/api/signup/canteen
- Set
MONGODB_URIin.env.local npm ithennpm run dev
- Admin panel: Events and internships management
- Resource booking: Library and seminar hall flows
- Campus navigation with voice assistance
- Razorpay integration for payments
- Canteen stock, queues, scheduled pickups
- API 500: check
MONGODB_URIand Atlas IP access - Login failure: ensure user exists for chosen role
- CSS glitches: restart dev server to refresh Tailwind JIT