/VTube

Primary LanguageJavaScript

VTube

CMPE 280 SP18 Team Project Team name: BAM Team members: Matthew Kwong matthew.kwong@sjsu.edu, Akash Gupta akash.gupta@sjsu.edu, Bruce Decker bruce.decker@sjsu.edu

Project Description

Through this project, our team seeks to provide a platform by which users can create, share, and participate in virtual reality experiences, both their own and those of others. At a high level, the project is a web application supporting user authentication, file uploads, creation and viewing of virtual realities (think of it like Youtube, but for VR).

Given the broad description of our application above, we can distill it into several main requirements:

  • Catch users’ interest in VR from the moment they open the application
  • Provide a comfortable user experience, in an intuitive and collaborative environment
  • Make it simple for users to create their own VRs and for them to view others’ VRs

Setup & Run

To run the application, fork and clone the repository, cd into the repository directory, then run the following commands to setup & start the server:

$ mkdir uploads # create directory where user VRs will be stored
$ npm install # install required libraries
$ npm start # start the server on port 3000

Once the server is running, you should be able to access the app at http://localhost:3000.

Architecture

Node.js Web Server

280_server

MySQL Database

280_mysql

MongoDB Database

280_mongo

REST API Endpoints

Verb Route Description
GET / Display landing page
GET /users Display a particular user's profile
GET /users/getUserInfo Get the information for the currently logged-in user (if any)
POST /users/signup Register a new user
POST /users/login Log in an existing user
GET /users/logout Log out a logged-in user
POST /serach Display search page
POST /files/upload Upload a new VR file
POST /files/download Download an existing VR file
GET /files/uservrs Get the VRs for a particular user
POST /files/search Get the files that match a search query keyword
GET /vrs Display a particular VR
GET /vrs/getVrInfo Get the details for a particular VR
GET /vrs/getOtherVrs Get the summary of the 10 most recently uploaded VRs
GET /vr/getComments Get the comments for a particular VR
POST /vr/submitComment Submit a new comment for a particular VR

Application Screenshots

Landing page

screen shot 2018-05-11 at 12 37 22 am

Search results page

screen shot 2018-05-11 at 12 38 17 am

Virtual Reality page

screen shot 2018-05-11 at 12 41 17 am

Virtual Reality Home - My VRs

screen shot 2018-05-11 at 12 41 45 am

Virtual Reality Home - Upload VR

screen shot 2018-05-11 at 12 41 54 am

Virtual Reality Home - Create VR

screen shot 2018-05-11 at 12 42 09 am

Virtual Reality Home - Comment & Like

screen shot 2018-05-11 at 12 42 51 am