Skip to content

Commit

Permalink
feat(#26): Upgrade to latest version of AOE Tech Radar (#27)
Browse files Browse the repository at this point in the history
  • Loading branch information
andrablaj authored Sep 27, 2024
1 parent 077024c commit 26cd935
Show file tree
Hide file tree
Showing 17 changed files with 582 additions and 28,555 deletions.
50 changes: 29 additions & 21 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,32 +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-contributors REACT_APP_RADAR_NAME="CHT Technology Radar for Contributors" 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-contributors.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
22 changes: 22 additions & 0 deletions .github/workflows/setup-node/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
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

3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ yarn-error.log
aoe_technology_radar.iml
build
techradar
.techradar
# bin
src/rd.json
.techradar
.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
60 changes: 14 additions & 46 deletions Readme.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
# CHT Technology Radar for Contributors
This is the location of CHT Technology Radar for Contributors content.
This is the repository of the CHT Technology Radar for Contributors content.

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

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 @@ -13,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"
ring: adopt
quadrant: languages-and-frameworks
tags: [frontend, coding]
---
Text goes here. You can use **markdown** here.
Expand All @@ -32,9 +33,8 @@ Following front-matter attributes are possible:
`methods-and-patterns`(for `Techniques` quadrant), `platforms-and-aoe-services`
(for `Platforms` quadrant), `tools` (for `Tools` quadrant)
- **ring**: Ring section in radar. One of `trial`, `assess`, `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 @@ -49,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 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 Contributors" page can be updated in the `public/messages.json` file.
The text on the "How to use the CHT Technology Radar for Contributors" 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 @@ -77,39 +68,16 @@ The default is `/`.
### Build the radar
```
npm install
PUBLIC_URL=/build REACT_APP_RADAR_NAME="CHT Technology Radar for Contributors" 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-contributors

### Build the radar with static files
```
npm install
PUBLIC_URL=/build REACT_APP_RADAR_NAME="CHT Technology Radar for Contributors" 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-contributors REACT_APP_RADAR_NAME="CHT Technology Radar for Contributors" npm run build:static
```

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

## Note
Expand Down
43 changes: 43 additions & 0 deletions about.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
# How to use the CHT Technology Radar for Contributors

### 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 Contributors provides an easy-to-grasp visual representation of tools, languages, frameworks, platforms, and techniques we use to build 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: What’s the difference between technologies such as Klipfolio, Superset, and Grafana?

### Audience

Contributors, 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 contributors face 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 contributing to the CHT. Developers outside of CHT Community should hopefully find the information in this technology overview inspirational.

The items are grouped or categorized in 4 quadrants - (sometimes, when it's not 100% clear where a item belongs, the best fit was chosen).

#### The quadrants are:

- **Languages & Frameworks:** Include development languages and more low-level development frameworks, which help implement custom software of all kinds.
- **Tools:** These can be components, like databases, software development tools, such as version control systems.
- **Techniques:** Include elements of a software development process, such as continuous integration, and ways of creating software, such as progressive web applications.
- **Platforms:** There are things that we build software on top of, such as mobile technologies like Android or generic kinds of platforms like Amazon Web Services.

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

- **Adopt:** 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.
- **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.
- **Assess:** The Assess ring contains items to look at closely, but not necessarily trial yet - unless you think they would be a particularly good fit for you. Typically, items in the Assess ring are interesting and worth keeping an eye on.
- **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 Contributors

Contributions and source code of the CHT Technology Radar for Contributors are on [GitHub](https://github.com/medic/cht-tech-radar-contributors). Inspired by [AOE Tech Radar](https://github.com/AOEpeople/aoe_technology_radar).
119 changes: 119 additions & 0 deletions config.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,119 @@
{
"basePath": "/cht-tech-radar-contributors",
"baseUrl": "https://docs.communityhealthtoolkit.org/cht-tech-radar-contributors",
"editUrl": "https://github.dev/medic/cht-tech-radar-contributors/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": "Languages & Frameworks",
"description": "Include development languages and more low-level development frameworks, which help implement custom software of all kinds.",
"color": "#7092F5"
},
{
"id": "methods-and-patterns",
"title": "Techniques",
"description": "Include elements of a software development process, such as continuous integration, and ways of creating software, such as progressive web applications.",
"color": "#535EAA"
},
{
"id": "platforms-and-aoe-services",
"title": "Platforms",
"description": "There are things that we build software on top of, such as mobile technologies like Android or generic kinds of platforms like Amazon Web Services.",
"color": "#436D84"
},
{
"id": "tools",
"title": "Tools",
"description": "These can be components, like databases, software development tools, such as version control systems.",
"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": "assess",
"title": "Assess",
"description": "The Assess ring contains items to look at closely, but not necessarily trial yet - unless you think they would be a particularly good fit for you. Typically, items in the Assess ring are interesting and worth keeping an eye on.",
"color": "#535EAA",
"radius": 0.85,
"strokeWidth": 2
},
{
"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 Contributors",
"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 Contributors?",
"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 Contributors. Explore insights on languages, frameworks, techniques, tools and more."
}
}
Loading

0 comments on commit 26cd935

Please sign in to comment.