Giter Club home page Giter Club logo

cht-docs's Introduction

Documentation for the Community Health Toolkit

CHT Documentation Site Build

About

This repo contains documentation for the Community Health Toolkit (CHT), and how to build digital health applications with CHT Core. This repository powers the CHT documentation site at docs.communityhealthtoolkit.org.

The documentation is built using Markdown pages, which can be converted into a navigable website using a static-site-generator. The Hugo static-site-generator is being used with the Docsy theme. To maintain portability, content should be written in plain Markdown with limited use of HTML, custom shortcodes, and modifications to the theme. Contributions should align with the documentation style guide.

Build dependencies

The documentation site uses Hugo including the extended version of Hugo (see .tool-versions file for specific version).

To proceed, please choose one of the three options below of Docker, native packages or using asdf then proceed to "Run Hugo" below to start your local instance.

For folks using asdf and native packages, be sure the correct hugo version is installed per .tool-versions file.

Docker

Running hugo locally using Docker is likely the easiest way to update the docs. You only need to ensure you have Docker and Docker compose installed.

The steps below will leave a hugo container on your system. If you're not going to edit docs for the foreseeable future, you can delete it with docker rm cht-hugo .

Native packages

If you'd like to install packages directly on your workstation, follow the installation instructions for your Operating System, and be sure to get the extended version. Most users will be able to simply install using their native package manager like brew, apt or snap.

asdf version manager

asdf is another way to manage hugo and golang versions for local development.

After installing asdf, run:

asdf plugin add golang
asdf plugin add hugo

Run Hugo

You can start your local CHT Docs instance by:

  1. Clone the cht-docs repo
  2. From the command line, navigate to the local directory where you cloned the repo
  3. To start hugo run:
    • hugo server for asdf and native packages OR
    • docker compose up for Docker compose
  4. Preview your site in your browser at: http://localhost:1313/
  5. As you make changes to the site, your browser will automatically reload your changes.

Any users who experience errors running hugo server, please see our Troubleshooting guide.

Link Checking [Optional]

We validate that all links on the docs site work (do not 404) using a tool called Muffet along with Actions. If you're creating a lot of new links, or editing a lot of existing links, you may optionally run Muffet locally before pushing your commits. Running Muffet locally can save time by exposing broken links before pushing a build since you can avoid waiting for the Action to run, finding you have a broken link, fixing it, and pushing a new change.

  1. Install Go as a prerequisite
  2. Install Muffet: go get -u github.com/raviqqe/muffet
    • If using asdf you need to reshim (asdf reshim golang)
  3. Ensure you've run hugo server so your local docs instance is reachable at http://localhost:1313/
  4. Test the links with the muffet.sh script. If you're in the root of this repo, that'd be: ./.github/scripts/muffet.sh

It should take about 60 seconds depending on your Internet connection. If Muffet returns no output, you have no broken links, congrats!

Note: The muffet.sh script here is the identical script we run on GitHub. If you simply run muffet http://localhost:1313 you will hit GitHub's rate limiting and get lots of 429's. Our script intentionally reduces concurrency and excludes some repetitive GitHub URLs.

Continuous Deployment

All changes to main branch run a GitHub action to first check for any broken links (per above) and then deploy to the documentation site: docs.communityhealthtoolkit.org

Upgrading dependencies

Hugo

The version of Hugo used to deploy the site is specified in .tool-versions.

(Note there is also a minimum version of Hugo required to deploy the site specified via module.hugoVersion in the config.toml file.)

See the Hugo Release Notes for documentation regarding what has changed in the new versions.

Docsy

The current version of Docsy is pinned in the go.mod file. To upgrade to a new version of Docsy, use the hugo mod get command as described in the Docsy documentation.

See the Docsy CHANGELOG for documentation regarding what has changed in the new versions.

cht-docs's People

Contributors

1yuv avatar abbyad avatar andrablaj avatar andy5995 avatar benmuiruri avatar binokaryg avatar cescagarrett avatar craig-landry avatar dianabarsan avatar esthermmoturi avatar garethbowen avatar helizabetholsen avatar ireneachola avatar jkuester avatar kennsippell avatar kitsao avatar latin-panda avatar m5r avatar maxdiz avatar michaelkohn avatar mrjones-plip avatar mrsarm avatar n-orlowski avatar newtewt avatar njogz avatar nomulex avatar nsitaula avatar phil-mwago avatar smbuthia avatar tatilepizs avatar

Stargazers

 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

cht-docs's Issues

PNC example implementation documentation

Postnatal care is a workflow deployed across 90%+ of CHT projects. We should provide a detailed example on the documentation site for implementing partner reference. Proposed structure of the documentation:

  • intro
  • problem being addressed
  • solution overview
  • user roles
  • reporting hierarchy
  • care / app workflow
  • impact metrics (or reference to related documentation)

cc: @helizabetholsen

Look into multilingual support for documentation site

Many of our project deployments are in locations where english is not the primary language. To improve relevancy of the documentation site for this audience, having a fully translated version available would be helpful. This issue is to detail exploration of multilingual translation support options. Even better if a single solution can be applied to other resources where product information is communicated - CHT forum, blog, and similar.

cc: @Fatoufall @maremegaye

Documentation: Supervisor Aggregate Targets

The new supervisor aggregate targets feature has been outlined and needs to be pulled into the documentation site by:

Other resources to reference:

Related content with # does not display

When adding related content to pages, we use:

relatedContent: >
  sectionfolder/subfolder/subfolder  (example: apps/reference/targets)

in the page header.

If the subfolder uses a # to anchor the location in a page (example: apps/reference/#targets), the related content does not display.

I would expect the related link to display regardless of whether it uses a # anchor or not.

iCCM example implementation documentation

Integrated Community Case Management is a workflow deployed across 60%+ of CHT projects. We should provide a detailed example on the documentation site for implementing partner reference. Proposed structure of the documentation:

  • intro
  • problem being addressed
  • solution overview
  • user roles
  • reporting hierarchy
  • care / app workflow
  • impact metrics (or reference to related documentation)

cc: @helizabetholsen

Clarify performance, capacity, technical capabilities to technical partners

Technical Partners need to roughly calibrate their expectations for the scalability/capacity of the cht-core.

We should attempt to communicate:

  1. Recommendations for server hardware based on project size
  2. How many users they can support on the hardware. How many documents per user
  3. How many users can replicate at once during heavy data migrations. Guidelines for scenarios where many users need to do initial replications.
  4. When should partners consider splitting an instance into multiple instances
  5. How long it should take users to initial replicate in ideal conditions (1000 docs should take x minutes/seconds)
  6. General system limits
  7. When designing a system how many documents is "healthy" for a user to have on their phone. When do users start getting warnings during replication?

Example of a TP having unclear understanding of the system capacity/performance expectations. medic/cht-core#6246

add hierarchy and corresponding test dataset example for a typical health system

new user feedback:

Understanding the hierarchy of a typical health system would have been good to know early on when working on the CHT. I ran into issues while developing apps because I was associating CHW’s on the Health Facility level, however the team informed me that CHW’s typically operate in their own Area, not on the Health Facility level. I’m still in the process of switching my instance around to better reflect this, and having CHW’s on an Area level instead of Health Facility level has made my tasks/targets behave slightly differently. Perhaps having more documentation on how to set up a test dataset and why things are set up the way they are would be helpful (I know there is a way to import test data into a local instance at the bottom of this page (Link 1), but having more instructions as to why things are where they are, as well as including CHW’s in this setup would be useful).

referenced documentation: https://github.com/medic/cht-core/blob/master/INSTALL.md

Capture best-practices for contact ordering (LHS) when using configurable hierarchies

When designing the names of your contact_types, consider the order they will appear in the LHS. Contact_types may be hard to change later.

  1. Sorting order for "hardcoded" hierarchies: Places are first *district_hospital, health_center, clinic), Persons are second by name.
  2. Configurable types are sorted alphabetically by type (places are not grouped first), and then by alphabetically by name
  3. For clear sorting behavior avoid mixing configurable types with hardcoded types

you as a configurer are responsible for this ordering, by consistently naming your types so their alphabetical sort is your desired view

Deployment team feedback on new documentation site

Deployment team members are primary users of the new documentation site. It would be helpful to gain feedback from a few team members who were not engaged in the initial build out of the site to understand potential areas for further improvement. Some of the areas that we would like specific feedback:

  • site navigation (ie finding the information you are looking for)
  • contributing and requesting changes to pages
  • quick guides
  • reference section
  • questions or needs that projects partners often request information for that are not addressed currently (or sub-optimally addressed) in the current site
  • things we can do to make it easier to get started
  • other general feedback

Update documentation for Gateway Phones

The gateway phones list we've used in the past to guide partners, with Medic tested devices, has devices that are slowly getting out of the market, if not out of the market already. https://github.com/medic/medic-docs/blob/master/configuration/gateway-phones.md. We tried to get Samsung J5 & J7 last week with no success. It's time to get that list updated! How have we done this in the past? Who procured the devices we used for testing?

Here we maintain a list of gateway phone models being used in Nepal:
https://docs.google.com/spreadsheets/d/1TRXsVSRJrFRMUnu7wBMKFlyWpVTkgjv2sdN-iZd_oGc/edit#gid=844258685&range=Q:Q

We can start with this list to update the GitHub documentation above.

https://medic.slack.com/archives/C0813CQRX/p1584362922081800

Improve documentation for outbound functionality - flow

The flow section of documentation makes no mention of how to view the queue, troubleshoot, or how to know that anything happened.

We should have some information like:

  • Where the task queue is (medic-sentinel database?)
  • How to find docs in the queue (type = 'task:outbound')
  • How/where to look in the logs if something goes wrong (logs?)
  • Where to look to verify transmission was successful (on the info doc, i think?) and what that doc will look like

Last modified date and commit is the same for all pages

The last modified date and commit is meant to be specific to each page, but showing as the same for all pages in the live deployed site.

image

The date and commit are correct for local builds, so this is likely due to our GH Action not getting the full git history.

New doc site go-live infrastructure change over

We've set the go-live date for the new documentation site for June 3rd. These are the infrastructure changes I believe need to happen as part of the change over:

cc: @abbyad feel free to add/clarify

Feature flag documentation for how to toggle features on/off for conducting trials

Feature flags offer a convenient feature on/off toggle system. They enable teams to achieve continuous delivery by deploying features to production at smaller batches for controlled testing. We have (need to confirm) used them in the past for conducting randomized trials where one group of health workers may see a standard version of an app, and a second group of health workers would see a new feature, so that we could test the impact of that feature in a controlled way.

In order to make feature flags usable for the CHT community, we need to provide technical documentation and/or guidance on how to create, toggle and remove feature flags.

*May be worth investigating this open source tool for documentation that we can adapt (or perhaps as a product improvement in the future: https://github.com/Unleash/unleash)

cc: @isaacholeman

Choose consistent way to represent reference material

Our tables in reference documentation are not consistent. We should choose the appropriate columns and work on correcting this going forward.

Some examples of the various different table formats: medic/cht-core#6457 (comment) .

Proposal / example of what it could look like.

Property Type Description Required Default Version
name string Translation key for the name of the data set as displayed in the UI. e.g. dhis.dataset.name.moh515 Yes null 3.9.0

Make it easier to create a useful GH issue

All the docs pages have a "create an issue" link which loads the "new issue" form in GH with a title prepopulated with the name of the page. This is a good start but it doesn't do enough help external users create issues with enough information for us to action them.

Investigate if we can prepopulate the description of the issue with more information, such as the URL, section of the page, version/date, or anything else. It might be more useful to prepopulate the title with Improvement to page "<title>" rather than just the title.

Also investigate using GH issue templates as well as or instead of more prepopulation to prompt the user for important information, assign labels, and so on.

Improve 'Architecture of CHT Instances'

Page: /core/overview/architecture/
Version: 2020-06-04 16:16:18 1200 1200

The architecture diagram is no longer accurate. It now looks like this:

image

In text form:

  • Are we sure that gateway talks to rapidpro? Or do we here mean either medic-gateway or any other sms aggregator?
  • sentinel talks to couchdb through api not directly
  • couch2pg talks to couchdb through api not directly

create reusable section layouts for the documentation site

The revised documentation site index (#194) contains a number of sections that generally follow the same information sequence. The layout of the documentation site sections can have a big influence on how they're read, and what visual impact the content has. To create uniformity and make for easier user comprehension, it would be helpful to maintain a consistent layout when navigating between sections. We should create layout templates for:

  • feature tours
  • reference apps
  • others?

Include / update all images in documentation site

For the initial documentation site launch, we are planning to only include mobile app images. For a more complete feature and functionality view for users, we should also include desktop images.

Update transition descriptions to be more informative.

As currently documented, some transition descriptions are not very obvious as to their their actual usage and problems they resolve.

One example is update_clinics which should be enabled for incoming messages to be associated to the correct sender but it's current description does not reflect that.

Declarative configuration target schema is missing explanation of emitCustom

I don't know how to elegantly describe the "emitCustom" function in the declarative configuration docs for the target schema. The design of the declarative configuration system hides the "instance" from the configurer. There is no reason for the configuration author to understand the instance or its details.

In constrast, the emitCustom function is the only function that exposes or directly works with instances. It allows for the direct manipulation of that object and is quite useful (powerful), but it is an advanced feature and a real outlier for when it is required. It requires a deeper explanation of how the configuration system interfaces with the webapp and the schema used at that level.

I find it hard to document because it is a hurdle (and against the design pattern of the system) to all of a sudden introduce the concept of the emitted instances and the schema used there. Creating this issue to track reconsiling this.

Rapid Diagnostic Testing feature documentation

The CHT has been used to deploy Rapid Diagnostic Testing for malaria and covid-19. Current documentation needs to be reviewed, consolidated, and added to the documentation site. I think it should live in the "integrations" section.

Current documentation:

Upgrade guidance for system admins

Some partners have expressed confusion over the upgrade best practices and process for their CHT deployments.

  1. We need user-level documentation for system admins so they know how to upgrade via admin console
  2. Communicate how long the upgrade should take (view warming, etc) and what sort of service interruption they should expect
  3. We should communicate roughly how large the download is on the end-user device for a typical update
  4. We should communicate the end-user experience during the update
  5. We should communicate the ideal timeline for the update to be deployed to all phones. Should partners bring in all phones and make sure everybody upgrades on the same day, or can users safely continue to work on the old version until it is convenient for them to upgrade?

Explain medic-conf's .hashes files and associated feature

  1. What is this feature that is created .hashes files - why does it exist?
  2. Should we commit these .hashes files in our PRs?
  3. If there is a conflict in .hashes files how should we handle it?
  4. When I deploy to a test instance, should I make a PR and update the hashes?
  5. When I deploy to production, should I make a PR and update only the hashes?
  6. How do I get hash-reviews for configurations in the cht-core repo?

Wrong favicon showing in Firefox

The head of the docs site looks like...

<link rel="shortcut icon" href=/favicons/favicon.ico>
<link rel=apple-touch-icon href=/beta/favicons/apple-touch-icon-180x180.png sizes=180x180>
<link rel=icon type=image/png href=/beta/favicons/favicon-16x16.png sizes=16x16>
<link rel=icon type=image/png href=/beta/favicons/favicon-32x32.png sizes=32x32>
<link rel=icon type=image/png href=/beta/favicons/android-36x36.png sizes=36x36>
<link rel=icon type=image/png href=/beta/favicons/android-48x48.png sizes=48x48>
<link rel=icon type=image/png href=/beta/favicons/android-72x72.png sizes=72x72>
<link rel=icon type=image/png href=/beta/favicons/android-96x96.png sizes=96x96>
<link rel=icon type=image/png href=/beta/favicons/android-144x144.png sizes=144x144>
<link rel=icon type=image/png href=/beta/favicons/android-192x192.png sizes=192x192>

The first one 404s because the site is currently has the /beta path - this will be fixed when we go live.

The favicon-16x16.png and favicon-32x32.png look as you'd expect, and these are chosen by Chrome.

All the others render a list icon:

image

This is what is shown in Firefox, and presumably Android and iOS too.

Remove or update the incorrect favicons.

add documentation on configuring permissions & roles

We currently do not have documentation on permissions & roles. The instance comes with default permissions & roles pre-loaded. Update the documentation on:-

  1. A reference of all permissions available
  2. How to define roles and permission in app_settings and via the admin console. Indicate the roles defined in app_settings override updates done via the admin console.
  3. Document a breaking change introduced in 3.4.0 that changes how permissions are defined in app_settings.

Document Hugo installation instructions and any other requirements

There are no instructions on how to install Hugo, what version you need and if you need to anything other than check out the whole repo and run hugo server.

Installing it directly via my OS' package manager (sudo apt install hugo on Ubuntu 18.04.3) I get version v0.40.1 linux/amd64 BuildDate: 2018-04-25T17:16:11Z.

This version is super old, but that's Ubuntu LTS for you. It also doesn't work, and errors massively:

ERROR 2020/06/04 11:01:33 Failed to add template "partials/sidebar-tree.html" in path "/home/scdf/Code/Medic/cht-docs/layouts/partials/sidebar-tree.html": template: partials/sidebar-tree.html:21: unexpected "=" in operand
ERROR 2020/06/04 11:01:33 Failed to add template "shortcodes/github-url.html" in path "/home/scdf/Code/Medic/cht-docs/layouts/shortcodes/github-url.html": template: shortcodes/github-url.html:9: unexpected "=" in operand
ERROR 2020/06/04 11:01:33 partials/sidebar-tree.html : template: partials/sidebar-tree.html:21: unexpected "=" in operand
ERROR 2020/06/04 11:01:33 shortcodes/github-url.html : template: shortcodes/github-url.html:9: unexpected "=" in operand
ERROR 2020/06/04 11:01:33 Unable to locate template for shortcode "github-url" in page "design/icons/forms_tasks_targets/_index.md"
ERROR 2020/06/04 11:01:33 Unable to locate template for shortcode "pageinfo" in page "apps/_index.md"
ERROR 2020/06/04 11:01:33 Unable to locate template for shortcode "pageinfo" in page "why-the-cht.md"
ERROR 2020/06/04 11:01:33 Unable to locate template for shortcode "github-url" in page "design/icons/people_and_places/_index.md"
ERROR 2020/06/04 11:01:33 Unable to locate template for shortcode "alert" in page "apps/reference/app-settings.md"
ERROR 2020/06/04 11:01:33 Unable to locate template for shortcode "alert" in page "apps/reference/localization.md"
ERROR 2020/06/04 11:01:33 Unable to locate template for shortcode "alert" in page "apps/reference/functions.md"
ERROR 2020/06/04 11:01:33 Unable to locate template for shortcode "pageinfo" in page "_index.md"
ERROR 2020/06/04 11:01:33 Error while rendering "page" in "apps/examples/": template: /home/scdf/Code/Medic/cht-docs/layouts/_default/single.html:5:7: executing "/home/scdf/Code/Medic/cht-docs/layouts/_default/single.html" at <partial "head.html" ...>: error calling partial: Partial "head.html" not found
ERROR 2020/06/04 11:01:33 Error while rendering "page" in "design/personas/": template: /home/scdf/Code/Medic/cht-docs/layouts/_default/single.html:5:7: executing "/home/scdf/Code/Medic/cht-docs/layouts/_default/single.html" at <partial "head.html" ...>: error calling partial: Partial "head.html" not found
ERROR 2020/06/04 11:01:33 Error while rendering "page" in "apps/features/integrations/": template: /home/scdf/Code/Medic/cht-docs/layouts/_default/single.html:5:7: executing "/home/scdf/Code/Medic/cht-docs/layouts/_default/single.html" at <partial "head.html" ...>: error calling partial: Partial "head.html" not found
ERROR 2020/06/04 11:01:33 Error while rendering "page" in "core/overview/": template: /home/scdf/Code/Medic/cht-docs/layouts/_default/single.html:5:7: executing "/home/scdf/Code/Medic/cht-docs/layouts/_default/single.html" at <partial "head.html" ...>: error calling partial: Partial "head.html" not found
ERROR 2020/06/04 11:01:33 Error while rendering "page" in "apps/concepts/": template: /home/scdf/Code/Medic/cht-docs/layouts/_default/single.html:5:7: executing "/home/scdf/Code/Medic/cht-docs/layouts/_default/single.html" at <partial "head.html" ...>: error calling partial: Partial "head.html" not found
ERROR 2020/06/04 11:01:33 Error while rendering "page" in "design/personas/partners/": template: /home/scdf/Code/Medic/cht-docs/layouts/_default/single.html:5:7: executing "/home/scdf/Code/Medic/cht-docs/layouts/_default/single.html" at <partial "head.html" ...>: error calling partial: Partial "head.html" not found
ERROR 2020/06/04 11:01:33 Error while rendering "page" in "apps/tutorials/": template: /home/scdf/Code/Medic/cht-docs/layouts/_default/single.html:5:7: executing "/home/scdf/Code/Medic/cht-docs/layouts/_default/single.html" at <partial "head.html" ...>: error calling partial: Partial "head.html" not found
ERROR 2020/06/04 11:01:33 Error while rendering "section" in "design/icons/forms_tasks_targets/": template: /home/scdf/Code/Medic/cht-docs/layouts/_default/list.html:5:7: executing "/home/scdf/Code/Medic/cht-docs/layouts/_default/list.html" at <partial "head.html" ...>: error calling partial: Partial "head.html" not found
ERROR 2020/06/04 11:01:33 Error while rendering "page" in "apps/reference/": template: /home/scdf/Code/Medic/cht-docs/layouts/_default/single.html:5:7: executing "/home/scdf/Code/Medic/cht-docs/layouts/_default/single.html" at <partial "head.html" ...>: error calling partial: Partial "head.html" not found
ERROR 2020/06/04 11:01:33 Error while rendering "section" in "design/icons/people_and_places/": template: /home/scdf/Code/Medic/cht-docs/layouts/_default/list.html:5:7: executing "/home/scdf/Code/Medic/cht-docs/layouts/_default/list.html" at <partial "head.html" ...>: error calling partial: Partial "head.html" not found
ERROR 2020/06/04 11:01:33 Error while rendering "section" in "design/personas/": template: /home/scdf/Code/Medic/cht-docs/layouts/_default/list.html:5:7: executing "/home/scdf/Code/Medic/cht-docs/layouts/_default/list.html" at <partial "head.html" ...>: error calling partial: Partial "head.html" not found
ERROR 2020/06/04 11:01:33 Error while rendering "page" in "": template: /home/scdf/Code/Medic/cht-docs/layouts/_default/single.html:5:7: executing "/home/scdf/Code/Medic/cht-docs/layouts/_default/single.html" at <partial "head.html" ...>: error calling partial: Partial "head.html" not found
ERROR 2020/06/04 11:01:33 Error while rendering "section" in "design/apps/": template: /home/scdf/Code/Medic/cht-docs/layouts/_default/list.html:5:7: executing "/home/scdf/Code/Medic/cht-docs/layouts/_default/list.html" at <partial "head.html" ...>: error calling partial: Partial "head.html" not found
ERROR 2020/06/04 11:01:33 Error while rendering "section" in "apps/": template: /home/scdf/Code/Medic/cht-docs/layouts/_default/list.html:5:7: executing "/home/scdf/Code/Medic/cht-docs/layouts/_default/list.html" at <partial "head.html" ...>: error calling partial: Partial "head.html" not found
ERROR 2020/06/04 11:01:33 Error while rendering "section" in "core/": template: /home/scdf/Code/Medic/cht-docs/layouts/_default/list.html:5:7: executing "/home/scdf/Code/Medic/cht-docs/layouts/_default/list.html" at <partial "head.html" ...>: error calling partial: Partial "head.html" not found
ERROR 2020/06/04 11:01:33 Error while rendering "section" in "apps/concepts/": template: /home/scdf/Code/Medic/cht-docs/layouts/_default/list.html:5:7: executing "/home/scdf/Code/Medic/cht-docs/layouts/_default/list.html" at <partial "head.html" ...>: error calling partial: Partial "head.html" not found
ERROR 2020/06/04 11:01:33 Error while rendering "section" in "core/overview/": template: /home/scdf/Code/Medic/cht-docs/layouts/_default/list.html:5:7: executing "/home/scdf/Code/Medic/cht-docs/layouts/_default/list.html" at <partial "head.html" ...>: error calling partial: Partial "head.html" not found
ERROR 2020/06/04 11:01:33 Error while rendering "section" in "core/process/": template: /home/scdf/Code/Medic/cht-docs/layouts/_default/list.html:5:7: executing "/home/scdf/Code/Medic/cht-docs/layouts/_default/list.html" at <partial "head.html" ...>: error calling partial: Partial "head.html" not found
ERROR 2020/06/04 11:01:33 Error while rendering "section" in "design/core/": template: /home/scdf/Code/Medic/cht-docs/layouts/_default/list.html:5:7: executing "/home/scdf/Code/Medic/cht-docs/layouts/_default/list.html" at <partial "head.html" ...>: error calling partial: Partial "head.html" not found
ERROR 2020/06/04 11:01:33 Error while rendering "section" in "apps/features/": template: /home/scdf/Code/Medic/cht-docs/layouts/_default/list.html:5:7: executing "/home/scdf/Code/Medic/cht-docs/layouts/_default/list.html" at <partial "head.html" ...>: error calling partial: Partial "head.html" not found
ERROR 2020/06/04 11:01:33 Error while rendering "section" in "core/guides/": template: /home/scdf/Code/Medic/cht-docs/layouts/_default/list.html:5:7: executing "/home/scdf/Code/Medic/cht-docs/layouts/_default/list.html" at <partial "head.html" ...>: error calling partial: Partial "head.html" not found
ERROR 2020/06/04 11:01:33 Error while rendering "section" in "apps/examples/": template: /home/scdf/Code/Medic/cht-docs/layouts/_default/list.html:5:7: executing "/home/scdf/Code/Medic/cht-docs/layouts/_default/list.html" at <partial "head.html" ...>: error calling partial: Partial "head.html" not found
ERROR 2020/06/04 11:01:33 Error while rendering "section" in "design/icons/": template: /home/scdf/Code/Medic/cht-docs/layouts/_default/list.html:5:7: executing "/home/scdf/Code/Medic/cht-docs/layouts/_default/list.html" at <partial "head.html" ...>: error calling partial: Partial "head.html" not found
ERROR 2020/06/04 11:01:33 Error while rendering "section" in "apps/features/contacts/": template: /home/scdf/Code/Medic/cht-docs/layouts/_default/list.html:5:7: executing "/home/scdf/Code/Medic/cht-docs/layouts/_default/list.html" at <partial "head.html" ...>: error calling partial: Partial "head.html" not found
ERROR 2020/06/04 11:01:33 Error while rendering "section" in "core/faq/": template: /home/scdf/Code/Medic/cht-docs/layouts/_default/list.html:5:7: executing "/home/scdf/Code/Medic/cht-docs/layouts/_default/list.html" at <partial "head.html" ...>: error calling partial: Partial "head.html" not found
ERROR 2020/06/04 11:01:33 Error while rendering "section" in "design/": template: /home/scdf/Code/Medic/cht-docs/layouts/_default/list.html:5:7: executing "/home/scdf/Code/Medic/cht-docs/layouts/_default/list.html" at <partial "head.html" ...>: error calling partial: Partial "head.html" not found
ERROR 2020/06/04 11:01:33 Error while rendering "section" in "apps/features/messaging/": template: /home/scdf/Code/Medic/cht-docs/layouts/_default/list.html:5:7: executing "/home/scdf/Code/Medic/cht-docs/layouts/_default/list.html" at <partial "head.html" ...>: error calling partial: Partial "head.html" not found
ERROR 2020/06/04 11:01:33 Error while rendering "section" in "apps/tutorials/": template: /home/scdf/Code/Medic/cht-docs/layouts/_default/list.html:5:7: executing "/home/scdf/Code/Medic/cht-docs/layouts/_default/list.html" at <partial "head.html" ...>: error calling partial: Partial "head.html" not found
ERROR 2020/06/04 11:01:33 Error while rendering "page" in "core/process/": template: /home/scdf/Code/Medic/cht-docs/layouts/_default/single.html:5:7: executing "/home/scdf/Code/Medic/cht-docs/layouts/_default/single.html" at <partial "head.html" ...>: error calling partial: Partial "head.html" not found
ERROR 2020/06/04 11:01:33 Error while rendering "section" in "apps/guides/": template: /home/scdf/Code/Medic/cht-docs/layouts/_default/list.html:5:7: executing "/home/scdf/Code/Medic/cht-docs/layouts/_default/list.html" at <partial "head.html" ...>: error calling partial: Partial "head.html" not found
ERROR 2020/06/04 11:01:33 Error while rendering "section" in "apps/reference/": template: /home/scdf/Code/Medic/cht-docs/layouts/_default/list.html:5:7: executing "/home/scdf/Code/Medic/cht-docs/layouts/_default/list.html" at <partial "head.html" ...>: error calling partial: Partial "head.html" not found
ERROR 2020/06/04 11:01:33 Error while rendering "section" in "design/personas/partners/": template: /home/scdf/Code/Medic/cht-docs/layouts/_default/list.html:5:7: executing "/home/scdf/Code/Medic/cht-docs/layouts/_default/list.html" at <partial "head.html" ...>: error calling partial: Partial "head.html" not found
ERROR 2020/06/04 11:01:33 Error while rendering "section" in "apps/features/targets/": template: /home/scdf/Code/Medic/cht-docs/layouts/_default/list.html:5:7: executing "/home/scdf/Code/Medic/cht-docs/layouts/_default/list.html" at <partial "head.html" ...>: error calling partial: Partial "head.html" not found
ERROR 2020/06/04 11:01:33 Error while rendering "section" in "apps/features/tasks/": template: /home/scdf/Code/Medic/cht-docs/layouts/_default/list.html:5:7: executing "/home/scdf/Code/Medic/cht-docs/layouts/_default/list.html" at <partial "head.html" ...>: error calling partial: Partial "head.html" not found
ERROR 2020/06/04 11:01:33 Error while rendering "section" in "apps/features/admin/": template: /home/scdf/Code/Medic/cht-docs/layouts/_default/list.html:5:7: executing "/home/scdf/Code/Medic/cht-docs/layouts/_default/list.html" at <partial "head.html" ...>: error calling partial: Partial "head.html" not found
ERROR 2020/06/04 11:01:33 Error while rendering "section" in "apps/features/reports/": template: /home/scdf/Code/Medic/cht-docs/layouts/_default/list.html:5:7: executing "/home/scdf/Code/Medic/cht-docs/layouts/_default/list.html" at <partial "head.html" ...>: error calling partial: Partial "head.html" not found
ERROR 2020/06/04 11:01:33 Error while rendering "page" in "apps/guides/gateway/": template: /home/scdf/Code/Medic/cht-docs/layouts/_default/single.html:5:7: executing "/home/scdf/Code/Medic/cht-docs/layouts/_default/single.html" at <partial "head.html" ...>: error calling partial: Partial "head.html" not found
ERROR 2020/06/04 11:01:33 Error while rendering "page" in "core/guides/": template: /home/scdf/Code/Medic/cht-docs/layouts/_default/single.html:5:7: executing "/home/scdf/Code/Medic/cht-docs/layouts/_default/single.html" at <partial "head.html" ...>: error calling partial: Partial "head.html" not found
ERROR 2020/06/04 11:01:33 Error while rendering "section" in "apps/features/integrations/": template: /home/scdf/Code/Medic/cht-docs/layouts/_default/list.html:5:7: executing "/home/scdf/Code/Medic/cht-docs/layouts/_default/list.html" at <partial "head.html" ...>: error calling partial: Partial "head.html" not found
ERROR 2020/06/04 11:01:33 Error while rendering "page" in "apps/guides/": template: /home/scdf/Code/Medic/cht-docs/layouts/_default/single.html:5:7: executing "/home/scdf/Code/Medic/cht-docs/layouts/_default/single.html" at <partial "head.html" ...>: error calling partial: Partial "head.html" not found
ERROR 2020/06/04 11:01:33 Error while rendering "section" in "apps/guides/gateway/": template: /home/scdf/Code/Medic/cht-docs/layouts/_default/list.html:5:7: executing "/home/scdf/Code/Medic/cht-docs/layouts/_default/list.html" at <partial "head.html" ...>: error calling partial: Partial "head.html" not found
ERROR 2020/06/04 11:01:33 Error while rendering "home" in "": template: /home/scdf/Code/Medic/cht-docs/layouts/_default/list.html:5:7: executing "/home/scdf/Code/Medic/cht-docs/layouts/_default/list.html" at <partial "head.html" ...>: error calling partial: Partial "head.html" not found
ERROR 2020/06/04 11:01:33 error processing shortcode "_internal/shortcodes/ref.html" for page "apps/examples/anc.md": template: _internal/shortcodes/ref.html:1:73: executing "_internal/shortcodes/ref.html" at <ref .Page (.Get 0)>: error calling ref: No page found with path or logical name "design/apps".
ERROR 2020/06/04 11:01:33 error processing shortcode "_internal/shortcodes/ref.html" for page "apps/examples/anc.md": template: _internal/shortcodes/ref.html:1:73: executing "_internal/shortcodes/ref.html" at <ref .Page (.Get 0)>: error calling ref: No page found with path or logical name "apps".
ERROR 2020/06/04 11:01:33 error processing shortcode "_internal/shortcodes/ref.html" for page "apps/reference/app-forms.md": template: _internal/shortcodes/ref.html:1:73: executing "_internal/shortcodes/ref.html" at <ref .Page (.Get 0)>: error calling ref: No page found with path or logical name "apps/features/reports".
ERROR 2020/06/04 11:01:33 error processing shortcode "_internal/shortcodes/ref.html" for page "apps/reference/app-settings.md": template: _internal/shortcodes/ref.html:1:73: executing "_internal/shortcodes/ref.html" at <ref .Page (.Get 0)>: error calling ref: No page found with path or logical name "apps/features/admin".
�[?25h
�[KTotal in 175 ms
Error: Error building site: logged 16 error(s)

Installing via snap (sudo snap install hugo) nets me version v0.72.0 linux/amd64 BuildDate: 2020-05-31T18:06:12Z. In theory Snaps are very up to date (note that build date!), and while this version fails less, it still fails:

Built in 518 ms
Error: Error building site: TOCSS: failed to transform "scss/main.scss" (text/x-scss): resource "scss/beta/scss/main.scss_9fadf33d895a46083cdd64396b57ef68" not found in file cache

It's not clear if my version is still not right / up to date, or if there are other things I should be doing first, as I'm not familiar with Hugo.

Missing instructions on secrets files for fetching-forms-from-google-drive

https://github.com/medic/medic-docs/blob/9fe07f18f4eaeb3ff165bf1233bc7f4b517ff58d/configuration/update-standard-forms.md

"The files to download are listed in forms-on-google-drive.json. Use the fetch-forms-from-google-drive action in medic-conf to get the forms, then follow the instructions to authenticate accordingly."

Running medic-conf fetch-forms-from-google-drive yields:

WARN Error reading file: ./.gdrive.secrets.json 
WARN Error parsing JSON in: ./.gdrive.secrets.json 
INFO Failed to load google drive secrets from file. Error: ENOENT: no such file or directory, open './.gdrive.secrets.json'
    at Object.fs.openSync (fs.js:646:18)
    at Object.fs.readFileSync (fs.js:551:33)
    at read (/usr/lib/node_modules/medic-conf/src/lib/sync-fs.js:11:15)
    at Object.readJson (/usr/lib/node_modules/medic-conf/src/lib/sync-fs.js:29:23)
    at oauthClient (/usr/lib/node_modules/medic-conf/src/lib/google-auth.js:47:21)
    at module.exports (/usr/lib/node_modules/medic-conf/src/lib/google-auth.js:12:18)
    at module.exports (/usr/lib/node_modules/medic-conf/src/lib/fetch-files-from-google-drive.js:8:10)
    at Object.execute (/usr/lib/node_modules/medic-conf/src/fn/fetch-forms-from-google-drive.js:7:11)
    at executeAction (/usr/lib/node_modules/medic-conf/src/lib/main.js:198:40)
    at module.exports (/usr/lib/node_modules/medic-conf/src/lib/main.js:188:11) 
WARN Missing .client_id in ./.gdrive.secrets.json or env var GOOGLE_CLIENT_ID! 
WARN Missing .client_secret in ./.gdrive.secrets.json or env var GOOGLE_CLIENT_SECRET! 
WARN Missing .redirect_uris in ./.gdrive.secrets.json or env var GOOGLE_REDIRECT_URI! 
ERROR Error: Missing required config for google drive access.  Please check warnings.
    at oauthClient (/usr/lib/node_modules/medic-conf/src/lib/google-auth.js:64:27)
    at module.exports (/usr/lib/node_modules/medic-conf/src/lib/google-auth.js:12:18)
    at module.exports (/usr/lib/node_modules/medic-conf/src/lib/fetch-files-from-google-drive.js:8:10)
    at Object.execute (/usr/lib/node_modules/medic-conf/src/fn/fetch-forms-from-google-drive.js:7:11)
    at executeAction (/usr/lib/node_modules/medic-conf/src/lib/main.js:198:40)
    at module.exports (/usr/lib/node_modules/medic-conf/src/lib/main.js:188:11)
    at /usr/lib/node_modules/medic-conf/src/bin/medic-conf.js:11:24
    at Object.<anonymous> (/usr/lib/node_modules/medic-conf/src/bin/medic-conf.js:20:3)
    at Module._compile (module.js:653:30)
    at Object.Module._extensions..js (module.js:664:10) 

This error is not prescriptive or informative. I'm unclear if this is a documentation error or a product issue in medic-conf.

Add documentation for "default configuration"

  1. What is it, what workflows are in it? https://docs.google.com/presentation/d/162Ey98J59ztkm-lF-ywezyVv1mldgc4xSVDkqkSUX04/edit#slide=id.g5eb1bb5ba9_0_323
  2. Maybe for people exploring the code, links to what is a configuration and how to deploy it.
  3. Understanding the seed data that is in it. How could this user know how to seed data and login as user andra with password Secret_1? https://forum.communityhealthtoolkit.org/t/trouble-with-adding-app-forms/744/9?u=kenn

Possible README.md in config/default?
Or in cht-docs website?

Documentation on PHC use cases supported by the CHT

Do we want to include a list or other short description of the different PHC use cases supported by the CHT?

We reference many of these use cases in our Impact Metrics guide but I don't actually see a list or short descriptions of PHC activities supported by the CHT in our documentation (I could be missing it). It would be valuable to show these, perhaps in the examples section or elsewhere?

@MaxDiz what do you think?

Impact monitoring documentation (brainstorm to be broken out into separate issues)

Impact monitoring is a core feature set that we offer CHT users. It is currently not well documented, and needs additional information on:

  • Dashboard user overview
  • Dashboard setup tutorial
  • Impact logic for priority use cases
  • Database schema

Existing documentation resources to reference:

This is a large body of work that we may want to split into pieces, but it would be helpful to first look at it comprehensively. We may also want to take into consideration upcoming product improvements related to transitioning away from Klipfolio.

Add information about replication invalidation

There are a few parameters that affect the docs that an offline user has access to:

  1. the user's facility_id
  2. the user's contact_id
  3. the user's replication depth
  4. the user's roles (different purge rules may be applied based on roles)

When any of the above are changed, some docs that already exist on a user's device might become orphaned - this means that the user no longer has permission to access new changes for these docs, and any change they make will not be synced to the server. Other documents that we allow the user to see won't get automatically downloaded to the user's device unless they're pushed to the end of changes feed (so they'd be part of the natural sync).

We should add some documentation that describes situations where this will happen and recommend ways of handling these events.

embedded async product technical support for documentation site

The CHT forum currently houses a technical support category where community members can report and receive async product support. Many of the conversations overlap with the envisioned documentation site information and serve as a way to engage users by answering specific needs as they arise. Ideally, on the documentation site, we can:

  • embed relevant conversations from the forum within the appropriate place in the index for user reference
  • provide an easy way for users to start a new support thread

This issue is to explore documentation site - CHT forum technical support integration options.

Add example xls form to config documentation for better user comprehension

Feeback from new user:

Being relatively new to XForms, there was a learning curve on how to create them and compile it into the CHT via medic-conf. I figured this out by looking at previous forms and xlxs files in the different CHT configs, as well as reading the documentation. However, I ran into an issue where I had forms that I could access in my CHT instance, but they were not being associated with a contact when I submitted the form and therefore couldn’t count towards targets or tasks (I would get a mark-contacts-dirty error in my console upon form submission). I ended up finding in the documentation that “To make sure forms are properly associated to a contact, make sure at least one of place_id , patient_id , and patient_uuid is stored at the top level of the form.” (Link 2). This issue took me a while to resolve, and maybe having a example xlxs form linked in the docs, then having the docs explain what each group of lines did in the xlxs form (lines 1-20 are metadata that associate the form with a contact, lines 20-100 are lines that produce the contents of the form etc.) might have been useful.

referenced documentation: https://github.com/medic/medic-docs/blob/master/configuration/developing-community-health-applications.md

Workout how-to-guides prioritization

The documentation squad has identified 'how-to-guides' as a key resource group to develop for communicating product features and functionality to deployment partners and end-users. The intention is to use them as both product education on the doc site, and as a partner training resource. This working doc captures current thinking on guide structure, and an extensive list of potential guides to develop. We need to:

  1. Finalize the how-to-guide structure so we can use it as a template
  2. Review the current list of potential guides and eliminate anything that is not a good fit
  3. Prioritize which guides to develop first

document collect configuration nuances

I've found it really hard to pick a collect project and hit the ground running with the current documentation. Some of the discoveries along the way that warrant some bit of documentation are listed here (added as discovered):-

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.