JavaScript HTML CSS Other
Switch branches/tags
Clone or download
Permalink
Failed to load latest commit information.
.github Update the path of translations.json Sep 16, 2017
app Remove visit select when already inside a visit. Jun 14, 2018
assets/icons upgrading to ember electron 2. Apr 12, 2017
config Removed from deprecation-workflow. May 11, 2018
ember-electron updated winstaller config icon path for error free windows build May 23, 2017
lib/pouch-fixtures Replace jshint with eslint. Closes #596 and closes #601. (#724) Oct 13, 2016
prod Version 1.0.0-beta May 18, 2017
public try headless chrome Dec 18, 2017
screenshots Added capability to load db from file Dec 29, 2015
script remove bootstrap script Mar 3, 2018
server Offline fixes (#1080) May 18, 2017
tests Remove visit select when already inside a visit. Jun 14, 2018
vendor Offline fixes (#1080) May 18, 2017
.bowerrc Upgraded to ember-cli 0.1.4 and ember 1.7.1 Dec 19, 2014
.dockerignore Add docker-compose.yml (#1015) Mar 23, 2017
.editorconfig Upgraded ember-cli, ember-suave and ember Jul 29, 2016
.ember-cli Upgraded to ember-cli 0.1.4 and ember 1.7.1 Dec 19, 2014
.eslintrc.js upgrade to 2.18.2 Mar 29, 2018
.gitignore 496 : add "clickable" css class to editable objects Feb 18, 2018
.npmrc bump ember-sinon-qunit, lockfile stuff Apr 5, 2018
.snyk Snyk updates Apr 19, 2017
.stylelintrc Fix stylelint issues (#1308) Nov 29, 2017
.template-lintrc.js enable self-closing-void-elements and html-comments Sep 28, 2016
.travis.yml use recommended travis settings Jan 10, 2018
.watchmanconfig Upgraded ember-cli to 1.13.13 Nov 24, 2015
CHANGELOG.md Version 1.0.0-beta May 18, 2017
CODE_OF_CONDUCT.md Adding a code of conduct to the project Feb 11, 2017
Dockerfile fix docker for windows Feb 25, 2018
LICENSE Initial commit Mar 28, 2014
Makefile remove mentions of phantomjs Jan 11, 2018
ProjectManager.js don't scan node_modules Jan 2, 2015
README.md remove bootstrap script Mar 3, 2018
bower.json ember 2.11 from npm Jan 25, 2018
docker-compose.yml enable autoreloading in docker-compose.yml Nov 30, 2017
ember-cli-build.js upgrade to 2.18.2 Mar 29, 2018
index.js Add file to use prod dir as express static route. Feb 17, 2016
package.json chore(package): update qunit-dom to version 0.7.0 Jul 13, 2018
sample-data.txt Changed "gender" to "sex" Feb 23, 2016
testem-electron.js upgrade to ember-electron 2 Apr 11, 2017
testem.js exam May 6, 2018
yarn.lock Add `ember-exam` dependency May 6, 2018

README.md

HospitalRun frontend

Ember frontend for HospitalRun: free software for developing world hospitals

Build Status CouchDB

To run the development environment for this frontend you will need to have Git, Node.js, Ember CLI, Bower, and CouchDB installed.

Table of contents

Contributing

Contributions are welcome via pull requests and issues. Please see our contributing guide for more details, including a link to join our project Slack.

Installation

To install the frontend please do the following:

  1. Make sure you have installed Git.
  2. Make sure you have installed Node.js. Versions 6.0.0 and higher should work. We recommend that you use the most-recent "Active LTS" version of Node.js.
  3. Install ember-cli latest: npm install -g ember-cli@latest. Depending on your npm permissions you might need root access to install ember-cli.
  4. Install bower: npm install -g bower.
  5. Clone this repo with git clone https://github.com/HospitalRun/hospitalrun-frontend, go to the cloned folder and run
npm install
bower install
  • Note: If you just want to use the project, cloning is the best option. However, if you wish to contribute to the project, you will need to fork the project first, and then clone your hospitalrun-frontend fork and make your contributions via a branch on your fork.
  1. Install and configure CouchDB:
    1. Download and install CouchDB from http://couchdb.apache.org/#download.
    2. Start CouchDB:
      1. If you downloaded the installed app, navigate to CouchDB and double-click on the application.
      2. If you installed CouchDB via Homebrew or some other command line tool, launch the tool from the command line.
      3. If you're stuck with the installation, check out the instructions published here: http://docs.couchdb.org/en/1.6.1/install/index.html
    3. Verify that CouchDB is running by successfully navigating to 127.0.0.1:5984/_utils. If that fails, check the installation guide for CouchDB: http://docs.couchdb.org/en/1.6.1/install/index.html.
    4. Create admin user:
      1. If you are running CouchDB 1.x:
        1. If you have just installed CouchDB and have no admin user, please run ./script/initcouch.sh in the folder you cloned the HospitalRun repo. A user hradmin will be created with password test.
        2. If you already have a CouchDB admin user, please run ./script/initcouch.sh USER PASS in the folder you cloned the HospitalRun repo. USER and PASS are the CouchDB admin user credentials.
      2. If you are running CouchDB 2.x (experimental):
        1. HospitalRun currently does not fully support CouchDB 2.x, but you are welcome to try using it. Most functionality should work but currently creating and/or editing users does not work in CouchDB 2.x. See https://github.com/HospitalRun/hospitalrun-frontend/issues/953 for more details.
        2. If you have just installed CouchDB and have no admin user, please run ./script/initcouch2.sh in the folder you cloned the HospitalRun repo. A user hradmin will be created with password test.
        3. If you already have a CouchDB admin user, please run ./script/initcouch2.sh USER PASS in the folder you cloned the HospitalRun repo. USER and PASS are the CouchDB admin user credentials.
  2. Copy the server/config-example.js to server/config.js in the folder you cloned the HospitalRun repo. If you already had a CouchDB admin user that you passed into the couch script (./script/initcouch.sh USER PASS), then you will need to modify the couchAdminUser and couchAdminPassword values in server/config.js to reflect those credentials. (Note: If on Mac, you need to make sure CouchDB can be run. See How to open an app from a unidentified developer and exempt it from Gatekeeper.)
  3. Verify that CouchDB is running by visiting: http://127.0.0.1:5984/_utils/#login and logging in with the with the credentials you just created from steps 6 and 7.
    • If the page returns an error or 404:
      • Run make serve, it will start couchdb, install npm dependencies and start the server.
      • Or start the application from your applications folder.

Running the application

To start the frontend please do the following:

  • Start the server by running npm start in the repo folder. If npm start doesn't work for you, try ember serve as an alternative.
  • Go to http://localhost:4200/ in a browser and login with username hradmin and password test.

Running with Docker

Running With Docker Engine

To run HospitalRun with Docker please do the following:

  • Go to https://docs.docker.com/engine/installation to download and install Docker.
  • Clone the repository with the command git clone https://github.com/HospitalRun/hospitalrun-frontend.git.
  • Change to the hospitalrun-frontend directory cd hospitalrun-frontend.
  • Build the HospitalRun image with docker build -t hospitalrun-frontend ..
  • Execute docker run -it --name couchdb -d couchdb:1.7.1 to create the couchdb container.
  • Execute docker run -it --name hospitalrun-frontend -p 4200:4200 --link couchdb:couchdb -d hospitalrun-frontend to create the HospitalRun container.

Running with Docker Compose

To run HospitalRun with Docker-compose please do the following:

Accessing HospitalRun with Docker Toolbox

If you are running with Docker Toolbox you will have to run the following commands to get the IP of the docker machine where hospitalrun-frontend is running with the following:

  • Run the following command to get the ip of the docker machine that the image was created on docker-machine ip default.
  • Go to http://<docker-machine ip>:4200 in a browser and login with username hradmin and password test.

Accessing HospitalRun with Docker or Docker-compose

If you are not running with Docker toolbox, please do the following:

  • Go to http://localhost:4200 in a browser and login with username hradmin and password test.

Troubleshooting your local environment

Always make sure to git pull and get the latest from master.

The app will usually tell you when something needs to happen (i.e. if you try to npm start and npm is out of date, it will tell you to run npm update. But If you run into problems you can't resolve, feel free to open an issue, or ask for help in the HospitalRun Slack channel (you can request an invite here).

Otherwise, here are some tips for common issues:

The browser shows only a loading dialog

Is your server (still) running? Is CouchDB running? If not, that's probably the issue.

My changes aren't showing up in the browser

Try a browser refresh cmd + r.

Loading sample data

If you would like to load sample data, you can do so by navigating to Load DB under the Administration menu. You should see the following screen:

Load DB screenshot

Click on Choose File and select the file sample-data.txt which is included in root directory of the repo at sample-data.txt. Next, click on Load File. When the database load is complete a message will appear indicating if the load was successful.

Testing

Fixtures for Acceptance Tests

Fixtures are PouchDB dumps that are generated with pouchdb-dump-cli.

To create a fixture, run pouchdb-dump http://localhost:5984/main -u hradmin -p test | cat > tests/fixtures/${name_of_fixture}.txt.

To use a fixture, use runWithPouchDump(${name_of_fixture}, function(){..}); in your acceptance test. For example:

test('visiting /patients', function(assert) {
  runWithPouchDump('default', function() {
    //Actual test code here
    authenticateUser();
    visit('/patients');
    andThen(function() {
      assert.equal(currentURL(), '/patients');
    });
  });
});

Running Tests Locally

To run the test suite locally while developing, just run ember test from the project root.

Tests will also run automatically via Travis CI when you push a branch to the repository or a pull request. You can view output by going to the Travis test status from the Pull Request merge box.

Contributing

Again, contributions are welcome via pull requests and issues. Please see our contributing guide for more details.

Seriously, please read the Contribution Guide.

Start Coding

To start coding and understand the frameworks, concepts and structure of the project, please read: Contribution Guide: Start Coding.

Further Reading / Useful Links

Experimental

Make

If you are willing to try using make, ensure you have installed Git, Node.js and CouchDB (steps 1, 2 and 7 above), you may skip the rest. This requires CouchDB in the path to work correctly.

  • Run make serve, it will start CouchDB, install npm dependencies and start the server.
  • Run make all to run all tests and build the app.
  • Look into Makefile to figure other targets available.

Cloud 9 Development Environment

Documented in the project wiki

Frequently Asked Questions

Q: What is the difference between hospitalrun-frontend and hospitalrun-server?

Frontend is the primary repository and is used for development purposes. Server is the node backend, if you are looking to run HospitalRun in a clinical setting, you should use server.