Campus Walker is a full-stack campus navigation platform that combines:
- Visitor onboarding and destination selection
- Role-based admin dashboards (Super Admin, University Admin, Institute Admin)
- Outdoor AR navigation using device sensors + map data
- Indoor navigation management (building points + paths)
- Analytics dashboards for visitor movement and traffic
It is designed for multi-university/multi-institute deployments where each level can manage its own campus data while preserving centralized oversight.
- Key Features
- Tech Stack
- Architecture Overview
- User Roles & Responsibilities
- Project Structure
- Screenshots
- Getting Started (Local Development)
- Environment Variables
- Run, Build, and Deploy
- API Modules (High-Level)
- Operational Notes
- Troubleshooting
- Future Improvements
- License
- Public visitor form (
/) to register/check in. - Destination-based routing support.
- Real-time outdoor AR navigation view with directional arrows and compass cues.
- Outdoor AR scene in
frontend/public/navigation.html. - Map-assisted coordinate selection and visibility toggle.
- Sensor-driven heading updates and navigation state indicators.
- Indoor AR page in
frontend/public/indoor.html. - Institute-level indoor location and path management.
- Building-specific path graph support for route rendering.
- Super Admin: manage universities, admins, system-wide visitors, and global stats.
- University Admin: manage institutes, university visitor data, and location sets.
- Institute Admin: manage locations, routes, and indoor navigation entities.
- Date-wise and entity-wise visitor charts.
- Tabular records with filtering and actions.
- React 18 + Vite
- Tailwind CSS
- React Router
- Chart.js / Recharts
- Leaflet / React-Leaflet
- A-Frame + aframe-ar
- Node.js + Express
- MongoDB + Mongoose
- JWT auth
- Multer + Cloudinary/local uploads
- CORS-enabled REST APIs
[Visitor/Admin Browser]
|
v
[React Frontend + Static AR HTML Pages]
|
v
[Express API Layer]
| | | |
| | | +--> Auth
| | +------> Visitor + Navigation
| +----------> University/Institute/Admin Ops
+--------------> Indoor Navigation Ops
|
v
[MongoDB]
- Frontend app routes are controlled in
frontend/src/App.jsx. - Static AR pages are served from
frontend/public/navigation.htmlandfrontend/public/indoor.html. - Backend API entrypoint is
backend/server.js.
- Create and manage universities.
- Create university/super admins.
- Monitor system-wide visitors and distributions.
- Create and manage institutes under a university.
- Track university-level visitor analytics.
- Manage university scoped location data.
- Add/edit/delete locations.
- Create route/path records between locations.
- Configure indoor navigation (locations + path graph).
- Register via public form.
- Select source/destination.
- Launch AR navigation guidance.
campus-walker/
├── README.md
├── backend/
│ ├── server.js
│ ├── package.json
│ ├── uploads/
│ └── src/
│ ├── config/
│ ├── controllers/
│ ├── middleware/
│ ├── models/
│ ├── routes/
│ └── utils/
└── frontend/
├── package.json
├── public/
│ ├── navigation.html
│ ├── indoor.html
│ └── assets/
└── src/
├── App.jsx
├── pages/
├── components/admin/
└── utils/
You shared strong UI references; below is the recommended placement for a polished README gallery.
How to use this section:
- Create
docs/images/.- Save your provided screenshots with the suggested names below.
- Keep/replace the markdown links as needed.
Great for showing route/location setup workflow.
Best for demonstrating real-world guidance UI.
Use this to explain route authoring for institute admins.
- Node.js 18+
- npm 9+
- MongoDB 6+
- Git
git clone <your-repo-url>
cd campus-walkercd backend
npm install
cp .env.example .env # if you maintain an example fileIf there is no .env.example, create .env manually (see Environment Variables).
Run backend:
npm run devBackend default target: http://localhost:5000
cd ../frontend
npm installCreate .env:
VITE_API_URL=http://localhost:5000/apiRun frontend:
npm run devFrontend default target: http://localhost:5173
PORT=5000
MONGODB_URI=mongodb://localhost:27017/ar_nav_db
JWT_SECRET=replace_with_a_strong_secret
JWT_EXPIRE=30d
NODE_ENV=development
CORS_ORIGINS=http://localhost:5173,http://localhost:3000
BASE_URL=http://localhost:5000
# Optional Cloudinary (if enabled in your deployment)
CLOUDINARY_CLOUD_NAME=
CLOUDINARY_API_KEY=
CLOUDINARY_API_SECRET=VITE_API_URL=http://localhost:5000/apiThe static AR pages may contain explicit API URLs. Verify/update these to match deployment:
frontend/public/navigation.htmlfrontend/public/indoor.html
Backend:
cd backend
npm run devFrontend:
cd frontend
npm run devcd frontend
npm run build
npm run previewcd backend
npm start- MongoDB connection is reachable from server runtime.
-
CORS_ORIGINSincludes your frontend domain. -
VITE_API_URLpoints to deployed backend/api. -
navigation.htmlandindoor.htmlAPI references are updated. - Upload directories or cloud media storage are configured.
Based on route mounting in backend server:
/api/auth— authentication/api/super-admin— super admin operations/api/university— university-level operations/api/institute— institute-level operations/api/visitors— visitor intake and management/api/public/universities— public university listing/api/navigation— outdoor navigation endpoints/api/indoor— indoor navigation endpoints
- Uploaded media is served via
/uploadsin backend runtime. - Admin dashboard access is route-protected using role-based checks.
- For accurate AR navigation on mobile devices, ensure:
- Location permissions are granted
- Compass/motion access is enabled
- HTTPS is used in production (recommended/required for sensor APIs on many devices)
- Verify backend is running on the expected port.
- Check
VITE_API_URLvalue. - Ensure backend CORS includes frontend origin.
- Confirm location + motion permissions on device.
- Test outdoors for stronger GPS signal.
- Verify destination coordinates are valid.
- Check seeded/created admin data by role.
- Inspect browser network panel for 401/403/500 responses.
- Validate JWT token presence and expiration.
- Add Docker Compose for one-command local startup.
- Add API schema docs (OpenAPI/Swagger).
- Add seed scripts for demo data.
- Add automated tests (backend unit/integration + frontend component tests).
- Add CI pipeline (lint, build, tests).
Add your project license here (MIT/Apache-2.0/Proprietary).

