Giter VIP home page Giter VIP logo

homs's Introduction

Hydra Order Management System (HOMS)

HOMS is an open source web application for order and business process management.

Application consists of three parts:

  • User interface - managing orders and tasks for registered users (Single Page Application).
  • Administrator interface - managing users and order types.
  • REST API - operations with orders and users.

Requirements:

Compatibility:

Resources:

Installation

The prefered way to install HOMS is to use Docker.

In production

  1. Download docker-compose.yml and default .env config file:

    wget https://raw.githubusercontent.com/latera/homs/master/docker-compose.yml
    wget https://raw.githubusercontent.com/latera/homs/master/.env.sample -O .env

    ๐Ÿ“Œ All variables are set in .env file. There you can change them, if you want to.

  2. For OS X users: make path to folder with config shared in Docker -> Preferences... -> File Sharing.

  3. Set SECRET_KEY_BASE variable in your .env with uniq id as value. You can generate key with openssl rand -hex 64 command. For example:

    SECRET_KEY_BASE=0750fd0eac13032778f0a42e2ab450003eaece477ea881501be0cc438f870a2f498dbbc00ffb7c8379c30c960568a402d315496bb7bc2b3ee324401ba788a

    โš ๏ธ Make sure this key is secret and don't share it with anyone.

  4. Change Minio credentials in .env file. Generate MINIO_ACCESS_KEY and MINIO_SECRET_KEY values with any credentials generator, e.g. pwgen 32 2.

  5. Run docker-compose:

    docker-compose up -d
  6. Navigate to Minio control panel and create a bucket with name equal to MINIO_BUCKET_NAME value from .env file.

  7. Login to HydraOMS with [email protected]/changeme. Now you are able to start Pizza Order demo process.

You can login to Camunda Admin interface with credentials equal to BPM_USER:BPM_PASSWORD values from .env file (user/changeme if these variables aren't set).

In development

  1. Follow the instructions below:

  2. Navigate to Minio control panel and create a bucket with name equal to MINIO_BUCKET_NAME value from .env file.

  3. Export all variables from .env file

    export $(cat .env | xargs)
    
  4. Change in bpm.yml value of development.base_url from http://camunda:8080/engine-rest/ to http://localhost:8766/engine-rest/

  5. In database.yml change value of development.host from <%= ENV['HOMS_DB_HOST'] %> to localhost

  6. Install Yarn and run:

    yarn install
    
  7. Compile assets:

    yarn dev
  8. Start HOMS application in another console tab:

    rails s
  9. Create and populate the database (adds an admin user, initial order types, and orders):

    rails db:migrate
    export SEED_DB=true
    rails db:seed
  10. Log in at HydraOMS with [email protected]/changeme.

Contributing/Development

The general development process is:

  1. Fork this repo and clone it to your workstation.
  2. Create a feature branch for your change.
  3. Write code and tests.
  4. Push your feature branch to github and open a pull request against master.

Reporting Issues

Issues can be reported by using GitHub Issues.

Testing

HOMS uses RSpec for unit/spec tests. You need to set up different testing database. Otherwise your development DB would be erased.

# Run all tests
bundle exec rspec spec

# Run a single test file
bundle exec rspec spec/PATH/TO/FILE_spec.rb

# Run a subset of tests
bundle exec rspec spec/PATH/TO/DIR

Links

  1. Repo with helper classes for BPMN development.

  2. Example of creating a demo business process.

License

Copyright (c) 2019 Latera LLC under the Apache License.

homs's People

Contributors

abyr9 avatar dependabot[bot] avatar dolfinus avatar eugenweissbart avatar factotum8 avatar flash-gordon avatar gideonexe avatar hydra-billing-robot avatar kiread-work avatar kompl avatar kuleminr avatar mimuss avatar nataliekor avatar nixikanius avatar odiegopereira avatar pleaseduck avatar profx5 avatar robin-jerome avatar sergeichukd avatar sugarfree1 avatar theodor85 avatar vladdoncheg 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.