IIITB Compass is a general utilities platform made by and for IIITB students. It brings together essential utilities like:
- Academic Calendar
- Cab Sharing (generally used for airport)
- Lost & Found items
- Mess Menu & Specific dish Ratings and comments
All into one sleek and modern dashboard.
-
Calendar
- Stay updated on academic and event schedules.
- View upcoming holidays, exams, and institute events.
-
CabShare
- Find peers leaving for or arriving from the airport at the same time.
- Coordinate rides and split cab fares.
-
Lost & Found
- Report items you've lost or found in the campus.
- View reports by others and reconnect people with their belongings.
-
Menu & Food Ratings
- Check the daily mess menu.
- Rate meals and view peer ratings for food quality and variety.
-
Unique Profiles for students via Github login
- Each user has a unique profile and contact field
- Makes it easier to find contacts for cabsharing and lost&found
-
Dark/Light mode switching capabilities
- Can switch between dark and light mode
- A system default option also exists
-
/auth: Authentication page allowing users to log in via GitHub. Upon successful login, users are redirected to the dashboard. -
/dashboard: The central hub where users can access all features: CabShare, Calendar, Lost & Found, Menu, Profile and Contact Us. -
/calendar: Displays academic and campus events. Pulled from a pre-fed calendar source (Unipage calendar 2025), admins can fill extra events. -
/cabshare: Users can view and post cab-sharing opportunities based on time and destination. -
/lostfound: Submit details of lost or found items. Users can filter and search by date, category, or location. -
/foodmenu: Shows the current week's mess menu. Users can rate meals and read aggregated ratings by others. -
/profile: Users can view and update their account information. -
/contact: Page with links to linkedin profiles of all members involved.
client/
├── app/ # App routes and main layout
├── components/ # Reusable UI components
├── forms/ # Form components for each page
├── lib/ # Utility functions
├── prisma/ # Prisma schema and DB config
├── public/ # Static files (images, icons)
├── types/ # TypeScript type declarations
├── scripts/ # Local development scripts
├── .env # Environment variables
├── auth.ts # Authentication setup
├── next.config.ts # Next.js configuration
├── postcss.config.mjs # PostCSS setup for TailwindCSS
├── package.json # Project dependencies
├── tsconfig.json # TypeScript config
└── README.md # Project documentation
- Next.js – App router + full-stack routes
- TypeScript – Safety and clarity
- Tailwind CSS – Modern styling
- shadcn/ui – Accessible component library
- NextAuth.js – Auth via GitHub OAuth
- Prisma – Type-safe database ORM
- PostgreSQL – Backend DB
- Node.js 18+
- A PostgreSQL DB (or use SQLite for testing)
- Clone the repo:
git clone https://github.com/Invito101/iiitb-compass.git
cd iiitb-compass/client- Install dependencies:
npm install --forceIt is important to use --force here
- Configure Environment Variables
In the .env file inside the repo, make sure to properly configure the following values:
AUTH_GITHUB_ID=***
AUTH_GITHUB_SECRET=***Follow these guides to set up GitHub OAuth and integrate Auth.js with Prisma:
AUTH_SECRET=***- Generate a random string and paste it here.
You can use this tool or any method you like to generate one.
NEXTAUTH_URL=http://localhost:3000- Set this to the URL where your dev server runs, usually
http://localhost:3000during local development.
DATABASE_URL=***To get your database URL:
- Sign up at neon.tech
- Follow the links below to connect your Neon database, and get your :
https://neon.tech/docs/get-started-with-neon/signing-up https://neon.tech/docs/get-started-with-neon/connect-neon
And add your database URL to the variable
- Generate Prisma client:
npx prisma generate- Run the dev server:
npm run devThen go to http://localhost:3000/auth and sign up with github to begin.
Project built and maintained by IIITB students. Built with 💜 for campus life.