Bahmni Connect Development

Bahmni Connect front end is completely based off AngularJS. It doesn't have any server component to it. Instead, it calls the REST API of OpenMRS/Bahmni.

AngularJS requires the following tool tree installed on your development machine.

  • Xcode (only for mac)

  • Ruby

  • Node v10.11.0

  • Yarn
  • Project specific node modules

Use following instructions (the exact mechanism for doing step 1 would depend on the OS you are using, we have mentioned for mac).

  1. Install Xcode and yarn
  2. Install the following modules required globally (This is a one time task)

    gem install compass
  3. Checkout the bahmni-connect repository on GitHub

    You would have to run the following commands for Bahmni Connect front end project. Run these commands from the ui folder under Bahmni Connect front end project

    # Install dependencies (Installed node dependencies into node_modules. UI dependencies are installed in node_modules/@bower_components and create a soft link to app/components).
    yarn install
  4. Checkout the bahmni-offline repository on GitHub. (Only require for android app)
  5. Run this command from Bahmni connect front end project folder for creating a symlink into your vagrant /var/www:

    # links dist folder
    ./scripts/vagrant-link.sh

Chrome App (PWA):

PWA only works for  secure connection. That means, you need https connection to use PWA. Also, Google Chrome is the only recomended browser to use PWA.

  • To bundle PWA, run the following commands from ui folder under Bahmni Connect front end project

    # To genearte css files
    yarn compass
    
    # To minify and bundle PWA related source code
    yarn chrome
    
    # To generate service workers files
    yarn sw
    If you want to debug Connect PWA on your local machine, you should run "yarn devchrome" which will put unminified js files onto the "bahmni-connect/ui/dist/" location.
  • To access bahmni-connect apps on chrome hit https://<host name>/bahmni-connect


Android App:

  • Checkout the bahmni-offline repository on GitHub. (Only require for android app)
  • Follow the steps recommended in the README.md file of bahmni-offline project
  • To bundle Android app, run the following commands from ui folder under Bahmni Connect front end project

    # To genearte css files
    yarn compass
    
    # To minify and bundle android app related source code
    yarn android
  • Copy dist folder of bahmni-connect/ui folder to bahmni-offline/android/www/app
  • Run the following command from bahmni-offline/android to install the android app on the device (The device should be connected to the system).

    ionic run android