A comprehensive virtual reality educational platform featuring interactive 360° panoramas, mini-games, and user management system.
- Node.js (v14 or higher): Download Node.js
- npm (comes with Node.js) or Yarn
- MongoDB (local or cloud): Download MongoDB Community Server
- MongoDB Compass (optional, for GUI): Download MongoDB Compass
-
Clone the repository
git clone <repository-url> cd gameVR
-
Install dependencies for both servers
# Install app dependencies cd app npm install # Install pano-server dependencies cd ../pano-server npm install
-
Set up MongoDB
- Start your MongoDB server locally (default:
mongodb://localhost:27017
) - Or use MongoDB Atlas for a cloud database.
- Use MongoDB Compass to visually manage your database (connect to
mongodb://localhost:27017
).
- Start your MongoDB server locally (default:
-
Configure the app to use MongoDB
- Edit
app/src/config/db/index.js
if you need to change the connection string. - Default is usually:
const mongoose = require('mongoose'); mongoose.connect('mongodb://localhost:27017/gamevr', { useNewUrlParser: true, useUnifiedTopology: true });
- Edit
Open two terminals:
Terminal 1: Start the main app (backend/frontend)
cd app
npm start
# App runs at http://localhost:3000
Terminal 2: Start the panorama server
cd pano-server
npm start
# Panorama viewer runs at http://localhost:8080
gameVR/
├── app/ # Main web app (Node.js/Express, Handlebars, MongoDB)
│ ├── src/
│ │ ├── app/ # Controllers and models
│ │ ├── config/ # Database config
│ │ ├── routes/ # Express routes
│ │ ├── resources/ # Views (Handlebars) and CSS
│ │ └── util/ # Utility functions
│ ├── public/ # Static files (images, games)
│ └── Database/ # JSON data (legacy or seed)
└── pano-server/ # Panorama viewer server (Node.js/Express)
├── public/ # Panorama assets, tiles, index.html
└── src/ # Server code