- This repository contains most of the frontend code for the Bahmni EMR. It is written in AngularJS with only the Form viewer part utilising React.
- See the sub-folder:
ui/app/
to understand which all modules of the EMR UI are contained in this codebase. - Regarding the decision of migrating away from AngularJS and instead use React, please read this blog writeup: Bahmni EMR - 1 M lines of code
- This code needs help in migrating to React. If you are interested in helping, please ping the
Bahmni team on Slack (
#community
channel). - All Epics, Stories, Bugs, etc are tracked in JIRA.
- To Run Bahmni locally you will need a Vagrant setup. See this documentation.
- This build requires Node, npm, yarn, grunt and compass.
- You can see the travis-ci build to understand the build commands that get executed.
- You can also see the go-cd build Bahmni_MRS_v0_93 pipeline to see in-depth build steps.
These steps need to performed ONLY the FIRST TIME you set up this code.
- Install node/npm (node version: 10.11.0). Preferably use nvm, so that you have control over which project uses which version of node. See:
- Install Yarn:
npm install -g yarn
- Install Grunt:
npm install -g grunt-cli
- Install Compass:
- Compass compiles SASS/SCSS into CSS.
- Requires ruby (It's recommended to install ruby also using rvm. See install rvm with ruby).
- Ruby version: 2.6.6
- Once ruby is installed, you can install compass using:
gem install compass
Run these commands from within the ui
sub-folder.
yarn install
yarn ci
(will internally trigger grunt)- If build is successful, the
dist
folder has the set of files to be deployed in Apache (or in Vagrant).
- You can also sym-link the
/var/www/bahmniapps
folder in Vagrant to{CODE_DIR}/ui/app/
folder so that JS changes are reflected immediately.
- To be able to debug Bahmni frontend please read this post: Debugging AngularJS
- If you are brand new to AngularJS, this is a good intro video: Youtube: 60 min overview of AngularJS Fundamentals