Git Product home page Git Product logo

esacontroller's Introduction

ESA Marathon

The greatest speedrunning event Europe has ever seen

Requirements

  • Go
  • Docker / RethinkDB
  • Gulp
  • Npm

Local development

  1. Set up your local .env file base don the .example.env
  2. Download dependencies with go get and npm install (or yarn)
  3. Run docker-compose up -d to initialize the Database
  4. Migrate the DB by running go run cmd/dbinit.go (add --seed to insert default data)
  5. Compile styles, js and html with npm run gulp
  6. Run fresh or go run main.go
  7. Add some cool features

Production build

  1. Clone repository and set up .env file
  2. Run docker build -t esa:latest .
  3. Run docker-compose up -d
  4. (First time setup) Run docker exec -it {containerID} /bin/sh and go run cmd/dbinit.go --seed

esacontroller's People

Contributors

btbn avatar zephyyrr avatar

Watchers

 avatar  avatar

Forkers

zephyyrr

esacontroller's Issues

Auto image

When you select an in1606 source manually, it should send an 'auto image' command to the in1606 once the source has been selected

There should be an 'auto image' button in the in1606 area (could be called Reset Crop)

When you save a preset with in1606 settings you should be able to toggle whether to use the current cropping values, or just use auto image.

PC / HDMI console will be cropped perfectly by auto image
Analog will generally be using one of Edenal's manual cropping presets he noted down at DH

Add database to backend

This is something long overdue.
Store data for runtime in database.
Implement something like a persistent queue in DB.

Thinking PostgreSQL because i like PostgreSQL.
Something like Couch or Mongo could also work, but I like SQL databases better than NoSQL.

Write tests

Using Mocha and PhantomJS.
Both server-side and client-side.

More metadata

We should be passing the following additional data to the upload script to build a more useful YouTube description:

Date/time of run beginning
Finished timer
Individual timers for each run
Additional runner social media links (we now scrape speedrun.com for flags, so we can grab any other data too)

'Save clip' button

Implement a 'clip big red button' that runs the segment combining script. Hopefully in the future it can also call a clip API on twitch (they've not made it yet)

From: current time -n
To: current time -n

Upload: no? This is mostly for showing locally on intermissions

We don't have a physical button this time but we can give the hosts a virtual button

Change YT logic to upload when next game starts

This will allow including all of the intermission at the end of youtube uploads.
Will probably require a change in SpeedControl to output an event when a new game starts.

This will also call for some kind of persistance since in some cases ESAController might need to be restarted during an intermission.

Also needs a "flush" command to manually upload the last game for last game and end of night for non-24/7 events.

Heartbeat

Heartbeat function between Speedcontrol and ESAController to pause the timer in the former if there's a loss of contact between the two (for example a reboot of jetengine) or a loss of internet connection to jetengine

Recall presets

Preset storage is done.
Now we just need preset recalling.
Read file, and apply all devices accordingly to selected racks.

Crop nudge buttons

+/- nudge buttons for 10, 25 and 100 pixel movements

Would make an adjustment half a second rather than 3 seconds. You're doing a lot of adjustments!

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.