Skip to content

KabbalahTreeofLife/U-Nav

Repository files navigation

🧭 U-Nav — University Navigate

Campus navigation application for universities.

TypeScript React Vite Express PostgreSQL


📖 Introduction

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.


✨ Features

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

🛠️ Tech Stack

  • Frontend: React 19 + TypeScript + Vite
  • 3D Graphics: React Three Fiber + Three.js
  • Backend: Express.js + TypeScript
  • Database: Supabase (PostgreSQL)

📋 Prerequisites

  • Node.js (v18 or higher)
  • Supabase account (free at supabase.com)
  • npm or yarn

🚀 Setup

1. Clone the Repository

git clone <repository-url>
cd U-Nav

2. Install Dependencies

# Install all dependencies (root, backend, and frontend)
npm run install-all

Or install each part manually:

# Install backend dependencies
cd Backend && npm install

# Install frontend dependencies  
cd ../WebDev && npm install

3. Database Setup (Supabase)

  1. Create a project at supabase.com
  2. Go to Settings → Database to find your connection string
  3. Copy the example environment file:
    cp Backend/.env.example Backend/.env
  4. Edit Backend/.env with 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

4. Initialize the Database

Using Supabase SQL Editor (Recommended)

  1. Go to your Supabase project dashboard
  2. Navigate to SQL Editor in the left sidebar
  3. Click New query
  4. Copy and paste the contents of Database/schema.sql into the editor
  5. 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.sql

▶️ Running the Application

Option 1: Run Both (Backend + Frontend)

npm run dev

This runs both the backend and frontend concurrently:

Option 2: Run Individually

# Terminal 1: Backend only
npm run dev:backend

# Terminal 2: Frontend only
npm run dev:frontend

🔑 Default User Roles

After running the schema, you can:

  1. Sign up with a university email address
  2. Contact an admin to promote your account to admin role via the admin panel

📁 Project Structure

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

👥 Team

  • Xanth Reign Palmes — Team Leader
  • Daniel Koen Parcon
  • Marc Francis Billiones
  • Marco Daniel Castillo
  • Seth Dofeliz

📝 License

This project is for educational purposes.

About

Group 3 - Introduction to Engineering Design Project

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages