Skip to content

m-braverman/rosvr-client

Β 
Β 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

11 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Redhat Open Virtual Reality - Client

ROVR(Redhat Open Virtual Reality) enables creating data generated, interactable, AR visualizations πŸ–²πŸ“Š
Build Status

Getting Started

To get started simply clone the repository and run:

yarn install
yarn start-server

and you are up and going!

Installing

We recommend working against the webpack development server by running:

yarn start-server

Note: The development server will watch for changes and hot-reload as required ✨

But if you want to statically build the code for development purposes, you can manually run:

yarn build

which will generate the requested /dist folder

Running the tests

In order to run the tests simply run:

yarn test

Tests Structure

Each component/entity is joined with a \*.test.js file which at least passes a smoke test on it's generation function and additionally verifies custom functionality it performs(component life-cycle functions)

For example, basicEntities.js holds are most basic entities(surprisingly😏)

.
β”œβ”€β”€ basicEntities.js
└── basicEntities.test.js

Thus basicEntities.test.js will hold a test suite for the entire file and sub-suite for each entity

import * as BasicEntities from './basicEntities.js'

describe('Basic Entities Suite', () => {
	describe('scene tests', () => {
		it('scene smoke test', () => {
			expect(BasicEntities.scene()).toBeDefined()
		})
	})
})

Tests Configuration

We are using Karma as our test runner and Jasmine as our test suite and assertion platform. By running yarn test, all *.test.js files will be ran on PhantomJS and results reported to the command-line

yarn test v0.27.5
$ karma start
clean-webpack-plugin: ./dist has been removed.
25 07 2017 23:42:27.026:INFO [karma]: Karma v1.7.0 server started at http://0.0.0.0:9876/
25 07 2017 23:42:27.034:INFO [launcher]: Starting browser PhantomJS

.
PhantomJS 2.1.1 (Mac OS X 0.0.0): Executed 1 of 1 SUCCESS (0.003 secs / 0.002 secs)
Done in 11.46s.

Code Structure

The code is structured such that components and entities are loaded from separate folders as designed by ECS and singularly loaded into the entry-point, procedurally loaded onto the DOM

.
β”œβ”€β”€ src - source files
β”‚Β Β  β”œβ”€β”€ components - A-Frame components
β”‚Β Β  β”œβ”€β”€ entities - A-Frame entities
β”‚Β Β  β”‚Β Β  β”œβ”€β”€ basicEntities.js
β”‚Β Β  β”‚Β Β  └── basicEntities.test.js
β”‚Β Β  β”œβ”€β”€ index.ejs - autogeneration view template
β”‚Β Β  └── index.js - entry point
β”œβ”€β”€ ... README and licences
└── ... configuration files

Deployment

In order to deploy the project to production simply run:

yarn build-production

which will create a /dist folder with uglified, hot-replaced, concated and minified, production-ready project! 🏭

Built With

  • A-Frame - 3D assets visualization
  • AR.js - Augmented reality marker integration
  • LeapJS - LeapMotion controller API
  • Webpack - Module bundler and transpiler
  • Karma - Test runner platform
  • Jasmine - Test suite and assertion engine

Contributing

Please read CONTRIBUTING.md for details on our code of conduct, and the process for submitting pull requests to us.

Versioning

We use SemVer for versioning. Current version is

Authors

License

This project is licensed under the GPL-3.0 License - see the LICENSE.md file for details

About

Redhat Open Virtual Reality - Enabling interacting with data generated 3D content using leap motion controller πŸ–²πŸ“Š

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 100.0%