Bahmni EMR follows a typical web application client-server architecture.
Bahmni EMR is made of multiple pieces of client-side code, see below. The main web app is delivered through the Bahmni Apps project.
Bahmni EMR is articulated around so-called 'apps', with each app being accessible via its own tile on the main landing dashboard:
The code for each app can be found in the corresponding subfolder based on the app name in openmrs-module-bahmniapps/ui/app/<appname> (unless it is a custom display control).
The service layer (*Service.js) transacts with the server via either REST or other web services APIs provided by the backend modules that are deployed in /opt/openmrs/modules on the server.
The server side artifacts of Bahmni EMR is made of Openmrs Core plus a set of OpenMRS modules.
Technologies, Tools, Frameworks: Java, MySql, Maven, Spring, Hibernate.
To understand the server side code we need to understand the OpenMRS modular architecture. Here are few links which can help:
Github Repo for openmrs-core: https://github.com/openmrs/openmrs-core
Each module usually corresponds to code repository in one of following github organisations:
The modules that that are part of the default Bahmni distribution can be found here.