Skip to content

Commit

Permalink
feat(#16): Upgrade to the latest version of AOE Tech Radar (#17)
Browse files Browse the repository at this point in the history
  • Loading branch information
andrablaj authored Sep 27, 2024
1 parent 9aa98fb commit 2fcda06
Show file tree
Hide file tree
Showing 16 changed files with 2,210 additions and 478 deletions.
52 changes: 31 additions & 21 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,30 +21,40 @@ concurrency:
cancel-in-progress: false

jobs:
deploy:
build:
runs-on: ubuntu-latest
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}

steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: "lts/*"
- name: Checkout 🛎️
uses: actions/checkout@v4

- name: Setup Node.js ⚙️ - Cache dependencies ⚡ - Install dependencies 🔧
uses: ./.github/workflows/setup-node

- name: Setup Pages
- name: Setup Pages ⚙️
id: pages
uses: actions/configure-pages@v3
uses: actions/configure-pages@v4
if: ${{ github.ref == 'refs/heads/main' }}
with:
static_site_generator: next

- run: npm i
- run: PUBLIC_URL=/cht-tech-radar-implementers REACT_APP_RADAR_NAME="CHT Technology Radar for Implementers" npm run build:static
- name: Deploy to GitHub Pages
env:
EMAIL: medic-ci@github
NAME: medic-ci
run: |
git config --global user.email $EMAIL
git config --global user.name $NAME
git remote set-url origin https://$NAME:${{ secrets.GH_SECRET }}@github.com/medic/cht-tech-radar-implementers.git
npm run deploy
- name: Build with Next.js 🏗️
run: npm run build

- name: Upload artifact 📡
uses: actions/upload-pages-artifact@v3
with:
path: ./build

deploy:
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}

runs-on: ubuntu-latest
needs: build

steps:
- name: Publish to GitHub Pages 🚀
id: deployment
uses: actions/deploy-pages@v4
21 changes: 21 additions & 0 deletions .github/workflows/setup-node/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
name: setup-node
description: "Setup Node.js ⚙️ - Cache dependencies ⚡ - Install dependencies 🔧"
runs:
using: "composite"
steps:
- name: Setup Node.js ⚙️
uses: actions/setup-node@v4
with:
node-version-file: ".nvmrc"

- name: Cache dependencies ⚡
id: cache_dependencies
uses: actions/cache@v3
with:
path: node_modules
key: node-modules-${{ hashFiles('package-lock.json') }}

- name: Install dependencies 🔧
shell: bash
if: steps.cache_dependencies.outputs.cache-hit != 'true'
run: npm ci
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -7,5 +7,7 @@ yarn-error.log
aoe_technology_radar.iml
build
techradar
.techradar
# bin
src/rd.json
.idea
2 changes: 1 addition & 1 deletion .nvmrc
Original file line number Diff line number Diff line change
@@ -1 +1 @@
18.16.0
20.10.0
75 changes: 21 additions & 54 deletions Readme.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,9 @@
# CHT Technology Radar for Implementers
This is the repository of the CHT Technology Radar for Implementers content.

This is the location of CHT Technology Radar for Implementers content.
If you are looking for the content of the CHT Technology Radar for Contributors, you can find it [in its dedicated GitHub repository](https://github.com/medic/cht-tech-radar-contributors).

If you are looking for the content of the CHT Technology Radar for Contributors, you can find it [here](https://github.com/medic/cht-tech-radar-contributors).

This Tech Radar is built by using the [CHT Technology Radar Core](https://github.com/medic/cht-tech-radar-core).
This Tech Radar is built by using the [CHT Technology Radar Core](https://github.com/medic/cht-tech-radar-core), which contains the skeleton app and the CHT look-and-feel styles.

## Contribute to the Technical Radar

Expand All @@ -14,13 +13,14 @@ For a new Technology Radar release, create a folder of the release date (YYYY-MM
### Maintaining content
The items are written in Markdown (`.md`) format.

Each file has a [front-matter](https://github.com/jxson/front-matter) header where the attributes of the item are listed:
Each file has a meta header where the attributes of the item are listed:

```
---
title: "JavaScript"
title: "CHT Sync"
ring: adopt
quadrant: languages-and-frameworks
quadrant: methods-and-patterns
tags: [data, pipeline]
---
Text goes here. You can use **markdown** here.
Expand All @@ -33,9 +33,8 @@ Following front-matter attributes are possible:
`methods-and-patterns` (for `Data Use` quadrant), `platforms-and-aoe-services`
(for `Deployment Management` quadrant), `tools` (for `CHT App Features` quadrant)
- **ring**: Ring section in radar. One of `trial`, `adopt`, `stop`
- **info**: (optional) A short textual description of the item (visible in
overview pages)
- **featured**: (optional, default "true") If you set this to `false`, the item
- **tags**: Optional tags for filtering.
- **featured**: (Optional, default "true") If you set this to "false", the item
will not be visible in the radar quadrants but still be available in the overview.

The name of the .md file acts as item identifier and may overwrite items with
Expand All @@ -50,20 +49,11 @@ You can integrate images in your markdown. Put the image files in your public fo
![an image](/images/an-image.png)
```

### Tags Guidelines
New technologies should be tagged. Tags should be managed in the `public/config.json` file.

The tags should be used in the .md files as follows:

```md
tags: [data, dashboards]
```

### Content Guidelines
You can update the rings and the quadrants in the `public/config.json` file. If you update the names of the rings and quadrants,
you will need to update the technologies .md files accordingly.
You can update the rings and the quadrants in the `config.json` file. If you update the names of the rings and quadrants,
you will need to update the technologies .md files accordingly.

The text on the "How to use the CHT Technology Radar for Implementers" page can be updated in the `public/messages.json` file.
The text on the "How to use the CHT Technology Radar for Implementers" page can be updated in the `about.md` file.

### Customize the radar
> Further instructions on how to customize the Technical Radar can be found in the [medic/cht-tech-radar-core](https://github.com/medic/cht-tech-radar-core) repository.
Expand All @@ -74,45 +64,22 @@ The text on the "How to use the CHT Technology Radar for Implementers" page can
To host the application under a sub path, set the environment variable `PUBLIC_URL`, e.g. "/cht-tech-radar".
The default is `/`.

> For local development you can use `/build` and use this for the following steps.
> For local development you can use `/build` and use this for the following steps.
### Build the radar
```
npm install
PUBLIC_URL=/build REACT_APP_RADAR_NAME="CHT Technology Radar for Implementers" npm run start
npm ci
npm run serve
```

Then open the Tech Radar here: http://localhost:8080/build
Then open the Tech Radar here: http://localhost:3000/cht-tech-radar-implementers

### Build the radar with static files
```
npm install
PUBLIC_URL=/build REACT_APP_RADAR_NAME="CHT Technology Radar for Implementers" npm run start:static
```

Then open the Tech Radar here: http://localhost:8080/build

### Regenerate the json file based on your changes on md files
```
npm run generateJson
```

You can do this while the server is running.
You can find the newly created rd.json in `/build/rd.json`.

## Deployment to GitHub Pages from local
First, ensure that you are performing the next steps on the `main` branch.

### Generate the radar with static files
```
PUBLIC_URL=/cht-tech-radar-implementers REACT_APP_RADAR_NAME="CHT Technology Radar for Implementers" npm run build:static
```

### Push the changes to GitHub Pages
```
npm run deploy
npm ci
npm run build
```

# Note
The CHT Tech Radars are built starting from the [AOE Tech Radar content](https://www.aoe.com/techradar/index.html).
If you want to build your own Tech Radar you may want to have a look at the [AOE Tech Radar GitHub repository](https://github.com/AOEpeople/aoe_technology_radar).
## Note
The CHT Technology Radars are built starting from the [AOE Tech Radar content](https://www.aoe.com/techradar/index.html).
If you want to build your own Technical Radar you may want to have a look at the [AOE Tech Radar GitHub repository](https://github.com/AOEpeople/aoe_technology_radar).
42 changes: 42 additions & 0 deletions about.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
# How to use the CHT Technology Radar for Implementers

### Introduction

It is essential for a development toolkit such as the Community Health Toolkit to constantly improve and keep track with the latest useful innovations. It is important to openly look for innovations and new technologies and to question established technologies and methods every now and then.

### What is the Technology Radar?

To enhance visibility and clarity on the technology choices, the technological strategy, and the available CHT features and tools, we leverage a framework called Technology Radar.

The CHT Technology Radar for Implementers provides an easy-to-grasp visual representation of features, data use tools, deployment management built around the CHT. Additionally, the Technology Radar provides a degree of adoption and guidelines on using (or not using) a particular technology. The community can leverage it to answer questions like: Should we use couch2pg or CHT Sync for our project?

### Audience

Implementers, App Developers

### How it is created

The items in the technology radar are raised by the different contributors and therefore a lot of the items are related to the work and challenges the community faces in the different initiatives.

### How should it be used

The radar acts as an overview of technologies that everyone in the CHT Community should currently know about. Its goal is to act as a guide in the community when implementing CHT projects. Developers outside of CHT Community should hopefully find the information in this technology overview inspirational.

The items are grouped or categorized in 4 quadrants.

#### The quadrants are:

- **App Building:** These components help build CHT apps, like CHT Conf, and form preview/builder tools like XLSForm.
- **CHT App Features:** Aspects of CHT Core Framework that can be used in CHT Apps. These could include new CHT form widgets, updated UI elements like the floating action button, and user management features.
- **Data Use:** This includes tools and components used to manage data that comes in or out of the CHT. It also includes integrations, interoperability standards and methods, ETL, Pipeline, and querying techniques. Additionally, this quadrant contains visualization tools for dashboards.
- **Deployment Management:** Deploying and maintaining CHT instances takes considerable coordination, especially for large-scale deployments. This quadrant also includes key aspects for hosting, including tools and methods for alerts and monitoring.

#### Each of the items is classified in one of these rings:

- **Adopt:** The Adopt ring represents technologies and features that you should seriously consider using. We don’t say you should use these for every project; one should only use a tool in an appropriate context. However, an item in the Adopt ring represents something where there’s no doubt it’s proven and mature for use with the CHT.
- **Trial:** The Trial ring is for tools ready for use but only partially proven as those in the Adopt ring. You should use these on a trial basis to decide whether they should be part of your toolkit. Others may already be using these items in production, likely as early adopters of the tools.
- **Stop:** The Stop (or Not Recommended) ring is for things we think implementers should avoid using or look for ways to move off of. These include items for which a better alternative is available, or where the item is found to not work correctly with the CHT.

### Contributing to the CHT Technology Radar for Implementers

Contributions and source code of the CHT Technology Radar for Implementers are on [GitHub](https://github.com/medic/cht-tech-radar-implementers). Inspired by [AOE Tech Radar](https://github.com/AOEpeople/aoe_technology_radar).
112 changes: 112 additions & 0 deletions config.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,112 @@
{
"basePath": "/cht-tech-radar-implementers",
"baseUrl": "https://docs.communityhealthtoolkit.org/cht-tech-radar-implementers",
"editUrl": "https://github.dev/medic/cht-tech-radar-implementers/blob/main/radar/{release}/{id}.md",
"colors": {
"foreground": "#E5E8E9",
"background": "#38464D",
"highlight": "#F58300",
"content": "#E5E8E9",
"text": "#575757",
"link": "#F58300",
"border": "rgba(255, 255, 255, 0.1)",
"tag": "rgba(255, 255, 255, 0.1)"
},
"quadrants": [
{
"id": "languages-and-frameworks",
"title": "App Building",
"description": "These components help build CHT apps, like CHT Conf, and form preview/builder tools like XLSForm.",
"color": "#7092F5"
},
{
"id": "methods-and-patterns",
"title": "Data Use",
"description": "This includes tools and components used to manage data that comes in or out of the CHT. It also includes integrations, interoperability standards and methods, ETL, Pipeline, and querying techniques. Additionally, this quadrant contains visualization tools for dashboards.",
"color": "#535EAA"
},
{
"id": "platforms-and-aoe-services",
"title": "Deployment Management",
"description": "Deploying and maintaining CHT instances takes considerable coordination, especially for large-scale deployments. This quadrant also includes key aspects for hosting, including tools and methods for alerts and monitoring.",
"color": "#436D84"
},
{
"id": "tools",
"title": "CHT App Features",
"description": "Aspects of CHT Core Framework that can be used in CHT Apps. These could include new CHT form widgets, updated UI elements like the floating action button, and user management features.",
"color": "#278489"
}
],
"rings": [
{
"id": "adopt",
"title": "Adopt",
"description": "The Adopt ring represents tools that you should seriously consider using. We don't say you should use these for every project; one should only use a tool in an appropriate context. However, an item in the Adopt ring represents something where there's no doubt it's proven and mature for use with the CHT.",
"color": "#4A9940",
"radius": 0.5,
"strokeWidth": 5
},
{
"id": "trial",
"title": "Trial",
"description": "The Trial ring is for tools ready for use but only partially proven as those in the Adopt ring. You should use these on a trial basis to decide whether they should be part of your toolkit. Others may already be using these items in production, likely as early adopters of the tools.",
"color": "#E4AE1D",
"radius": 0.69,
"strokeWidth": 3
},
{
"id": "stop",
"title": "Stop",
"description": "The Stop (or Not Recommended) ring is for things we think implementers should avoid using or look for ways to move off of. These include items for which a better alternative is available, or where the item is found to not work correctly with the CHT.",
"color": "#E35726",
"radius": 1,
"strokeWidth": 0.75
}
],
"flags": {
"new": {
"color": "#D74A39",
"title": "New",
"titleShort": "N",
"description": "New in this version"
},
"changed": {
"color": "#535EAA",
"title": "Changed",
"titleShort": "C",
"description": "Recently changed"
},
"default": {
"description": "Unchanged"
}
},
"chart": {
"size": 800,
"blipSize": 12
},
"social": [
{
"href": "https://github.com/medic",
"icon": "github"
}
],
"imprint": "https://docs.google.com/document/d/1MaI1rgYMNyCZF2eEjBuvnBDoCYHDKlx4k_N5pkDiWu8/edit#heading=h.9sdb6g11dv40",
"labels": {
"title": "CHT Technology Radar for Implementers",
"imprint": "Legal Information",
"quadrant": "Quadrant",
"quadrantOverview": "Quadrant Overview",
"zoomIn": "Zoom in",
"filterByTag": "Filter by Tag",
"footer": "The Community Health Toolkit (CHT) is a project by a group of leading organizations who have come together to support the development of digital health initiatives in the hardest-to-reach areas. It provides a collection of open source technologies and open access design, technical, and implementer resources that help you build and deploy digital tools for community health. Together, we envision a world where healthcare is of the highest attainable quality, equitable, accessible, and delivered by people who are trusted in their communities.",
"notUpdated": "This item was not updated in last three versions of the Radar. Should it have appeared in one of the more recent editions, there is a good chance it remains pertinent. However, if the item dates back further, its relevance may have diminished and our current evaluation could vary. Regrettably, our capacity to consistently revisit items from past Radar editions is limited.",
"notFound": "404 - Page not found",
"pageAbout": "How to use the CHT Technology Radar for Implementers?",
"pageOverview": "Technologies Overview",
"pageSearch": "Search",
"searchPlaceholder": "What are you looking for?",
"metaDescription": "Stay at the forefront of software and trends with the CHT Technology Radar for Implementers. Explore insights on CHT App Features, Data Use, Deployment Management, and CHT App Building."
}
}

Loading

0 comments on commit 2fcda06

Please sign in to comment.