Giter VIP home page Giter VIP logo

medic-docs's Introduction

The Core Framework of the Community Health Toolkit (CHT)

This is the repository of the CHT Core Framework, a technical resource of the Community Health Toolkit (CHT) contributed by Medic.

Medic is a nonprofit organization on a mission to improve health in the hardest-to-reach communities through open-source software. Medic serves as the technical steward of the Community Health Toolkit.

For the latest changes and release announcements see our release notes. Our exact support matrix (including older app versions) can be found in our docs.

Overview

The CHT's Core Framework is a software architecture that makes it faster to build full-featured, scalable digital health apps that equip health workers to provide better care in their communities. To learn more about building an application with the Core Framework, visit our guide for developing community health apps.

The Core Framework addresses complexities like health system roles and reporting hierarchies, and its features are flexible enough to support a range of health programs and local care provider workflows.

Mobile and web applications built with the Core Framework support a team-based approach to healthcare delivery and management. Health workers can use SMS messages or mobile applications to submit health data that can then be viewed and exported using a web application. These web applications are fully responsive with a mobile-first design, and support localization using any written language. They can be installed locally or in the cloud by setting up the individual components or as a Docker container.

For more information about Medic's architecture and how the pieces fit together, see Architecture Overview. For more information about the format of docs in the database, see Database Schema. For more information about the SMS exchange protocol between webapp and gateway, see Message States.

Using the Core Framework

If you are a developer looking to contribute to the Core Framework itself, you should follow the development setup instructions.

If you wish to evaluate the Core Framework, or you are a developer looking to create or modify applications built with the Core Framework, you can instead follow the easy deployment instructions, which will get the latest stable release running locally via Docker.

You will need to also familiarise yourself with cht-conf, a tool to manage and configure your apps built using the Core Framework. A brief guide for modifying the config is available alongside the config. A more detailed guide is available in cht-docs.

Supported Browsers

Currently, the latest versions of Chrome, Chrome for Android and Firefox are functionally supported. We do not support Safari (unreliable implementations of necessary web APIs) and the generic android browser (unreliable implementations in general). Our webapp code, which includes any code written as configuration, is still ES5. Our exact support matrix (including older app versions) can be found in our docs.

Contributing

The Core Framework of the Community Health Toolkit is powered by people like you. We appreciate your contributions, and are dedicated to supporting the developers who improve our tools whenever possible.

To setup a development environment to contribute to the Core Framework follow the development instructions.

First time contributor? Issues labeled help wanted are a great place to start.

Looking for other ways to help? You can also:

  • Improve documentation. Check out our style guide here
  • Review or add a translation
  • Find and mark duplicate issues
  • Try to reproduce issues and help with troubleshooting
  • Or share a new idea or question with us!

The easiest ways to get in touch are by raising issues in the medic Github repo or joining our Community Forum.

For more information check out our contributor guidelines.

Build Status

Builds brought to you courtesy of GitHub Actions.

Build Status

Copyright

Copyright 2013-2022 Medic Mobile, Inc. [email protected]

License

The software is provided under AGPL-3.0. Contributions to this project are accepted under the same license.

medic-docs's People

Contributors

1yuv avatar abbyad avatar alixemden avatar alxndrsn avatar bedengaruko avatar benkags avatar billwambua avatar browndav avatar cescagarrett avatar derickl avatar dianabarsan avatar eljhkrr avatar estellecomment avatar garethbowen avatar hareet avatar henokgetachew avatar isaacholeman avatar kennsippell avatar mandric avatar michaelkohn avatar mukesh2006 avatar n-orlowski avatar newtewt avatar nomulex avatar rosteve avatar ryanramage avatar scdf avatar smbuthia avatar tookam avatar vimemo avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

medic-docs's Issues

Remove medic-docs content transitioned to doc new site

All content from medic-docs that has been moved to the new doc site should be removed from medic-docs to avoid confusion and stale content.

Once all content has been removed we can see discuss what to do with the remaining content (eg move it, or archive repo)

Review and integrate currently available documentation into the new doc site for initial launch

We have compiled a comprehensive list of existing CHT documentation. It needs to be reviewed and integrated into the revised site index (#194). During the review process we should:

  • de-duplicate existing resource information
  • work out which existing documentation resources can be ported directly to the documentation site
  • identify required improvements to existing documentation resources before they can be added to the documentation site

bootstrap dropdown fails, breaks sections dropdown

click around a bit through the docs and eventually bootstrap dropdown fails proper initialization. you get a 'document not found' error and console msg:

Uncaught TypeError: Cannot read property 'fn' of undefined :5984/kujua-docs/_design/kujua-docs/_rewrite/jam/bootstrap/js/bootstrap-dropdown.js:78

Document how to configure multimedia elements in forms

We support creating Enketo forms with embedded images, audio, and video but we don't have any documentation on how to configure it.

Update this page with a section on multimedia, and include:

  • How to configure it.
  • What encodings are supported for each media type. We use HTML5 rendering so these will be whatever the browser supports.
  • What encodings are recommended, eg: better compression rates, better hardware acceleration for video decoding, etc.
  • Recommendations for file sizes, particularly for video.
  • Recommendations for image and video dimensions (eg: there's no point having lots of pixels and then scaling it down to fit on the phone screen).
  • And anything else you can think of.

To get started have a look at the multimedia demo form.

Task configuration documentation

Including

  • an overview of nools and the TaskGenerator
  • inputs to the rules
  • expected outputs from the rules, including how actions work
  • utility functions available on the Utils class

API / Interoperability documentation

As a partner, I need clear documentation on how to interact with CHT data from outside applications so I can extend the platform by integrating with complimentary tools.

Ideas for documentation that would be useful:

  • API endpoints
  • convention(s) followed (ie REST)
  • rate limiting on data requests
  • authentication requirements
  • data formats and translatable values (ie language, numerical, date)
  • testing protocol
  • Identifier schemes for mapping metadata objects
  • user profile requirements for adding/deleting objects
  • validating payloads and data element constraints

cc: @ranjuts @kennsippell

"Creating a blank project" documentation not clear for initialise-project-layout

In the Creating a blank project documentation, it gives a few commands to run, but the third command does not work as written (at least for me). I think it's fine to assume a specific scenario ( local, for example) and I think we should update the documentation to be more clear.

mkdir cht-app-tutorials
cd cht-app-tutorials
medic-conf initialise-project-layout

When I did medic-conf initialise-project-layout, it gave me an error.

Screen Shot 2019-11-11 at 12 55 06 PM

Screen Shot 2019-11-11 at 12 57 16 PM

If I do medic-conf --local initialise-project-layout it worked fine (with a few warnings).
Screen Shot 2019-11-11 at 12 55 58 PM

CHT documentation site telemetry implementation

Gaining insights into how users engage with the CHT documentation site will help us to determine user uptake, what self-help information users reference most frequently, and which information sets are largely disregarded. Since the documentation site is an online-first resource, implementing telemetry should be straight forward, using an off-the-shelf tool like google analytics. Relevant telemetry points include:

  • unique users
  • returning visitors
  • session length
  • page sessions (should be segmented by index sections #194)
  • keyword searches
  • bounce rate
  • click through rate to the support forum (contingent on #201) and other resources if added
  • geographic locations (may be relevant for #192)

Define documentation site functional requirements

The CHT has an initial draft of the CHT documentation site (and GH repo) up and running. It uses Jekyll, primarily because of the built-in integration with Github Pages. The template is cumbersome, especially for the index, and not well suited to our needs. We are experiencing some challenges with layout, missing key functionality, etc, and have decided to explore alternative tooling options.

Documentation site requirements and priorities are below. Please add to this ticket

Easily navigable

  • table of contents/index (must have)
  • hierarchy- headings and subheadings. Link to any heading (must have)
  • Same page appear multiple times in table of contents (very nice to have)
  • Search for both google and internal doc site (very nice to have)
  • Tagging for related or prerequisite docs (must have)
  • Some kind of app versioning support
    *Option 1 - Annotation to indicate features added/removed by version (must have)
    *Option 2 - Some sort of tooling support for changes between versions (not required at this time)

Content types support

  • Markdown (must have)
  • Text / Functional description (must have)
  • Multimedia- screenshots, gifs, video demos, step-by-step tutorials (must have)
  • Code blocks (must have)
  • Tables (must have)
  • Tutorial modules- bite-sized education/learning opportunities pulling from multiple pieces of information across the platform (nice to have)

Embedded assistance - integrate with CHT technical support forum - disqus platform (very nice to have)

Information portability to complimentary platforms, and ownership/control (very nice to have)

Support for language translation (must have; open to 3rd party services)

Usable offline (nice to have)

Easy to contribute regardless of technical capabilities should be friendly for all team members to contribute. Github requires some training, but not insurmountable. Are there other good options to consider? (must have)

Single sign-on (OAuth) (very nice to have)

Update Windows development instructions

@TamorHaabmets reports:

I tried it out and i had some permission problems when running grunt. Error message was:
tar EPERM: operation not permitted, futime
These two commands helped me out (insert them in your linux home directory).
sudo umount /mnt/c
sudo mount -t drvfs C: /mnt/c -o metadata,uid=1000,gid=1000,umask=22,fmask=111
More info:
https://stackoverflow.com/questions/56457844/tar-eperm-operation-not-permitted-futime

Investigate and update the instructions as needed.

cc @SCdF

Add configuration documentation used by tech-leads (and others)

Add configuration documents used mostly by tech-leads, most of which has been lying around in Google Drive.

Topics

1. AWS Instance Creation

  • Instance creation request using GitHub
  • Instance creation process

2. Medic Gateway

  • List of phones that work well with Medic Gateway
  • Configuring Medic Gateway
  • Troubleshooting Medic Gateway

3. Medic Collect

  • XLSForms
  • Pyxforms
  • Building Medic collect apk
  • Troubleshooting

4. SIM Apps

  • Creating sim app forms
  • Creating converting sim app forms to trb files
  • Installing trb files to sim cards
  • Troubleshooting

5. Medic Web App Configuration

  • App settings configuration
  • Uploading new/edited forms to the webapp
  • Uploading new users to web app
  • Troubleshooting

6. Klipfolio Analytics

  • Klipfolio functions
  • Klipfolio creating datasources
  • Postgresql - couch2pg
  • Troubleshooting

7. Medic XLS and Nitty Gritty

  • Medic XLS
  • Medic Nitty Gritty

8. Scripts

  • User creation
  • Contact deletion

Accessing and interpreting client-side telemetry

As a product team member, I want clearer definitions of client-side telemetry data access and output, so that I can effectively measure how our product performs and how users are engaging with features.

Requesting documentation on:

  • Which data sets are available for queries and when they became available (ie earliest possible query date)
  • How to perform client-side telemetry SQL queries
  • Instance telemetry clarification on data fields, measurement units, and frequency of data availability
  • Aggregate telemetry clarification on data fields, measurement units, and frequency of data availability

This is a follow-up to medic/medic-projects#6882

Finalize documentation site index and ontology

The CHT documentation site needs to be easily navigable so users can quickly find the information they need. As an initial step to answering this need, we created an overview of features and functionality of the CHT.

As a next step, we are looking to integrate this information into the documentation site, and build it out further to incorporate full feature tours, app building guidelines, key workflows, and administrator details. Additionally, we would like to define relation between the concepts wherever possible to make it easily navigable by users.

We have create this draft outline to capture current thoughts. It needs to be finalized to move forward with buildout of the documentation site.

Gap analysis of existing documentation at time of improved site launch

Once currently available documentation is integrated into the site index (#195), we should do a complete review to identify gaps in key information. This issue is to capture documentation resources that are missing altogether at the time of improved site launch. Missing resources should be noted within the index structure or added to this issue using the format: [index section] - [subsection] - [description of missing information].

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.