Skip to content

HelikarLab/ode-app

Repository files navigation

ODE-APP

Web Pipeline for visualizing and simulating kinetic(ODE-based) biological models.

Please read the wiki for documentation related to Usage, Kinetic Laws, Application Architecture and References.

To start the application (production)

This application makes use of docker and docker compose, so first install them. Learn more about this here.

Run the following commands to start the application:

docker-compose build
docker-compose up

After this open up a browser and go to http://localhost:3000

To run the containers in the background, use:

docker-compose up -d

To stop the above containers run:

docker-compose stop

Development

Follow the instructions below to get the app up and running in development:

  • You need Node, Yarn and Python 3(alongside pip) to run this application. Download them here - Node, Yarn and Python. Further you also need a server of a postgresql database running. Learn more about postgresql here.

  • First you will need to install the dependencies of the project. Do that by running the following in the cloned folder:

    # Node and React dependencies
    yarn 
    # Python dependencies
    pip install python-libsbml
    python -m pip install server/python/lib/stimator-0.9.120-py3-none-any.whl
  • Next you have to setup an environment file (.env) with appropriate variables in the /server folder, an example .env would look like this:

    PORT=#Specifiy a port here (Optional)
    POSTGRES_HOST=#Your database host (Optional)
    POSTGRES_DB=#Your database name
    POSTGRES_USER=#Your database user
    POSTGRES_PASSWORD=#Your database user's password
  • Then run the following command to start both the React Client and Node Server(concurrently):

    yarn dev

Testing

This project uses cypress for testing.

  • To run tests for the project, use:

    yarn test
  • To open cypress only, use:

    yarn cypress

Other Scripts

  • To run the node server individually, use:

    yarn server:start

    ---OR---

    # In /server
    yarn start
  • To build the server for production, use:

    yarn server:build

    ---OR---

    # In /server
    yarn build
  • To sync tables in the database, use:

    # In /server
    yarn sync-tables

    With force option (will delete existing tables with the same names):

    # In /server
    yarn sync-tables -f
  • To run the react client individually, use:

    yarn client:start

    ---OR---

    # In /client
    yarn start
  • To build a production react client, use:

    yarn client:build

    ---OR---

    # In /client
    yarn build
  • To eject the configuartion and scripts from the react-scripts package, use:

    # In /client
    yarn eject