Project: Setup Improvements

Project Description


Currently in the LibreHealth EHR application we a have system setup, but it is not intuitive. This project aims to develop a robust setup for the EHR application, which solves the issues listed here.

The main motive is to have a migration model for the database, i.e., if changes in one version of database is not functional, we should be able to migrate to lower/previous version.

This setup application should be independent of parent application (EHR), means as soon as .setup / setup.exe is executed, it should open a window, with all self explanatory steps (like Database configuration), and after executing final step, EHR application should launch in browser.


  • Join our community and introduce yourself here.

  • Join our chat for live feedback and access to a larger team of mentors here.

  • Familiarity with the Librehealth EHR codebase.

Technical requirements

  • PHP/Laravel

  • MySql

  • Javascript/Jquery


  • Basic/Recommended : Setup should be functional and should implement a migration model, fetching an updated database from a remote repo (if any).

  • Advanced : Setup should be functional and implemented as separate repo, which will pull the code from repo, configure and install the database and the application. It should also have feature of update, which when executed, will update the fetched code and will setup database accordingly.


  • ER diagram for database change.

  • Work should be submitted as PR to our github repo.

  • User documentation.

  • Developer documentation. (This can be done in code itself, with proper explanation of function, its input parameters and return value.)

Mentors : @tony @aethelwulffe @teryhill

Rolling back database changes is a little scary, however one idea on how to support this would be to specify changes as “metadata” instead of SQL queries. For example… added column NewField of Type VARCHAR(255) to patient_data.

It might be possible to make changes to the schema in development and then use a tool like this to make comparisons.

I would really like us to come up with some elegant approach…and get to work on it! I wanna play. It would be great to have something that really works well…like…anything at all!

hey got this already and working hard to see it done . and in a perfect way. I am currently following the setup we have and i see things like an Installer class and site id will love to know in details more about that cant find such in the documentation

I have a doubt should I work on this topic now??

@muarachmann Any progress?

@sandipbhuyan If you wish, you can. :slight_smile:

Yes did some revamping on the setup procedure. now found in /modules/setup according to @aethelwulffe

  • Also verified php version and mysql version of user and checks if it meets required conditions
  • If good but not optimal, demands upgrade of suitable versions
  • If bad doesnt allow user to continue to the setup until he follows instructions found in the file
  • Looking forward to add stuffs like roll back changes that is after database has been created if user wishes to cancel the by clicking back or cancel it undoes changes made in the databse by setup
  • Also looking forward in creating a creen for custom settings like : theme-color , language , hospital name , etc
1 Like

I’m interested in this project.

Nice! I still think getting the one-directional install done will be a great step, and rollback function development will benefit from the complete model.

Continue discussion in the EHR category.