1. Contribute to Software Source Codes

1.1. Code

In case you will notice inconsistencies in the HRIS System please folow the instructions below.

1.1.1. Reporting a Bug

Whenever you find a bug in HRIS, we kindly ask you to report it. It helps us make a better HRIS.

1.1.2. Reporting a Security Issue

If you find a security issue in HRIS please do not reveal the issue to the public, report it to the HRIS-Project Team via John F. Mukulu

For each report, we first try to confirm the vulnerability. When it is confirmed, the Team works on a solution following these steps:

  1. Send an acknowledgement to the reporter;
  2. Work on a patch;
  3. Write a post describing the vulnerability, the possible exploits, and how to patch/upgrade affected applications;
  4. Apply the patch to all maintained versions of HRIS;
  5. Inform the reporter of the Security Issue that the Issue has been resolved:


While we are working on a patch, please do not reveal the issue publicly.

2. Contribute to Documentation

Documentation is as important as code. It follows the exact same principles: DRY, tests, ease of maintenance, extensibility, optimization, and refactoring just to name a few. And ofcourse documentation has bugs, typos, hard to read tutorials, and more. Human resource for health information system 3.0. source code and documentation are hosted on github:

If you want to submit a patch, fork the official repository on GitHub and then clone your fork:

$ git clone git://github.com/YOURUSERNAME/hris-docs.git

Make your changes into the documentation, when you’re done create a pull request on github.

GitHub covers the topic of pull request in detail.

2.1. Contributing

Before contributing, you need to become familiar with the markup language used by the documentation.

HRIS Documentation uses reStructuredText as its markup language and Sphinx for building the output(HTML,PDF, etc...).

2.2. reStructuredText

reStructuredText “is an easy-to-read, what-you-see-is-what-you-get plaintext markup syntax and parser system”.

If you’re familiar with Markdown, be careful as things are sometimes very similar but different

  • Lists start at the beggining of a line(no indentation)
  • Inline code blocks use double-ticks(like this)

Quick overview on reStructuredText can be found on sphnix website A more detailed documentation can be found at reStructuredText website

2.3. Sphinx

Sphnix is a build system that adds some nice tools to create documentation from reStructuredText documents. As such, it adds new directives and interpreted text roles to standard reST markup.

Quick overview on setting your sphinx up for documentation can be found from matplotlib website, a more detailed documentation can be found at sphnix website

2.4. Testing Documentation

To test documentation before a commit:

  • Install Sphinx;
  • Run the Sphinx quick setup;
  • Install the Sphinx extensions (see below);
  • Run make html and view the generated HTML in the build directory.

2.5. Installing the Sphinx extensions

Download the extension from the source repository Copy the sensio directory to the _exts folder under your source folder (where conf.py is located) Add the following to the conf.py file:

# ...

# adding PhpLexer
from sphinx.highlighting import lexers
from pygments.lexers.web import PhpLexer

# ...
# add the extensions to the list of extensions
extensions = [..., 'sensio.sphinx.refinclude', 'sensio.sphinx.configurationblock', 'sensio.sphinx.phpcode']

# enable highlighting for PHP code not between ``<?php ... ?>`` by default
lexers['php'] = PhpLexer(startinline=True)
lexers['php-annotations'] = PhpLexer(startinline=True)

# use PHP as the primary domain
primary_domain = 'php'

2.6. Generating PDF Using rest2pdf

st2pdf user manual (you can simply refer to the “Sphinx” chapter) https://docs.google.com/viewer?url=http%3A%2F%2Fsphinx.pocoo.org%2Fsphinx-rst2pdf.pdf

Install rst2pdf

  • use your package manager (or)
  • pip install rst2pdf (or)
  • easy_install rst2pdf

Add rst2pdf to the list of extensions in conf.py:

extensions = ['rst2pdf.pdfbuilder']

This list will be empty if you accepted the defaults when the project was setup. If not, just append ‘rst2pdf.pdfbuilder’ to the list.

Add a pdf_documents variable to conf.py:

pdf_documents = [('index', u'rst2pdf', u'Sample rst2pdf doc', u'Your Name'),]

# index - master document
# rst2pdf - name of the generated pdf
# Sample rst2pdf doc - title of the pdf
# Your Name - author name in the pdf

For all supported options, please check the manual

Generate pdf:

sphinx-build -b pdf source build/pdf

The generated pdf will be in the build/pdf directory.

3. Financing the Open Source Project