Campus navigation application for universities.
U-Nav is a campus navigation application that helps students and visitors navigate university campuses efficiently. It features interactive maps, dining guides, event listings, and real-time crowd tracking.
| Feature | Description |
|---|---|
| 🗺️ Campus Map | Interactive 3D/2D map with building navigation |
| 🎯 Pathfinding | Intelligent navigation using simple pathfinding to avoid obstacles |
| 🎥 Smart Camera | Auto-centering on user with restricted world boundaries |
| 🔥 Heat Map | Toggle overlay showing crowd density |
| 📅 Events | Browse university events by category, date, and location |
| 🍽️ Dining Guide | Discover campus restaurants, cafes, and eateries |
| 🔐 Authentication | Secure login/signup with university email validation |
| 👥 User Roles | Support for users, guests, and administrators |
- Frontend: React 19 + TypeScript + Vite
- 3D Graphics: React Three Fiber + Three.js
- Backend: Express.js + TypeScript
- Database: Supabase (PostgreSQL)
- Node.js (v18 or higher)
- Supabase account (free at supabase.com)
- npm or yarn
git clone <repository-url>
cd U-Nav# Install all dependencies (root, backend, and frontend)
npm run install-allOr install each part manually:
# Install backend dependencies
cd Backend && npm install
# Install frontend dependencies
cd ../WebDev && npm install- Create a project at supabase.com
- Go to Settings → Database to find your connection string
- Copy the example environment file:
cp Backend/.env.example Backend/.env
- Edit
Backend/.envwith your Supabase credentials:PORT=3000 DB_HOST=your-host.supabase.co DB_PORT=5432 DB_NAME=postgres DB_USER=postgres.your-project-ref DB_PASSWORD=your_supabase_password DB_SSL=true
- Go to your Supabase project dashboard
- Navigate to SQL Editor in the left sidebar
- Click New query
- Copy and paste the contents of
Database/schema.sqlinto the editor - Click Run to execute the schema
Or use the Supabase CLI:
# Install Supabase CLI
npm install -g supabase
# Run the schema
supabase db execute --file Database/schema.sqlnpm run devThis runs both the backend and frontend concurrently:
- Backend: http://localhost:3000
- Frontend: http://localhost:5173
# Terminal 1: Backend only
npm run dev:backend
# Terminal 2: Frontend only
npm run dev:frontendAfter running the schema, you can:
- Sign up with a university email address
- Contact an admin to promote your account to admin role via the admin panel
U-Nav/
├── Backend/ # Express.js API server
│ ├── src/
│ │ ├── index.ts # Server entry point
│ │ ├── config/ # Database configuration
│ │ └── routes/ # API routes
│ ├── .env.example # Environment variables template
│ └── package.json
│
├── WebDev/ # React frontend
│ ├── src/
│ │ ├── api/ # API service layer (auth, universities)
│ │ ├── common/ # Reusable components, hooks, and context
│ │ ├── login-signup/ # Auth views and validation logic
│ │ ├── map/ # 2D & 3D Map implementation
│ │ │ ├── 2d/ # 2D Map views
│ │ │ └── 3d/ # 3D Scene, simple pathfinding engine, and camera controls
│ │ ├── dining/ # Dining guide module
│ │ ├── about/ # About & University info
│ │ ├── admin/ # Admin control panel
│ │ └── css/ # Feature-based stylesheets
│ └── package.json
│
├── Database/ # SQL schema
│ └── schema.sql
│
└── README.md
- Xanth Reign Palmes — Team Leader
- Daniel Koen Parcon
- Marc Francis Billiones
- Marco Daniel Castillo
- Seth Dofeliz
This project is for educational purposes.