Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

openIMIS Initiative has adopted the Contributor Covenant as its Code of Conduct, and we expect are asking project participants to adhere to it. Please read the full text here.

Issue Tracker

Issue tracking

Please ensure that we got enough information to make

Open Development

All work on openIMIS happens directly on GitHub. Both core team members and external contributors send pull requests which go through the same review process.

...

Code that lands in develop must be compatible with the latest stable release. It may contain additional features, but no breaking changes. We should be able to release a new minor version from the tip of develop at any time.

Architectures to follow to design modules

Backend (API) Target Architecture

https://openimis.atlassian.net/wiki/spaces/OP/pages/586448901/Frontend+s+Target+Architecture

Data Target Architecture

Code convention  

Variables

All variables must be named in the English language. Wherever possible, use Glossary names: Glossary. If you find different uses of a word, feel free to correct or comment the glossary.

JSON (mirror the guidelines for naming JavaScript identifiers)

  • Property names should be meaningful names 

  • Property names must be camel-cased, ASCII strings

  • The first character must be a letter

  • Subsequent characters can be a letter, a digit, an underscore

  • Reserved JavaScript keywords should be avoided 

...

Translations

Translations are managed through Lokalized. Translation Management platform

Coding standard used

backend

Django contribution: https://docs.djangoproject.com/en/dev/internals/contributing/

Python Style Guide: https://www.python.org/doc/essays/styleguide/

frontend

ReactJS contribution: https://reactjs.org/docs/how-to-contribute.html

Material Design: https://material.io/develop/android/docs/contributing/

JavaScript Standard Style Guide: https://github.com/standard/standard

Mobile app

Google Java Style Guide: https://google.github.io/styleguide/javaguide.html

Python Google JavaScript Style Guide: https://google.github.io//www.python.org/doc/essays/styleguide/Gnome todo: https://gitlab.gnome.org/GNOME/gnome-todo/blob/master/doc/CONTRIBUTING.mdstyleguide/jsguide.html

Getting started

Front end module are required to change the interface, it doesn’t mean that you need a matching backend module; e.g a portal for some user

https://github.com/openimis/openimis-fe_js/blob/master/README.md

a template module can be found here https://github.com/openimis/openimis-fe-template_js

Backend is required to manage a group of entity; e.g. claim and claim item (item part of the claim).

https://github.com/openimis/openimis-be_py/blob/master/README.md

No template is available because the Django “create module” is enough to start.

Document your architecture

if possible, user and other developers will appreciate such documentation in your code repository

  • database diagram: database.txt/database.png

    • any kind of documentation helps, a free and simple way is to use plantuml https://www.planttext.com/

    • Please don’t call your tables with generic name like “Item“ or “flags“ …

    • Please add your module name as prefix of you table.

  • workflows / use case covered by your module: workflows.txt

    • AS a <role> I <do_action> so I get<result>

Questions

Global openIMIS guidelines or per programming language?

...