Git Product home page Git Product logo

360-viewer's Introduction

360 photo viewer

Setup

This project requires to have JavaScript framework Meteor installed.

Pull 360-images to your local machine to develop with

sh 360-images-download.sh

Start a local Meteor server

Open your terminal and navigate to the project folder and execute this command:

cd app/ && meteor --settings ../settings/dev.json.dist

Setup complete

The application is now available on: http://localhost:3000

Testing

In attempt to keep the project as stable as possible, unit tests should be created/updated when changes to the codebase are made.

The following testing packages are used:

  • practicalmeteor:chai is used for asserting
  • practicalmeteor:sinon is used for creating spies, stubs and mocks
  • practicalmeteor:mocha is used as test driver, it autoloads all tests and has a webinterface to show the testresults

In the near future we would like to automate running the unit tests at every commit.

Tests can be ran with this command:

meteor test --driver-package=practicalmeteor:mocha --port 4000

Test results will be available on http://localhost:4000.

ESLint (code quality)

ESLint is a JavaScript package to run checks over the codebase. In this project the ESLint inspection runs automatically at every git commit.

Install ESLint globally

npm install -g eslint

You can also manually run ESLint inspection with this command:

app/node_modules/.bin/eslint app/client/ app/server/

Directory structure

All code within the app/client folder is only loaded client side, all code within app/server only server side and all code outside these folders is loaded in both.

├ app                   # contains all application code
├── client               
├──── components        # thin layer where template components get binded to Meteor templating
├──── layout            # base layout templates
├──── lib               # template helpers and other supportive code (the lib folder gets loaded before everything else)
├──── pages             # thin layer where page template get binded to Meteor templating
├── collections         # database layer
├──── lib               # helper classes that are used in models
├──── models            # database entity models
├──── schemas           # database schema definition
├── doc
├── imports             # application code in here, doesn't gets autoloaded
├──── client            # client side templates code
├────── components      # client side components
├────── pages           # client side pages
├──── lib
├────── aframeComponents # client side components that hook into the A-frame component system
├────── uploadForm      # upload form component for admin panel
├── node_modules        # npm installs package dependencies in here
├── public              # web assets (models, images etc.)
├── routes              # routing definitions
├── server              # server side code
├──── methods           # server methods that can be called from the client side
├──── publications      # publish database data to the client side with publications to which the client side can subscribe
├──── tests             # for now this holds code that fills the database with mock data

Logging

We implemented both logging for both client and server side exceptions.

When something triggers an exception and logging is enabled in the Meteor settings (like in settings/prod.json.dist), then the exception will be send to Loggly.

Loggly is a log management platform which supports alerts and makes it easy to search through logs.

Built with

Authors

The 360 viewer was initially built as a Vensterworks product.

Copyright and license

Code released under the MIT License.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.