All HospitalRun code lives in a single repository, an architecture generally called a monorepo. This repository holds all of HospitalRun's open source projects that lived in their own separate Github repos: frontend, server and components. Built with React, Node, PouchDB/CouchDB and using offline first design, we're working to deliver an HIS system that makes usability the #1 requirement, is built specifically for developing world requirements, and seeks to give back time to patient care.
Version 1.0.0-beta is no longer supported. Version 2 is currently under development.
Question | Answer |
---|---|
"I want to help" | Read this paragraph |
"I have a question" | Join to our Slack Workspace |
"I found a bug" | Open an issue |
"How do I push/commit changes to the repo?" | Follow these steps |
"How can I deploy 1.0.0-beta?" | Follow this guide |
"I’d like to contribute but don’t know where to start." | As a first thing first you should read this document from GitHub |
"What if I am not confident enough even to approach a “Good first issue”?" | We talked about it here |
- Project Structure
- Contributing
- Provide feedback
- Toolchain
- Working on an Issue
- Getting Started
- Pull all submodules
- Commiting
- Updating the monorepo structure
- Application infrastructure
Submodules | Progress status | Build status | Coverage status |
---|---|---|---|
Components | |||
Frontend | |||
Server | |||
Core | |||
CLI |
Last Update: 7 Mar 2020
Interested in contributing to HospitalRun? There are many ways that you can get involved:
- Try the application
- Review and update project documentation
- Contributing to translations
- Contributing to the source code
- Request new features and report bugs
- Sponsor the project
HospitalRun is a big and complex project, since our goal is to develop a full-fledged Hospital Information System. There are many areas where you can contribute and helps us build the best possible software: documentation, community management, helping users to get on board and so on. Check our website for more informations and feel free to open an issue to describe how you can be useful to the project!
We recommend the use of nvm for the management of different versions of Node, and yarn for a fast, reliable, and secure dependency management. We suggest to install yarn with npm i -g yarn
.
Use these commands to start using the monorepo. The following commands require that your GitHub account has SSH access enabled.
git clone [email protected]:HospitalRun/hospitalrun.git
cd hospitalrun
git submodule update --init --recursive
yarn
yarn workspaces run build
# Do some coding then commit with
npx git-cz
In order to optimize the workflow and to prevent multiple contributors working on the same issue without interactions, a contributor must ask to be assigned to an issue by one of the core team members: it's enough to ask it inside the specific issue.
Use these commands to update all submodules and use the last available commit.
git submodule update --recursive --remote
yarn upgrade // Update all dependencies automatically
yarn update // This is similar to npm-check interactive update mode. It provides an easy way to update outdated packages.
This repo uses conventional commits and semantic-release. Once you have changes staged
you can run git cz
from the root directory in order to commit to the proper standards.
- Staging all pending changes. Es:
git add .
- Use the following command:
yarn commit
- Updates remote refs using local refs. Es:
git push
yarn commit-frontend
yarn commit-server
yarn commit-components
yarn commit-cli
yarn commit-core
yarn commit-docs
You must follow the following rules:
- Commit description must always start with a capital letter.
- Always use a scope. Here are some examples:
Generic
setting
ci
deps
readme
devops
system
core
testing
cli
release
lifecycle
Monorepo specific
monorepo
package
release
lifecycle
workspace
Use these commands to add a new package after adding a submodule.
git submodule update --remote
git add ./packages
yarn upgrade
npx git-cz
A visual representation of the functionality of all HospitalRun modules and their interactions.
Stefano Casasola |
Michael Daly |
Riccardo Gulin |
Grace Lau |
Jack Meyer |
Matteo Vivona |
---|
John Kleinschmidtr |
Joel Worrall |
Joel Glovier |
---|
Released under the MIT license.