Coder Social home page Coder Social logo

kanikasaini / frog Goto Github PK

View Code? Open in Web Editor NEW

This project forked from chili-epfl/frog

0.0 1.0 0.0 44.93 MB

Fabricating and running orchestration graphs

Home Page: https://github.com/chili-epfl/FROG/wiki

JavaScript 92.99% Python 0.03% HTML 6.03% CSS 0.34% CoffeeScript 0.58% Shell 0.03%

frog's Introduction

FROG

Fabricating and running orchestration graphs. To learn more about the design and architecture, visit our wiki.

Videos

Graph editor

Example of student screens (four different students)

Short video demo

FROG%20video

(more examples, and videos, on the wiki)

Set up

  • install Meteor

  • make sure you have a recent version of Node (at least 9.10) (if you have node, but not the latest, you can try npm install -g n; n latest

  • run the commands

    • ./initial_setup.sh (if problem occur with bcrypt you can try to run meteor npm install --python=python2.7 from the frog/ directory)

    • go to the frog/ directory and run meteor

    • see more developer scripts and details here, including how to automatically rebuild files in ac/, op/ and frog-utils.

  • Go to http://localhost:3000/ on your browser

Troubleshooting initial setup

  • Make sure Meteor works (meteor --version) (note that the Meteor version is not important, Meteor will automatically download and install the correct version when run the first time)
  • Make sure you have an up-to-date version of Node 8 or 9 (node --version), and that npm works (npm --version -- will not be the same as the Node version)
  • We do not support Windows - you might be able to get it to run, but all of our scripts etc, presume OSX/Linux
  • All scripts (./initial_setup.sh etc should be run as user, not root)
  • If you are running in a virtual machine, and the ./initial_setup.sh script crashes the machine, or does not complete, try removing the parallelism from by running ./initial_setup.sh --single.
  • Make sure you have enough disk-space, and that no other processes are listening to ports 3000, 3001 and 3002. (The need to expose these ports means that FROG will not work easily with ngrok, which only exposes a single port - 3000 and 3002 need to be exposed).
  • If you need to re-run ./initial_setup.sh, execute these commands first. (Note that this deletes any file that has not been checked in and committed): git reset --hard; git clean -fdx; ./initial_setup.sh
  • Some warnings when you start Meteor like missing bcrypt, hiredis etc are OK, as long as the final lines are:
=> Started your app.

=> App running at: http://localhost:3000/

Development

  • Learn Meteor framework with React: https://www.meteor.com/tutorials/react/creating-an-app

  • Use npm start watchAll to automatically have packages rebuilt after editing them (otherwise your changes will not be picked up by Meteor) (more details here)

  • Note that we use yarn extensively. Unfortunately, we currently need to symlink all the packages from the root node_modules directory into frog/, because of a problem with Meteor. This means that the best way to add or update a dependency is to directly edit the package.json file in question, and rerun git clean -fdx; ./initial_setup.sh. We're working on improving this.

  • In development mode, you can use the URL shorthand <host>?login={user} to automatically login as a given user (which will be automatically created if it does not yet exist). For example, http://localhost:3000/<slug>?login=peter, will open the student view logged in as peter. The user 'teacher' has access to the graph editor and the teacher orchestration dashboard. If you want to see the "projector mode", you log in like <host>/projector/<slug>?login=teacher. The slug is displayed once you create a new session.

  • If you open a number of windows in the same browser, they will all be logged in as the latest user, because of cookies. A way around this is to add entries like this in /etc/hosts:

    127.0.0.1	localhost
    127.0.0.1	dev1
    127.0.0.1	dev2
    127.0.0.1	dev3
    

Reload /etc/hosts (on OSX), and then log in to different users on different "domains".

Code style/testing

  • We use prettier for Javascript formatting, all pull-requests must be formatted accordingly.
  • We use ESLint for testing syntax.
  • We use Jest for tests.
  • We use Flow for type checking.

All PRs should pass all tests (npm start test in the repository root directory).

Licensing

The main FROG program (in the frog/ directory) is licensed under the GNU Affero General Public License 3.0 (or, at your option, a later version). The licenses of all other packages may be found in their respective directories (LICENSE files in each sub-directory). While the main application is AGPL, we generally license more broadly applicable libraries, as well as specific learning activities, under permissive licenses such as the ISC license to facilitate their reuse in other systems. Please Contact us if you have any questions about licensing.

frog's People

Contributors

anujanegi avatar aperritano avatar dinomujki avatar houshuang avatar jkolsen avatar juancarlosfarah avatar keylas avatar lfaucon avatar mj2905 avatar mluketin avatar palexlee avatar prastut avatar romainaa 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.