Giter Site home page Giter Site logo

shrdlurn's Introduction

Interactive semantic parsing client

Currently in progress, and focuses on a blocks world.

Information

Developer Instructions

Installation

To install, simply run yarn install. This will install all the needed node dependencies.

Development

We use react-scripts to handle the building and running of the client.

To run locally with hot reload, run yarn start.

By default, the client tries to connect to the servers specified in "constants/strings.js". But, if you wish the client to connect to a different instance of SEMPRE or the community server, you can set environment variables to override the URLs they try to connect. The following environmental variables will tell the client which server to connect to:

  • REACT_APP_SEMPRE_SERVER specifies the URL of the running SEMPRE instance.
  • REACT_APP_COMMUNITY_SERVER specifies the URL of the (optionally) running community server to support logging and community features.

You can either specify these in a .env file or in the CLI command like so, REACT_APP_SEMPRE_SERVER=localhost:8410 yarn start

Building

Run yarn build to build a production version of the app. The build will be saved to "/build".

Note: In order to build to deploy to a URL that is not the root, you must set the "homepage" in "package.json" to the URL where the client will be hosted.

Deployment

It is simple to deploy to Github Pages. Just set the "homepage" variable in "package.json", and then run yarn deploy.

Organization

All javascript and CSS source code is the "src" folder. Generally, anything that is a route is in "src/routes". Anything that is not a route, but that handles interacts directly with data in the store (i.e. is wrapped with Redux's connect function) is in "src/containers". Anything that does not get data directly from the store will reside in "src/components".

The setting (BlocksWorld) lives in the "src/setting". Here is the only logic that is blocks world dependent.

Build Your Own Setting!

Interested in expanding this client to handle a different setting? Everything should be setting agnostic except for the code in "src/setting". All you have to do is implement all the same props as "src/setting/BlocksWorld" does and then export the new setting as the App's setting by changing what gets imported in "src/setting/index.js". Then, everything should work as intended!

shrdlurn's People

Contributors

samginn avatar sidaw avatar sharkdp avatar

Stargazers

Blake Dietz avatar  avatar

Watchers

James Cloos avatar  avatar  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.