Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
5e890e2
remove .env and copy example in .env.example to avoid push .env
idelcano Feb 13, 2026
d0c0b9d
update gitignore
idelcano Feb 13, 2026
dd9cb09
feat: migrate legacy app (squashed)
idelcano Feb 13, 2026
584350b
fix order
idelcano Feb 13, 2026
616ed79
Added translations
idelcano Feb 13, 2026
3c465d7
added yarn 4 to gitignore
idelcano Feb 13, 2026
f7f378f
yarn 4 and node 22 update
idelcano Feb 13, 2026
c807384
update travis
idelcano Feb 13, 2026
795eb7b
added tentative workflows and pre-push checks
idelcano Feb 13, 2026
fad674e
added readme
idelcano Feb 13, 2026
b49e1f5
fix variable names
idelcano Feb 13, 2026
3b464e1
change app name
idelcano Feb 13, 2026
acac668
fix default urls
idelcano Feb 13, 2026
097bca4
clean readme
idelcano Feb 13, 2026
003009f
traslate modes
idelcano Feb 13, 2026
eacd5b7
Added dhis2 header and git commit hash
idelcano Feb 13, 2026
96a2639
added translations
idelcano Feb 13, 2026
6d3a823
fix bug: (some metadata without uids or table with wrong header
idelcano Feb 13, 2026
b7d0f2d
added feature import json package
idelcano Feb 13, 2026
620de0d
added translations
idelcano Feb 13, 2026
ff7b490
improve dependency graph rules and dynamic type handling
idelcano Feb 13, 2026
c195df7
fix title
idelcano Feb 16, 2026
6d52225
change order
idelcano Feb 18, 2026
908395b
fix bug in item names
idelcano Feb 18, 2026
fcca43f
added 'direct' mode to find only the metadata directly associated wit…
idelcano Feb 18, 2026
d338cad
delegate github actions
idelcano Feb 24, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .env → .env.example
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,4 @@ BROWSER=false
VITE_PORT=8081

VITE_DHIS2_BASE_URL=https://dev.eyeseetea.com/play
VITE_DHIS2_AUTH='admin:district'
DHIS2_AUTH='admin:district'
11 changes: 11 additions & 0 deletions .github/workflows/dtrack_syft_shared.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
name: DTrack Syft (shared)

on:
workflow_dispatch:
pull_request:
types: [opened]

jobs:
syft:
uses: EyeSeeTea/security-tests/.github/workflows/generate_bom_syft.yml@feature/dependanbot-actions
secrets: inherit
11 changes: 11 additions & 0 deletions .github/workflows/dtrack_yarn4_shared.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
name: DTrack Yarn4 (shared)

on:
workflow_dispatch:
pull_request:
types: [opened]

jobs:
yarn4:
uses: EyeSeeTea/security-tests/.github/workflows/generate_bom_v4.yml@feature/dependanbot-actions
secrets: inherit
15 changes: 14 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.

# dependencies
/node_modules

Expand All @@ -12,6 +11,7 @@ manifest.webapp

# misc
.DS_Store
.env
.env.local
.env.development.local
.env.test.local
Expand All @@ -24,6 +24,7 @@ manifest.webapp
npm-debug.log*
yarn-debug.log*
yarn-error.log*
bom.json

src/locales/
src/react-app.d.ts
Expand All @@ -42,3 +43,15 @@ cypress/fixtures/
docs/
# generated by vite-bundle-visualizer
dist/

# Yarn 4
.yarn/*
!.yarn/releases
!.yarn/releases/**
!.yarn/plugins
!.yarn/plugins/**
!.yarn/patches
!.yarn/patches/**
!.yarn/versions
!.yarn/versions/**

13 changes: 13 additions & 0 deletions .husky/pre-push
Original file line number Diff line number Diff line change
Expand Up @@ -2,3 +2,16 @@
. "$(dirname "$0")/_/husky.sh"

yarn prettify && yarn lint && yarn update-po && yarn test

if command -v snyk >/dev/null 2>&1; then
if snyk test; then
:
else
echo "snyk test failed; attempting authentication"
snyk auth || echo "snyk auth failed (non-blocking)"
snyk test || echo "snyk test failed (non-blocking)"
fi
echo "Tip: you can generate an HTML report with: snyk test --all-projects --dev --json-file-output=snyk.json || true && snyk-to-html -i snyk.json -o snyk-report.html -s (install snyk-to-html)"
else
echo "snyk not found. Install it to run snyk auth/test."
fi
2 changes: 1 addition & 1 deletion .nvmrc
Original file line number Diff line number Diff line change
@@ -1 +1 @@
v20.19.0
v22
5 changes: 3 additions & 2 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -1,12 +1,13 @@
language: node_js
node_js:
- 12.13.0
- 22
dist: bionic
cache:
directories:
- "$HOME/.cache"
before_install:
- echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p
- corepack enable
# Install python dependencies
- sudo apt-get update
- sudo apt-get install python3 python python3-setuptools docker.io docker-compose
Expand All @@ -26,7 +27,7 @@ before_install:
# Start docker service
- d2-docker start eyeseetea/dhis2-data:2.30-sierra-leone -d --port 8080
install:
- yarn install --frozen-lockfile
- yarn install --immutable
- yarn cy:verify
- yarn build
script:
Expand Down
942 changes: 942 additions & 0 deletions .yarn/releases/yarn-4.12.0.cjs

Large diffs are not rendered by default.

3 changes: 3 additions & 0 deletions .yarnrc.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
nodeLinker: node-modules

yarnPath: .yarn/releases/yarn-4.12.0.cjs
25 changes: 20 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,21 @@
## Quick Start (From Scratch)

```
$ nvm use
$ corepack enable
$ yarn install
$ cp .env.example .env.local
# Edit .env.local with your DHIS2 instance values
$ yarn start
```

Open `http://localhost:8081`.

## Setup

```
$ nvm use # uses node version in .nvmrc
$ nvm use # uses Node 22 from .nvmrc
$ corepack enable
$ yarn install
```

Expand All @@ -15,7 +29,7 @@ $ yarn build

## Development

Copy `.env` to `.env.local` and configure DHIS2 instance to use. Then start the development server:
Copy `.env.example` to `.env.local` and configure the DHIS2 instance to use. Then start the development server:

```
$ yarn start
Expand All @@ -33,9 +47,10 @@ $ yarn test

### Clean architecture folder structure

- `src/domain`: Domain layer of the app (entities, use cases, repository definitions)
- `src/data`: Data of the app (repository implementations)
- `src/webapp/pages`: Main React components.
- `src/domain`: Domain layer (entities, resource types, repository definitions)
- `src/application`: Application layer (use cases)
- `src/data`: Infrastructure layer (DHIS2 data engine repositories)
- `src/webapp/pages`: Main React pages.
- `src/webapp/components`: React components.
- `src/utils`: Misc utilities.
- `i18n/`: Contains literal translations (gettext format)
Expand Down
148 changes: 146 additions & 2 deletions i18n/en.pot
Original file line number Diff line number Diff line change
Expand Up @@ -5,21 +5,102 @@ msgstr ""
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
"POT-Creation-Date: 2024-06-26T10:58:19.149Z\n"
"PO-Revision-Date: 2024-06-26T10:58:19.149Z\n"
"POT-Creation-Date: 2026-02-13T11:28:44.684Z\n"
"PO-Revision-Date: 2026-02-13T11:28:44.684Z\n"

msgid "Add"
msgstr ""

msgid "List"
msgstr ""

msgid "Select a row to view relationships."
msgstr ""

msgid "Loading graph..."
msgstr ""

msgid "Loading..."
msgstr ""

msgid "Load combos"
msgstr ""

msgid "Load more"
msgstr ""

msgid "All loaded"
msgstr ""

msgid "Visualization"
msgstr ""

msgid "2D View"
msgstr ""

msgid "3D Tree"
msgstr ""

msgid "3D Timeline"
msgstr ""

msgid "Open API"
msgstr ""

msgid "Focus in graph"
msgstr ""

msgid "Colors"
msgstr ""

msgid "Textures"
msgstr ""

msgid "Click to focus - Right click opens the API"
msgstr ""

msgid "Resource type"
msgstr ""

msgid "Fields"
msgstr ""

msgid "Filters (one per line or separated by ;)"
msgstr ""

msgid "Page"
msgstr ""

msgid "Page size"
msgstr ""

msgid "Fetch all (paging=false)"
msgstr ""

msgid "Fetch"
msgstr ""

msgid "No results"
msgstr ""

msgid "Avatar"
msgstr ""

msgid "Back"
msgstr ""

msgid "Help"
msgstr ""

msgid "Metadata Visualizer"
msgstr ""

msgid "Login {{baseUrl}}"
msgstr ""

msgid "Base URL not found in manifest.webapp (see DHIS2-19708)"
msgstr ""

msgid "Hello {{name}}"
msgstr ""

Expand All @@ -28,3 +109,66 @@ msgstr ""

msgid "Section"
msgstr ""

msgid "Unknown JSON parsing error"
msgstr ""

msgid "Metadata package JSON"
msgstr ""

msgid "Metadata type"
msgstr ""

msgid "Search"
msgstr ""

msgid "Filter by id or name"
msgstr ""

msgid "Select a metadata package JSON file to start"
msgstr ""

msgid "Loading package..."
msgstr ""

msgid "{{types}} types"
msgstr ""

msgid "{{items}} items"
msgstr ""

msgid "No results for this type/filter"
msgstr ""

msgid "Select a row to view dependencies"
msgstr ""

msgid "Selected metadata JSON"
msgstr ""

msgid "Metadata views"
msgstr ""

msgid "Instance Metadata"
msgstr ""

msgid "JSON Package"
msgstr ""

msgid "Loading results..."
msgstr ""

msgid "{{total}} total"
msgstr ""

msgid "page {{page}} of {{pageCount}}"
msgstr ""

msgid "Fetching metadata..."
msgstr ""

msgid "Prev"
msgstr ""

msgid "Next"
msgstr ""
Loading
Loading