├── .gitignore ├── LICENSE ├── Procfile ├── README.md ├── app.js ├── gruntfile.js ├── package.json ├── public ├── css │ └── style.css ├── fonts │ ├── icomoon.eot │ ├── icomoon.svg │ ├── icomoon.ttf │ └── icomoon.woff ├── img │ ├── add-channel.svg │ ├── chevron.svg │ ├── discussion.svg │ ├── graph-title.png │ ├── graph-title.svg │ ├── graph_1.png │ ├── graph_1.svg │ ├── graph_2.svg │ ├── loading.svg │ ├── prof-1.png │ ├── share.svg │ ├── upload.svg │ └── x.svg ├── javascripts │ ├── .gitignore │ ├── app.js │ ├── controllers │ │ ├── DataSetController.js │ │ ├── DiscussController.js │ │ ├── DiscussPointController.js │ │ ├── NavController.js │ │ ├── NavigatorController.js │ │ ├── ShareController.js │ │ ├── SidebarController.js │ │ ├── ToolController.js │ │ ├── UploadController.js │ │ └── ViewController.js │ ├── directives.js │ └── services │ │ ├── DataSets.js │ │ ├── Observations.js │ │ └── Sources.js ├── partials │ ├── nav.html │ ├── observation.html │ ├── share.html │ ├── tool.html │ └── upload.html └── templates │ ├── data_set.html │ ├── data_sets.html │ ├── discuss.html │ ├── navigator.html │ └── views.html ├── routes ├── api │ └── v1 │ │ └── journey.js └── index.js ├── sass ├── _base.scss ├── _config.scss ├── app.scss ├── global │ ├── _layout.scss │ ├── _mixins.scss │ └── _states.scss ├── lib │ ├── bourbon │ │ ├── _bourbon.scss │ │ ├── addons │ │ │ ├── _button.scss │ │ │ ├── _clearfix.scss │ │ │ ├── _font-family.scss │ │ │ ├── _hide-text.scss │ │ │ ├── _html5-input-types.scss │ │ │ ├── _position.scss │ │ │ ├── _prefixer.scss │ │ │ ├── _retina-image.scss │ │ │ ├── _size.scss │ │ │ ├── _timing-functions.scss │ │ │ └── _triangle.scss │ │ ├── css3 │ │ │ ├── _animation.scss │ │ │ ├── _appearance.scss │ │ │ ├── _backface-visibility.scss │ │ │ ├── _background-image.scss │ │ │ ├── _background.scss │ │ │ ├── _border-image.scss │ │ │ ├── _border-radius.scss │ │ │ ├── _box-sizing.scss │ │ │ ├── _columns.scss │ │ │ ├── _flex-box.scss │ │ │ ├── _font-face.scss │ │ │ ├── _hidpi-media-query.scss │ │ │ ├── _image-rendering.scss │ │ │ ├── _inline-block.scss │ │ │ ├── _keyframes.scss │ │ │ ├── _linear-gradient.scss │ │ │ ├── _perspective.scss │ │ │ ├── _placeholder.scss │ │ │ ├── _radial-gradient.scss │ │ │ ├── _transform.scss │ │ │ ├── _transition.scss │ │ │ └── _user-select.scss │ │ ├── functions │ │ │ ├── _compact.scss │ │ │ ├── _flex-grid.scss │ │ │ ├── _grid-width.scss │ │ │ ├── _linear-gradient.scss │ │ │ ├── _modular-scale.scss │ │ │ ├── _px-to-em.scss │ │ │ ├── _radial-gradient.scss │ │ │ ├── _tint-shade.scss │ │ │ └── _transition-property-name.scss │ │ ├── helpers │ │ │ ├── _deprecated-webkit-gradient.scss │ │ │ ├── _gradient-positions-parser.scss │ │ │ ├── _linear-positions-parser.scss │ │ │ ├── _radial-arg-parser.scss │ │ │ ├── _radial-positions-parser.scss │ │ │ ├── _render-gradients.scss │ │ │ └── _shape-size-stripper.scss │ │ └── readme.md │ └── neat │ │ ├── _neat-helpers.scss │ │ ├── _neat.scss │ │ ├── functions │ │ ├── _new-breakpoint.scss │ │ └── _private.scss │ │ ├── grid │ │ ├── _fill-parent.scss │ │ ├── _grid.scss │ │ ├── _media.scss │ │ ├── _omega.scss │ │ ├── _outer-container.scss │ │ ├── _pad.scss │ │ ├── _private.scss │ │ ├── _reset.scss │ │ ├── _row.scss │ │ ├── _shift.scss │ │ ├── _span-columns.scss │ │ ├── _to-deprecate.scss │ │ └── _visual-grid.scss │ │ └── settings │ │ ├── _grid.scss │ │ └── _visual-grid.scss ├── modules │ ├── _batch.scss │ ├── _batches.scss │ ├── _channel.scss │ ├── _data-sets.scss │ ├── _discuss.scss │ ├── _discussion.scss │ ├── _main.scss │ ├── _nav.scss │ ├── _navigator.scss │ ├── _observation.scss │ ├── _share.scss │ ├── _source.scss │ ├── _tools.scss │ ├── _upload.scss │ └── _views.scss └── patterns │ ├── _animations.scss │ ├── _batch.scss │ ├── _channel.scss │ ├── _formatting.scss │ ├── _gradients.scss │ ├── _icons.scss │ ├── _input.scss │ ├── _layout.scss │ ├── _modals.scss │ ├── _nav.scss │ ├── _navigator.scss │ ├── _overlay.scss │ ├── _transitions.scss │ └── _typography.scss └── views └── index.html /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | .DS_Store 3 | npm-debug.log 4 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) [year] [fullname] 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /Procfile: -------------------------------------------------------------------------------- 1 | web: node app.js -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Sciview Prototype 2 | 3 | You can read the story about this project [here](https://medium.com/@thomasdrach/i-thought-i-was-designing-for-spacex-i-was-actually-designing-for-the-silk-road-4b4b64834868#.795zenezg), and see a live demo [here](http://sciview.herokuapp.com). 4 | 5 | ``` 6 | DISCLAIMER 7 | 8 | This code is very old! It does not follow best practices! Packages are not up to date! Sorry! 9 | ``` 10 | 11 | ## Up and running 12 | ``` 13 | $ npm install 14 | $ npm start 15 | ``` 16 | 17 | ### To Build Sass 18 | Running `grunt watch` will watch the `/sass` directory for changes and update the `public/css/style.css` based on changes. 19 | -------------------------------------------------------------------------------- /app.js: -------------------------------------------------------------------------------- 1 | var express = require('express') 2 | , routes = require('./routes') 3 | , http = require('http') 4 | , request = require('request') 5 | , cons = require('consolidate') 6 | , path = require('path'); 7 | 8 | var app = express(); 9 | 10 | app.configure(function(){ 11 | app.set('port', process.env.PORT || 5000); 12 | app.set('views', __dirname + '/views'); 13 | app.set('view engine', 'html'); 14 | app.use(express.favicon()); 15 | app.use(express.logger('dev')); 16 | app.use(express.bodyParser()); 17 | app.use(express.cookieParser()); 18 | app.use(express.methodOverride()); 19 | app.use(app.router); 20 | app.engine('html', cons.swig); 21 | app.use(express.static(path.join(__dirname, 'public'))); 22 | app.use(express.urlencoded()); 23 | app.use(express.json); 24 | app.locals.cache = "memory" 25 | }); 26 | 27 | app.configure('development', function(){ 28 | app.use(express.errorHandler()); 29 | }); 30 | 31 | app.get('/', routes.index); 32 | 33 | var server = http.createServer(app).listen(process.env.PORT || app.get('port'), function(){ 34 | console.log("Express server listening on port " + app.get('port')); 35 | }); 36 | -------------------------------------------------------------------------------- /gruntfile.js: -------------------------------------------------------------------------------- 1 | module.exports = function(grunt) { 2 | grunt.initConfig ({ 3 | sass: { 4 | dist: { 5 | files: { 6 | 'public/css/style.css' : 'sass/app.scss' 7 | } 8 | } 9 | }, 10 | 11 | watch: { 12 | source: { 13 | files: ['sass/**/*.scss'], 14 | tasks: ['sass'], 15 | options: { 16 | livereload: true, 17 | } 18 | } 19 | } 20 | }); 21 | grunt.loadNpmTasks('grunt-contrib-watch'); 22 | grunt.loadNpmTasks('grunt-sass'); 23 | grunt.registerTask('default', ['sass']); 24 | }; 25 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "application-name", 3 | "version": "0.0.1", 4 | "private": true, 5 | "scripts": { 6 | "start": "node app" 7 | }, 8 | "dependencies": { 9 | "bcrypt": "0.7.7", 10 | "express": "3.0.0rc4", 11 | "express-jwt": "0.2.0", 12 | "http": "*", 13 | "request": "2.34.0", 14 | "swig": "1.3.2", 15 | "consolidate": "0.10.0", 16 | "passport": "0.2.0", 17 | "passport-local": "1.0.0", 18 | "path": "0.4.9", 19 | "jsonwebtoken": "0.2.0", 20 | "mongoose": "~3.8.8", 21 | "validator": "3.5.1" 22 | }, 23 | "devDependencies": { 24 | "bcrypt": "~0.7.7", 25 | "connect-mongodb": "~1.1.5", 26 | "consolidate": "0.10.0", 27 | "express-jwt": "~0.2.0", 28 | "grunt": "~0.4.2", 29 | "grunt-contrib-watch": "~0.5.3", 30 | "grunt-sass": "~0.10.0", 31 | "jsonwebtoken": "~0.2.0", 32 | "node-sass": "^4.0.0", 33 | "passport": "0.2.0", 34 | "passport-local": "~1.0.0", 35 | "swig": "~1.3.2", 36 | "validator": "~3.5.1" 37 | }, 38 | "engines": { 39 | "node": "0.10.22" 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /public/fonts/icomoon.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tdrach/Sciview/718680685981899a17b58fbe7de12584c24097c2/public/fonts/icomoon.eot -------------------------------------------------------------------------------- /public/fonts/icomoon.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Generated by IcoMoon 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /public/fonts/icomoon.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tdrach/Sciview/718680685981899a17b58fbe7de12584c24097c2/public/fonts/icomoon.ttf -------------------------------------------------------------------------------- /public/fonts/icomoon.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tdrach/Sciview/718680685981899a17b58fbe7de12584c24097c2/public/fonts/icomoon.woff -------------------------------------------------------------------------------- /public/img/add-channel.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Rectangle 84 + + 2 5 | Created with Sketch. 6 | 7 | 8 | 9 | 10 | 11 | + 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /public/img/chevron.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Triangle 4 5 | Created with Sketch. 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /public/img/discussion.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Oval 4 5 | Created with Sketch. 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /public/img/graph-title.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tdrach/Sciview/718680685981899a17b58fbe7de12584c24097c2/public/img/graph-title.png -------------------------------------------------------------------------------- /public/img/graph-title.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Path 326 5 | Created with Sketch. 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /public/img/graph_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tdrach/Sciview/718680685981899a17b58fbe7de12584c24097c2/public/img/graph_1.png -------------------------------------------------------------------------------- /public/img/graph_1.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Path-130 + Path-127 5 | Created with Sketch. 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /public/img/graph_2.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Group 5 | Created with Sketch. 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /public/img/loading.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /public/img/prof-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tdrach/Sciview/718680685981899a17b58fbe7de12584c24097c2/public/img/prof-1.png -------------------------------------------------------------------------------- /public/img/share.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Rectangle 9 5 | Created with Sketch. 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /public/img/upload.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Rectangle 3 5 | Created with Sketch. 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /public/img/x.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Rectangle 25 5 | Created with Sketch. 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /public/javascripts/.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | -------------------------------------------------------------------------------- /public/javascripts/app.js: -------------------------------------------------------------------------------- 1 | var app = angular.module('app', [ 2 | 'ngAnimate', 3 | 'ngCookies', 4 | 'ngRoute', 5 | 'ui.router' 6 | ]).config(function($routeProvider, $locationProvider, $httpProvider, $stateProvider, $urlRouterProvider) { 7 | 8 | $urlRouterProvider.otherwise('/data-sets/0'); 9 | $urlRouterProvider.when('/data-sets', '/data-sets/0'); 10 | 11 | $stateProvider 12 | .state('data-sets', { 13 | url: '/data-sets', 14 | templateUrl: '/templates/data_sets.html', 15 | controller: 'DataSetController' 16 | }) 17 | .state('data-sets.single', { 18 | url: '/:dataSetId', 19 | templateUrl: '/templates/data_set.html', 20 | controller: 'DataSetController' 21 | }) 22 | .state('data-sets.single.discuss', { 23 | url: '/discuss', 24 | templateUrl: '/templates/discuss.html', 25 | controller: 'DiscussController' 26 | }) 27 | .state('data-sets.single.discuss.point', { 28 | url: '/:dataPoint', 29 | templateUrl: '/partials/observation.html', 30 | controller: 'DiscussPointController' 31 | }) 32 | .state('data-sets.single.share', { 33 | url: '/share', 34 | templateUrl: '/partials/share.html', 35 | controller: 'ShareController' 36 | }) 37 | .state('navigator', { 38 | url: '/navigator', 39 | templateUrl: '/templates/navigator.html', 40 | controller: 'NavigatorController' 41 | }) 42 | .state('navigator.upload', { 43 | url: '/upload', 44 | templateUrl: '/partials/upload.html', 45 | controller: 'UploadController' 46 | }) 47 | ; 48 | 49 | }); -------------------------------------------------------------------------------- /public/javascripts/controllers/DataSetController.js: -------------------------------------------------------------------------------- 1 | app.controller('DataSetController', [ 2 | '$scope', 3 | '$rootScope', 4 | '$location', 5 | '$stateParams', 6 | '$state', 7 | 'DataSets', 8 | 'Observations', 9 | function($scope, $rootScope, $location, $stateParams, $state, DataSets, Observations) { 10 | 11 | // Get all Data Sets 12 | $scope.data_sets = DataSets.getDataSets(); 13 | // Set current Data Set 14 | $scope.current_data_set = $scope.data_sets[$stateParams.dataSetId]; 15 | // Get list of data points (for over chart) 16 | // $scope.data_points = Observations.getDataPoints($stateParams.dataSetId); 17 | // Make $state available in $scope 18 | $scope.$state = $state; 19 | 20 | // Default state for adding new meta tag 21 | $scope.meta = {}; 22 | 23 | // Expand and retract group channels 24 | $scope.toggleGroup = function(channel) { 25 | toggleExpandRetract(channel); 26 | }; 27 | 28 | $scope.toggleChannel = function(channel) { 29 | toggleExpandRetract(channel); 30 | }; 31 | 32 | // $scope.addNewMeta = function(channel) { 33 | // // $scope.meta_add = ""; 34 | // }; 35 | 36 | $scope.saveMetaChannel = function(channel, content) { 37 | channel.meta.push(content); 38 | } 39 | 40 | // Function to change state of expanded or retracted object 41 | var toggleExpandRetract = function(obj) { 42 | if(obj.state === "retracted") 43 | obj.state = "expanded"; 44 | else 45 | obj.state = "retracted"; 46 | }; 47 | } 48 | 49 | ]); -------------------------------------------------------------------------------- /public/javascripts/controllers/DiscussController.js: -------------------------------------------------------------------------------- 1 | app.controller('DiscussController', [ 2 | '$scope', 3 | '$rootScope', 4 | '$location', 5 | '$state', 6 | '$stateParams', 7 | 'Observations', 8 | function($scope, $rootScope, $location, $state, $stateParams, Observations) { 9 | $scope.$state = $state; 10 | $scope.observations = Observations.getObservations(); 11 | console.log($stateParams); 12 | 13 | $scope.new_obvs = $scope.observations[0]; 14 | 15 | } 16 | ]); 17 | -------------------------------------------------------------------------------- /public/javascripts/controllers/DiscussPointController.js: -------------------------------------------------------------------------------- 1 | app.controller('DiscussPointController', [ 2 | '$scope', 3 | '$rootScope', 4 | '$location', 5 | '$state', 6 | '$stateParams', 7 | 'Observations', 8 | function($scope, $rootScope, $location, $state, $stateParams, Observations) { 9 | $scope.$state = $state; 10 | // $scope.observations = Observations.getObservations(); 11 | // console.log($stateParams); 12 | console.log("DiscussPointController"); 13 | } 14 | ]); 15 | -------------------------------------------------------------------------------- /public/javascripts/controllers/NavController.js: -------------------------------------------------------------------------------- 1 | app.controller('NavController', [ 2 | '$scope', 3 | '$rootScope', 4 | '$location', 5 | '$state', 6 | function($scope, $rootScope, $location, $state) { 7 | $scope.$state = $state; 8 | } 9 | ]); 10 | -------------------------------------------------------------------------------- /public/javascripts/controllers/NavigatorController.js: -------------------------------------------------------------------------------- 1 | app.controller('NavigatorController', [ 2 | '$scope', 3 | '$rootScope', 4 | '$location', 5 | 'Sources', 6 | function($scope, $rootScope, $location, Sources) { 7 | 8 | $scope.sources = Sources.getDataSources(); 9 | 10 | $scope.navigator = { 11 | search_query: "" 12 | }; 13 | 14 | } 15 | ]); 16 | -------------------------------------------------------------------------------- /public/javascripts/controllers/ShareController.js: -------------------------------------------------------------------------------- 1 | app.controller('ShareController', [ 2 | '$scope', 3 | '$rootScope', 4 | '$location', 5 | '$state', 6 | function($scope, $rootScope, $location, $state) { 7 | // $scope.$state = $state; 8 | $scope.share = { 9 | link: "app.sciview.com/3fj309kd39" 10 | }; 11 | } 12 | ]); 13 | -------------------------------------------------------------------------------- /public/javascripts/controllers/SidebarController.js: -------------------------------------------------------------------------------- 1 | app.controller('SidebarController', [ 2 | '$scope', 3 | '$rootScope', 4 | '$location', 5 | function($scope, $rootScope, $location) { 6 | 7 | } 8 | ]); 9 | -------------------------------------------------------------------------------- /public/javascripts/controllers/ToolController.js: -------------------------------------------------------------------------------- 1 | app.controller('ToolController', [ 2 | '$scope', 3 | '$rootScope', 4 | '$location', 5 | function($scope, $rootScope, $location) { 6 | $scope.channel = { 7 | title: 'oil-pressure_3a', 8 | category: 'thrusters', 9 | value: '321', 10 | unit: 'psi' 11 | }; 12 | 13 | $scope.data_set = { 14 | time: '00:20:38:12', 15 | unit: 'seconds' 16 | }; 17 | } 18 | ]); 19 | -------------------------------------------------------------------------------- /public/javascripts/controllers/UploadController.js: -------------------------------------------------------------------------------- 1 | app.controller('UploadController', [ 2 | '$scope', 3 | '$rootScope', 4 | '$location', 5 | '$timeout', 6 | function($scope, $rootScope, $location, $timeout) { 7 | 8 | $scope.uploads = []; 9 | var index = 0; 10 | 11 | var upload_items = [ 12 | { 13 | name: "LAUNCH_FILE_3s", 14 | status: { 15 | upload: false 16 | } 17 | }, 18 | { 19 | name: "TEST_LAUNCH", 20 | status: { 21 | upload: false 22 | } 23 | }, 24 | { 25 | name: "TEST_3", 26 | status: { 27 | upload: false 28 | } 29 | } 30 | ]; 31 | 32 | 33 | $scope.choseFile = function() { 34 | $scope.uploads.push(upload_items[index]); 35 | index++; 36 | }; 37 | 38 | $scope.uploadItem = function(item) { 39 | item.status.upload = true; 40 | }; 41 | 42 | $scope.stopUpload = function(item) { 43 | $scope.uploads.splice(item, 1); 44 | } 45 | 46 | } 47 | ]); 48 | -------------------------------------------------------------------------------- /public/javascripts/controllers/ViewController.js: -------------------------------------------------------------------------------- 1 | app.controller('ViewController', [ 2 | '$scope', 3 | '$rootScope', 4 | '$location', 5 | function($scope, $rootScope, $location) { 6 | 7 | } 8 | ]); 9 | -------------------------------------------------------------------------------- /public/javascripts/directives.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tdrach/Sciview/718680685981899a17b58fbe7de12584c24097c2/public/javascripts/directives.js -------------------------------------------------------------------------------- /public/javascripts/services/DataSets.js: -------------------------------------------------------------------------------- 1 | app.service('DataSets', function($http, $cookieStore, $state) { 2 | var DataSets = {}; 3 | 4 | DataSets.getDataSets = function() { 5 | return [ 6 | { 7 | id: '0', 8 | title: 'Data Set 1', 9 | batch: [ 10 | { 11 | title: 'Pressure', 12 | chart: './img/graph_1.svg', 13 | channel: [ 14 | { 15 | title: 'Pressure Sensors', 16 | group: [ 17 | { 18 | title: 'fuel_pressure-d', 19 | category: 'pressure', 20 | state: "retracted", 21 | meta: [ { tag: "tag1" }, { key: "keyss", value: "valuess"}], 22 | key: { 23 | color: '#FF00D8', 24 | style: "dashed" 25 | } 26 | }, { 27 | title: 'oil_pressure-3a', 28 | category: 'pressure', 29 | state: "retracted", 30 | meta: [ { tag: "tag1" }, { key: "keyss", value: "valuess"}], 31 | key: { 32 | color: '#FFF81D', 33 | style: "solid" 34 | } 35 | } 36 | 37 | ] 38 | } 39 | ], 40 | data_points: [ 41 | { 42 | count: 5, 43 | position: { 44 | x: 34, 45 | y: 22 46 | } 47 | }, 48 | { 49 | count: 3, 50 | position: { 51 | x: 200, 52 | y: 78 53 | } 54 | }, 55 | { 56 | count: 12, 57 | position: { 58 | x: 605, 59 | y: 152 60 | } 61 | } 62 | ] 63 | }, 64 | { 65 | title: 'Speed', 66 | chart: './img/graph_2.svg', 67 | channel: [ 68 | { 69 | title: 'Pressure Sensors', 70 | group: [ 71 | { 72 | title: 'fuel_pressure-d', 73 | category: 'pressure', 74 | state: "retracted", 75 | meta: [ { tag: "tag1" }, { key: "keyss", value: "valuess"}], 76 | key: { 77 | color: '#AC00FF', 78 | style: "solid" 79 | } 80 | }, { 81 | title: 'oil_pressure-3a', 82 | category: 'pressure', 83 | state: "retracted", 84 | meta: [ { tag: "tag1" }, { key: "keyss", value: "valuess"}], 85 | key: { 86 | color: '#FF00D8', 87 | style: "solid" 88 | } 89 | } 90 | 91 | ] 92 | }, 93 | { 94 | title: 'random_sensor', 95 | category: 'pressure', 96 | state: "retracted", 97 | meta: [ { tag: "tag1" }, { key: "keyss", value: "valuess"}], 98 | key: { 99 | color: '#00E7FF', 100 | style: "solid" 101 | } 102 | } 103 | ], 104 | data_points: [ 105 | { 106 | count: 1, 107 | position: { 108 | x: 59, 109 | y: 200 110 | } 111 | }, 112 | { 113 | count: 4, 114 | position: { 115 | x: 200, 116 | y: 127 117 | } 118 | }, 119 | { 120 | count: 17, 121 | position: { 122 | x: 615, 123 | y: 131 124 | } 125 | } 126 | ] 127 | } 128 | ] 129 | // Dummy chart for now 130 | }, 131 | { 132 | id: '1', 133 | title: 'Data Set 2' 134 | } 135 | ]; 136 | } 137 | 138 | return DataSets; 139 | }); 140 | 141 | 142 | 143 | 144 | 145 | 146 | 147 | 148 | 149 | 150 | 151 | 152 | 153 | 154 | 155 | 156 | 157 | 158 | 159 | 160 | 161 | -------------------------------------------------------------------------------- /public/javascripts/services/Observations.js: -------------------------------------------------------------------------------- 1 | app.service('Observations', function($http, $cookieStore, $state) { 2 | var Observations = {}; 3 | var data_points = []; 4 | 5 | Observations.getObservations = function() { 6 | return [ 7 | { 8 | data_set: "launch_39.2", 9 | data_point: "0", 10 | img: "../img/prof-1.png", 11 | author: "Thomas Drach", 12 | created: "1288323623006", 13 | observation: "This doesn't look good, it could be X or Y, but not Z." 14 | }, 15 | { 16 | data_set: "TEST_3A", 17 | data_point: "1", 18 | img: "../img/prof-1.png", 19 | author: "Thomas Drach", 20 | created: "1288323623006", 21 | observation: "I think this problem will continue to grow if we don't address immediately. I think we could do Z if we had A and B, but that's up to Stan." 22 | }, 23 | { 24 | data_set: "launch_39.2", 25 | data_point: "2", 26 | img: "../img/prof-1.png", 27 | author: "Thomas Drach", 28 | created: "1288323623006", 29 | observation: "This doesn't look good, it could be X or Y, but not Z." 30 | } 31 | ]; 32 | }, 33 | 34 | Observations.getDataPoints = function(index) { 35 | data_points = [ 36 | { 37 | list: [ 38 | { 39 | count: 5, 40 | position: { 41 | x: 34, 42 | y: 22 43 | } 44 | }, 45 | { 46 | count: 3, 47 | position: { 48 | x: 200, 49 | y: 78 50 | } 51 | }, 52 | { 53 | count: 12, 54 | position: { 55 | x: 605, 56 | y: 152 57 | } 58 | } 59 | ] 60 | } 61 | ]; 62 | return data_points[index]; 63 | } 64 | 65 | return Observations; 66 | }); 67 | -------------------------------------------------------------------------------- /public/javascripts/services/Sources.js: -------------------------------------------------------------------------------- 1 | app.service('Sources', function($http, $cookieStore, $state) { 2 | var Sources = {}; 3 | 4 | Sources.getDataSources = function() { 5 | return [ 6 | { 7 | title: "LAUNCH_SALAD", 8 | created: "1288323623006", 9 | modified: "1288323623006", 10 | size: "32MB", 11 | length: "32s", 12 | info: "This is some info on this particular source" 13 | }, 14 | { 15 | title: "LAUNCH_BACON", 16 | created: "1288323623006", 17 | modified: "1288323623006", 18 | size: "32MB", 19 | length: "32s", 20 | info: "This is some info on this particular source" 21 | }, 22 | { 23 | title: "LAUNCH_SANDWICH", 24 | created: "1288323623006", 25 | modified: "1288323623006", 26 | size: "32MB", 27 | length: "32s", 28 | info: "This is some info on this particular source" 29 | }, 30 | { 31 | title: "LAUNCH_SALAD", 32 | created: "1288323623006", 33 | modified: "1288323623006", 34 | size: "32MB", 35 | length: "32s", 36 | info: "This is some info on this particular source" 37 | }, 38 | { 39 | title: "LAUNCH_BACON", 40 | created: "1288323623006", 41 | modified: "1288323623006", 42 | size: "32MB", 43 | length: "32s", 44 | info: "This is some info on this particular source" 45 | }, 46 | { 47 | title: "LAUNCH_SANDWICH", 48 | created: "1288323623006", 49 | modified: "1288323623006", 50 | size: "32MB", 51 | length: "32s", 52 | info: "This is some info on this particular source" 53 | }, 54 | { 55 | title: "LAUNCH_SALAD", 56 | created: "1288323623006", 57 | modified: "1288323623006", 58 | size: "32MB", 59 | length: "32s", 60 | info: "This is some info on this particular source" 61 | }, 62 | { 63 | title: "LAUNCH_BACON", 64 | created: "1288323623006", 65 | modified: "1288323623006", 66 | size: "32MB", 67 | length: "32s", 68 | info: "This is some info on this particular source" 69 | }, 70 | { 71 | title: "LAUNCH_SANDWICH", 72 | created: "1288323623006", 73 | modified: "1288323623006", 74 | size: "32MB", 75 | length: "32s", 76 | info: "This is some info on this particular source" 77 | }, 78 | { 79 | title: "LAUNCH_SALAD", 80 | created: "1288323623006", 81 | modified: "1288323623006", 82 | size: "32MB", 83 | length: "32s", 84 | info: "This is some info on this particular source" 85 | }, 86 | { 87 | title: "LAUNCH_BACON", 88 | created: "1288323623006", 89 | modified: "1288323623006", 90 | size: "32MB", 91 | length: "32s", 92 | info: "This is some info on this particular source" 93 | }, 94 | { 95 | title: "LAUNCH_SANDWICH", 96 | created: "1288323623006", 97 | modified: "1288323623006", 98 | size: "32MB", 99 | length: "32s", 100 | info: "This is some info on this particular source" 101 | }, 102 | { 103 | title: "LAUNCH_CHICKEN", 104 | created: "1288323623006", 105 | modified: "1288323623006", 106 | size: "32MB", 107 | length: "32s", 108 | info: "This is some info on this particular source" 109 | } 110 | ]; 111 | } 112 | 113 | return Sources; 114 | }); 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | -------------------------------------------------------------------------------- /public/partials/nav.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/partials/observation.html: -------------------------------------------------------------------------------- 1 |
2 |
3 | 5 | 6 |
7 |
8 | 10 | 11 | 12 | 13 | 14 | 15 |
16 |
17 | -------------------------------------------------------------------------------- /public/partials/share.html: -------------------------------------------------------------------------------- 1 |
2 | 3 | Cancel 4 | 5 |
6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 |
14 | -------------------------------------------------------------------------------- /public/partials/tool.html: -------------------------------------------------------------------------------- 1 |
2 | 4 | 5 | 7 | 8 | 10 | 11 | 13 | 14 |
15 | 16 |
17 | 19 | 20 | 22 | 23 |
-------------------------------------------------------------------------------- /public/partials/upload.html: -------------------------------------------------------------------------------- 1 | 2 |
3 | 4 | 5 | 8 | 9 | 10 |
11 | 12 | 13 |
14 |

Upload a TDMS or CSV file

15 |
16 | 19 |
20 |
21 | 22 | 23 |
25 | Drag and Drop, or choose a file 26 |
27 | 28 | 29 | 78 | 79 | 81 |
82 |
-------------------------------------------------------------------------------- /public/templates/data_set.html: -------------------------------------------------------------------------------- 1 |
2 |
4 | 6 | 7 |
8 |
10 | 12 |
13 |
14 | 15 |
16 | Share Data Set 18 | 19 |
20 | 21 |
22 | 159 |
160 | 161 |
164 |
165 | 166 |
169 |
-------------------------------------------------------------------------------- /public/templates/data_sets.html: -------------------------------------------------------------------------------- 1 |
2 | 3 | 4 | 12 |
13 |
14 |
-------------------------------------------------------------------------------- /public/templates/discuss.html: -------------------------------------------------------------------------------- 1 |
2 |

Activity

3 |
4 | 3 unread observations.Mark as read 5 |
6 | 7 | 8 |
9 | 10 | 46 | -------------------------------------------------------------------------------- /public/templates/navigator.html: -------------------------------------------------------------------------------- 1 |