Giter Club home page Giter Club logo

app.producer's Introduction

     .--..--..--..--..--..--..--..--..--..--..--..--..--..--..--..--.
    / .. \.. \.. \.. \.. \.. \.. \.. \.. \.. \.. \.. \.. \.. \.. \.. \
    \ \/\ \/\ \/\ \/\ \/\ \/\ \/\ \/\ \/\ \/\ \/\ \/\ \/\ \/\ \/\ \/ /
     \/ /\/ /\/ /\/ /\/ /\/ /\/ /\/ /\/ /\/ /\/ /\/ /\/ /\/ /\/ /\/ /
     / /\/ /`' /`' /`' /`' /`' /`' /`' /`' /`' /`' /`' /`' /`' /\/ /\
    / /\ \/`--'`--'`--'`--'`--'`--'`--'`--'`--'`--'`--'`--'`--'\ \/\ \
    \ \/\ \                                                    /\ \/ /
     \/ /\ \                                                  / /\/ /
     / /\/ /               A UI for Showrunner                \ \/ /\
    / /\ \/                                                    \ \/\ \
    \ \/\ \               to make things better                /\ \/ /
     \/ /\ \                                                  / /\/ /
     / /\/ /                                                  \ \/ /\
    / /\ \/                                                    \ \/\ \
    \ \/\ \.--..--..--..--..--..--..--..--..--..--..--..--..--./\ \/ /
     \/ /\/ ../ ../ ../ ../ ../ ../ ../ ../ ../ ../ ../ ../ ../ /\/ /
     / /\/ /\/ /\/ /\/ /\/ /\/ /\/ /\/ /\/ /\/ /\/ /\/ /\/ /\/ /\/ /\
    / /\ \/\ \/\ \/\ \/\ \/\ \/\ \/\ \/\ \/\ \/\ \/\ \/\ \/\ \/\ \/\ \
    \ `'\ `'\ `'\ `'\ `'\ `'\ `'\ `'\ `'\ `'\ `'\ `'\ `'\ `'\ `'\ `' /
     `--'`--'`--'`--'`--'`--'`--'`--'`--'`--'`--'`--'`--'`--'`--'`--'

Purpose of this project

Where to find the deployed version

Staging: http://api.staging.hackreactor.com/producer/v0/

Tech Stack

Node/Express + AngularJS + LevelDB

How to run this code

  • npm start

Development

  • fork the repo
  • git clone https://github.com/hackreactor-labs/app.producer.git
  • npm install
  • bower install
  • touch .env from root directory
  • update the .env file with personal Asana keys (follow instructions below)
  • nodemon

These should be inside of the .env file:

For local development, a Github Application will need to be registered. Follow these steps and add these additional variables to your .env file:

  1. In github, go to Settings > Applications > Developer Applications > Register a new app
  2. Get the client id and the client secret that are generated
  3. add this as the callback url http://127.0.0.1:8000/auth/github/callback
  4. add the following to your .env file
  • **GITHUB_CLIENT_ID=**YOUR_CLIENT_ID
  • **GITHUB_CLIENT_SECRET=**YOUR_CLIENT_SECRET
  • **TEAM_NAME=**w-producer
  • **ORG_NAME=**hackreactor-labs
  • **GITHUB_CALLBACK_URL=**http://127.0.0.1:8000/auth/github/callback
  • **USER_AGENT=**YOUR_USERNAME

For local development, a personal Asana account is needed. Once you have created an account, complete the following:

How to test this code

  • npm test

Dependencies

dependencies

dev-dependencies

List of Terms

  • Choreographer: A service containing three services: Melody, Metronome, and Choreographer. The Choreographer sub-service is responsible for addings tasks to Asana to the appropriate person when a template is triggered.
  • Event: A model of a specification for when a procedure should happen. Takes a title, an optional cron job, and an optional description (Ex. '9am on the 3rd of every month'). Events can also be Hack Reactor-specific cyclical events, which have the form 'WXDX' where 'WX' is the week and DX is the day. Note: events are not associated with specific procedures upon creation; they are only associated with procedures when a template is made.
  • Melody: A sub-service of Choreographer responsible for Hack Reactor-specific cyclical events, which take the form of ('W4D2');
  • Metronome: A sub-service of Choreographer responsible for cron events. Has its own database, and sends triggers for templates to the Choreographer sub-service whenever cron events fire.
  • Procedure: A model of a task to be done. Takes a title and an optional description (Ex. 'Take out the trash').
  • Producer: A service and UI that allows users to:
    • create procedures
    • create events
    • create templates
    • trigger templates
  • Role: A model that functions similarly to a job title in that it captures that one person should have various responsibilities. Those responsibilities are procedures and are linked to roles and events with templates (Ex. 'Space Ops Associate').
  • Soundboard: A page of Producer that allows a user to trigger a template manually.
  • Template: A model that links roles, procedures, and events together (Ex. 'Space Ops associate should take out the trash at 9am on the 3rd of every month'). Templates submitted to the Choreographer UI are sent to Asana. Choreographer then reads templates from Asana and uses Metronome to trigger templates, which assigns that task at the appropriate time to the person in that role in Asana.

app.producer's People

Contributors

adamtobias avatar azellsworth avatar johndvorakhr avatar leonetti avatar mdboop avatar naomiajacobs avatar ryanwholey avatar sara-gudeman avatar

Watchers

 avatar

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.