JavaScript CSS Python Other
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
.github Improve Issue Template. (#221) May 12, 2018
Origami Added myprofile sidebar and modified dashboard UI. (#227) Aug 6, 2018
api feat(pre-commit-formatting): add pre commit yapf formatting. (#218) May 10, 2018
deployment Settings: Add postgres configuration (#53) Jul 17, 2017
django_server Added Mydemo page (#226) Jul 27, 2018
docker Fix webpack error when using docker (#81) Sep 20, 2017
docs Update demo gists (#98) Jan 4, 2018
hooks feat(pre-commit-formatting): add pre commit yapf formatting. (#218) May 10, 2018
media Add sample image inputs (#62) Aug 20, 2017
static Add sample image inputs (#62) Aug 20, 2017
.babelrc Integrated coreUI (#225) Jun 27, 2018
.dockerignore Dockerize the application (#59) Aug 5, 2017
.eslintrc refactor(package.json): update package.json dev environment scripts (#… Mar 13, 2018
.gitignore fix(travis-build): add frontend build in travis and remove webpack-st… Mar 18, 2018
.travis.yml Integrated coreUI (#225) Jun 27, 2018
CODE_OF_CONDUCT.md Docs: Create Code of Conduct (#125) Apr 11, 2018
README.md Added Origami Cover Image in Readme. (#220) May 12, 2018
docker-common.yml Dockerize the application (#59) Aug 5, 2017
docker-compose.yml Dockerize the application (#59) Aug 5, 2017
manage.py Translate entire backend from node to Django Jul 6, 2017
origami.env.sample Add origami.env to .gitignore (#107) Jan 3, 2018
origami.png Added Origami Cover Image in Readme. (#220) May 12, 2018
origami_logo.png Added Origami Cover Image in Readme. (#220) May 12, 2018
package.json Integrated coreUI (#225) Jun 27, 2018
requirements.txt feat(pre-commit-formatting): add pre commit yapf formatting. (#218) May 10, 2018
server.js Translate entire backend from node to Django Jul 6, 2017
setup.cfg feat(pre-commit-formatting): add pre commit yapf formatting. (#218) May 10, 2018
webpack.base.config.js fix(travis-build): add frontend build in travis and remove webpack-st… Mar 18, 2018
webpack.local.config.js fix(travis-build): add frontend build in travis and remove webpack-st… Mar 18, 2018
webpack.prod.config.js fix(travis-build): add frontend build in travis and remove webpack-st… Mar 18, 2018
yarn.lock Integrated coreUI (#225) Jun 27, 2018

README.md

Coverage Status

Artificial Intelligence as a Service

  • Origami is an AI-as-a-service that allows researchers to easily convert their deep learning models into an online service that is widely accessible to everyone without the need to setup the infrastructure, resolve the dependencies, and build a web service around the deep learning model. By lowering the barrier to entry to latest AI algorithms, we provide developers, researchers and students the ability to access any model using a simple REST API call.

  • The aim of this project is to create a framework that can help people create a web based demo out of their machine learning code and share it. Others can test the model without going into the implementation details. Usually testing models by other people involves a lot of preparation and setup. This project aims to cut that down.

This app is presently under active development and we welcome contributions. Please check out our issues thread to find things to work on, or ping us on Gitter.

Installation Instructions

Setting the environment variables

  • origami.env stores all the environment variables necessary to run Origami.
  1. HOST should be set to the hostname of the server
  2. PORT should be set to the port you want the server to listen on. (Generally 80)
  3. DB_NAME will be used to set the name for your postgres database
  4. DB_PASS will be used to set the password for the database user. This is also the admin password
  5. DB_USER is the username for a user who can modify the database. This is also the admin username
  6. DB_USER_EMAIL stores the email for the admin
  7. DB_HOSTshould be set to postgres in production and localhost in development
  8. REDIS_HOST should be set to redis and localhost in development

To create the file, cp origami.env.sample origami.env and edit the file with the above fields.

  • Origami/outCalls/config.js stores config variables needed by the UI.
  1. CLIENT_IP should be set to the same value as HOST in origami.env
  2. CLIENT_PORT should be set to the same value as PORT in origami.env
  3. For DROPBOX_API_KEY , check step 3 of configuring Origami

Production setup instructions

Use docker to setup Origami on production

Running the server

You can run the server with the help of docker and docker-compose.

Run docker-compose up

Development setup instructions

This application requires node v5+ and Python 2.7/3.4+

Create a Virtual Environment

  1. pip install virtualenv
  2. virtualenv venv venv = Name of virtualenv
  3. source venv/bin/activate

Note: Step 2 will create a folder named venv in your working directory

Getting the code and dependencies

  1. Clone this repository

  2. Navigate to the repo. Usually cd Origami/

  3. Add all the python dependencies. pip install -r requirements.txt

  4. Add all the javascript dependencies yarn (preferably) or npm install

  5. Setup redis docker run -d -p 6379:6379 --name origami-redis redis:alpine

  6. Setup the environment

    source origami.env

Setting up the database

Create all the tables

python manage.py makemigrations
python manage.py migrate

Create admin account

python manage.py initadmin

Start the server

  1. Start the server by python manage.py runserver --noworker
  2. Start the worker by python manage.py runworker
  3. yarn run dev
  4. Go to localhost:8000 Visit Read the docs for further instructions on Getting started

Contributing to Origami

  1. Make sure your run tests on your changes before you push the code using:

    • python manage.py test
    • yarn run test
  2. Fix lint issues with the code using:

    • yarn run lint:fix

License

This software is licensed under GNU AGPLv3. Please see the included License file. All external libraries, if modified, will be mentioned below explicitly.