If I were already familiar with web app development, and the Java and Tomcat stacks in particular, I would navigate to something like:
First visit: http://openmrs.org/
Decide I want to experiment: http://openmrs.org/download/
Now, I am confronted with several choices. Here I think the Wiki is muddled. There are multiple locations where you can download the standalone WAR. The categories themselves are a bit confusing, and there is no call-out at all that if you want to use the Reference Application (which by now is probably the default, that you have to do additional work). If this page could be reorganized, I think it would go:
— Proposed new Download page ----
New to OpenMRS? Want to test drive the features? Visit http://openmrs.org/demo for our online demonstrations.
Want to install OpenMRS on your own server? If yes, please be aware that there are two versions: a standalone version for testing and a production version (see below) for installation at an actual site. Download a self-contained complete system at https://sourceforge.net/projects/openmrs/files/releases/OpenMRS_2.3.1/openmrs-standalone-2.3.1.zip/download.
Instructions for how to install the standalone addition are found here: [need link]
If you are planning to deploy to production, there are two components: the base platform (a standalone WAR) and the Reference Application (a collection of OpenMRS modules deployed to the base platform).
You must always install at least the base platform. This will include a limited user interface that you can customize and extend to your exact needs. Many sites will also prefer to have standard features to register patients, record vitals, enter visit notes, etc. The Reference Application contains these base features with an intuitive and extendable user interface.
Note the standalone application contains the Reference Application as do the online demos. The production ready downloads assume you have an application server (typically Tomcat or Jetty) as well as a relational database (typically MySQL) that you will set up per the installation instructions. You also have the option to host OpenMRS in the cloud (such as on AWS or bundled as a Docker container).
Download the base platform here: http://sourceforge.net/projects/openmrs/files/releases/OpenMRS_Platform_1.11.5/openmrs.war/download
Instructions for installing the base platform are here: https://wiki.openmrs.org/display/docs/Installing+OpenMRS
Download the Reference Application here: http://sourceforge.net/projects/openmrs/files/releases/OpenMRS_2.3.1/openmrs-2.3.1-modules.zip/download
Instructions for installing the Reference application are here: https://wiki.openmrs.org/display/docs/Reference+Application+2.3
Remember that the base platform must be completely installed before you proceed to install the modules in the Reference Application.
Confused or need help? Visit http://talk.openmrs.org for answers to your questions on our Forums.
Welcome to OpenMRS!
— End of Download Page —
Then there is general confusion on where to link for installation. IMO, it would make sense to have “Install” as a top level item on openmrs.org itself. Ideally, the “Download” menu option would have two items: Get Open MRS for Free and Installation Instructions.
The installation instructions could still be on the Wiki, but there would be three sections:
- Installing the standalone version
- Install the Base Platform
- Install the Reference Application
The standalone version page should have a very prominent warning at the top “not for production use”. And then link to the Base Platform instructions for those interested in a full installation. The “Base Platform” page should have at the top a prominent warning that a more modern UI with more base features exists in the “Reference Application”, as well as a prominent reminder that the base platform must be installed first. Finally, the Reference Application page should have a very prominent warning that the base platform installation must be completed first.
Last item, which relates to my original question, the Reference Application should have a step whereby the demo data module is deleted and the application server restarted. (Alternatively, it would be better to just have a global property or something the user could set that would disable reloading by the demo module so uses don’t have to muck with the filesystem and restart). I think the base behavior should be to just load the data once, and then set a flag if the user wants to reload the old data, which would reset the flag again once the server re-applies the reference application data. This might also be nice when upgrading reference applications to a new version (i.e., don’t wipe out user data unless the flag is set, perhaps with a warning on screen that new data is available in this version of the reference application).
That’s a mouthful. Happy to do some of the edits described above. Let me know what you think.