GithubHelp home page GithubHelp logo

opensprints-electron's Introduction

About OpenSprints

OpenSprints is the Open Source (FREE) version of GoldSprints.

About GoldSprints

Via Wikipedia: A goldsprint is a bicycle rollers racing and social event. Riders on stationary bikes compete against each other in front of a crowd of cheering friends.

While roller racing in general can use any type of bicycle and there are variations on the set-up depending on the type of rollers used and whether the front wheel is engaged or fixed, goldsprints generally use one form of setup. As with roller racing in general, the rollers are in turn attached to a device that measures distance and can display the progress of the riders. Goldsprints also feature modern 2D and 3D visualizations.

Roller racing has a long history going back to the beginning of cycling, however Goldsprints are closely related to bicycle messenger culture. It began in Zurich, Switzerland during the 1999 Cycle Messenger World Championships. GoldSprints organizers, Mike Dee and Hodari De Palm debuted their current set up at 2005’s Cycle Messenger World Championships in New York City and expanded to six American cities: NYC, Philly, DC, Boston, Baltimore, and Las Vegas. They created the first GoldSprints Series, which was started Halloween 2006 in New York City.

Installation

OpenSprints is not just a piece of software but a whole system consisting of software, electronics, A/V and stock bicycle components. Users are encouraged to read the {wiki.opensprints.org guides} in our wiki to learn about how to put together the entire system. But one step is to get the software working:

  1. Get {shoes.heroku.com/ shoes} for your platform.

  2. Get our latest {github.com/evanfarrar/opensprints/tarball/master code}.

  3. write your configuration file, using config-sample.yml as a guide. You may use “mock” as your sensor type to run opensprints in demo mode (i.e. without a bike attached).

  4. open “opensprints.rb” with shoes.

Going Further

Note on Patches/Pull Requests

OpenSprints has an aggressively liberal commit policy. If you follow or fork the project on github, we’ll add you the project’s collaborators list.

If you’re intereseted in learning more about the structure of this application to modify, extend or fork it, read our API docs:

Copyright © 2009 Alex Rakoczy, Evan Farrar, Luke Orland, Morgan Venable, Morgan R. Allen, Jamie Howard, Jonathan Morrison and Michael Wozniak. See LICENSE for details.

opensprints-electron's People

Contributors

akovalyov avatar amilajack avatar anwarhamr avatar catalinmiron avatar chentsulin avatar davej avatar domasx2 avatar epilande avatar g1ibby avatar greenkeeperio-bot avatar jhen0409 avatar jonfen avatar kilian avatar longlivechief avatar lucianotonet avatar lukeorland avatar matbush avatar neighborhood999 avatar nickstew avatar olegakbarov avatar pascalw avatar ryanatvicesoftware avatar shea256 avatar slightlytyler avatar the4dpatrick avatar tsemerad avatar ttacon avatar vinnymac avatar vramana avatar yeti-or avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Forkers

clayperez

opensprints-electron's Issues

Support for only 2 Bikes

Currently I've styled and coded most of the pages with 4 bikes/racers in mind and need to make sure all of the pages work with 2 bikes/racers in mind.

Pages

  • Race Preview

143905931

  • Race

144309033

  • Race Results

175216195

Race Screen - Racer Stats/Info

144309033

  • Displays Distance Traveled
  • Speed using measurementUnits in Default settings
  • Finish Time if raceType === 'distance' and racer has finished

Basic Layout of Views & Small Components

Views

  • Default Settings
  • Navigation
  • Roster
  • Race Preview
  • Race
  • Race Results
  • Intermission

Components

  • Background Preview/Edit (Default Settings View)
  • Countdown Modal (Race View before a race starts)
  • Undo Popup (deleting users on Roster View)
  • Clock Hands (Race View)

Race Result Page - Racer Stats

175216195

Requirements

  • Average speed using defaultSettings.measurementUnits
  • Finish Time or Distance Travelled based on race.raceType

Uncaught Error: module version mismatch. Expected 50, got 48. bindings.js

Issue

screen shot 2016-09-27 at 8 07 45 am

## Investigation

This issue lies somewhere between electron and serialport. Thanks to #1204 and this comment, I was able to come up with a solution for this problem. I hope this leads you in the right direction.

Solution Steps

Install node-gyp Globally

I did this to make it easier to reference later when we rebuild serialport with it.

  npm install -g node-gyp

Change Directory to where serialport is in your project

node-gyp is going to use the current directory for which module to rebuild.

  cd `npm ls serialport --parseable`

Rebuild serialport

This is mostly taken from that issue comment linked above.

I assume that we need to reference ~/.electron-gyp so that it uses the electron version as the targeted version instead of using an electron version number to target a specific version of node.

I added the dynamic target so that as electron gets updated you won't have to change this line.

  HOME=~/.electron-gyp node-gyp rebuild --target=`npm view electron version` --arch=x64 --dist http://atom.io/download/atom-shell

Done!

After that you should be good to navigate back to the root of your project and run it.

Obligatory Version Table and Disclaimer

OS node npm electron johnny-five serialport
OSX 10.11.6 6.3.1 2.11.3 1.4.1 0.10.1 4.0.1

Disclaimer: I have only verified that it works on my machine and have not tried Windows or Linux operating systems.

ERROR: fs: re-evaluating native module sources is not supported.

$ gulp
(node:34867) fs: re-evaluating native module sources is not supported. If you are using the graceful-fs module, please update it to a more recent version.
module.js:442
    throw err;
    ^

Error: Cannot find module 'gulp-sass'
    at Function.Module._resolveFilename (module.js:440:15)
    at Function.Module._load (module.js:388:25)
    at Module.require (module.js:468:17)
    at require (internal/module.js:20:19)
    at Object.<anonymous> (/Users/orluke/workspace/opensprints-electron/gulpfile.js:2:10)
    at Module._compile (module.js:541:32)
    at Object.Module._extensions..js (module.js:550:10)
    at Module.load (module.js:458:32)
    at tryModuleLoad (module.js:417:12)
    at Function.Module._load (module.js:409:3)

I updated graceful-fs to the latest version, 4.1.5, but that did not fix it.

I also tried this: sequelize/cli#291 (comment)
without success.

System: OS X 10.11.6

Crowd Messaging Component

On the right side of all of these pages is a messaging component that will be used to communicate with the audience.

Component needs to be flexible in the styling and should be easy to add and remove messages.

144309033
175216195
152278896

Connect and Reconnect of Hardware

Currently the software only connects on startup to the hardware. We should continue to attempt to connect and have some banner that shows that the hardware is disconnected.

Navigation Dropdown Restyling

151990874

Located in containers/Header.js

Currently the navigation is a simple div with links and shows onClick and hides onMouseLeave.

This should:

  • Stay open until clicking the "X" to close or the empty space on the left.
  • Slide open/closed

Bonus:

  • ability to add links by changing the props.

Huge performance issue on Race Start

We need to delay Start Race Action in Redux until after race finishes to improve re-render. I'll end up keeping all the data for startTime and such in the Race Component and update Redux on Race Finish. This should hopefully prevent a full "shouldComponentUpdate" cycle in React for unrelated components. I'm 95% sure this will fix the performance hit.

Race Preview Screen - Add/Edit Racer

175214288
175214289

Requirements

  • After a user clicks change button it should open up the first screen above to edit that user
  • Plus button will light up if user's name is changed
    • When clicked it will create a new racer & swap the racer assigned to that bike with the new one
  • When save button is clicked it will save changes to that racer & collapse the edit options
  • When cancel button is clicked it will discard any changes to that racer
  • Trash icon will remove that racer from that bike and leave it empty

Race Indicator SVG

These mock ups show what the indicator needles are supposed to look like. Initial working version is a simple react component using ract-konva to draw an arrow Indicator.js.

I'm still working on the race state needed for this and the rest of the app.

Any suggestions or help is appreciated.

race screen start

race screen mid-race

Default Settings - Change Bike Color

161851615

We need some sort of Color Picker that makes it easy to change the color of each Bike.

Requirements:

  • Allows the user to select a color --Needs more detail--
  • After Selection of a color it should dispatch an action to change the settings.

Default Settings - Change Backgrounds

161851615

Changing the backgrounds is instrumental to a customer running their own branded event.

Needs to:

  • Download corresponding templates in attached zip file
  • Ability to "upload" or save in the install directory or directory the App uses to pull backgrounds
  • Background dependent on Settings

Last item in this list might need it's own issue due to scope.

Background Templates.zip

Race Screen - Race Countdown

161851061

  • Light up each light as the countdown messages are displayed
  • if someone pedals before the countdown is over, signal a "False Start" and go back to Racers Ready?

README needs to be updated

The README should have info related to only this repo and shouldn't have as much copied info unless it's relevant.

For anyone thinking about taking this task please read Art of README.

This article has some good tips for what is needed in a readme and what we can change in ours.

Intermission Screen

Intermission Screen still needs to have some logic to be finished.

  • Dynamic Background (related to #11 )
  • Need to rotate through the screens selected from Default Settings Page

152278894
152278895
152278896

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.