dashboard-admin-front

Admin Dashboard

https://github.com/worldwewant/dashboard-admin-front

Science Score: 44.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (12.8%) to scientific vocabulary
Last synced: 6 months ago · JSON representation ·

Repository

Admin Dashboard

Basic Info
  • Host: GitHub
  • Owner: worldwewant
  • License: mit
  • Language: TypeScript
  • Default Branch: main
  • Homepage:
  • Size: 483 KB
Statistics
  • Stars: 0
  • Watchers: 2
  • Forks: 0
  • Open Issues: 0
  • Releases: 0
Created over 2 years ago · Last pushed about 2 years ago
Metadata Files
Readme License Citation

README.md

Admin Dashboard

Admin dashboard for downloading campaigns data to a CSV file format.

Login using the campaign code as username and the password set for the campaign as an environment variable in the back-end. Check the Environment variables section in the back-end repo.

It is also required to configure the environment variables for either Google or Azure in the back-end.

The username admin has access to all campaigns data, to enable the admin you must set the environment variable ADMIN_PASSWORD in the back-end.

When login succeeds, the back-end returns an access token to validate the user when making requests to the back-end. This token is valid for ~30 days.

The following functionalities are included:

  • Download all campaign data.
  • Download campaign data between dates (requires the field ingestion_time in the CSV file used in the back-end).
  • Download campaign countries breakdown.
  • Download campaign source files breakdown (requires the field data_source in the CSV file used in the back-end).

Environment variables

Required:

  • NEXT_PUBLIC_DASHBOARD_API_URL= The url to the Dashboard API.

System requirements

  • Node.js 18 or above.

Install

Configure .env.local. with the environment variables.

Then:

bash npm install npm run build

Run

bash npm run start

Lint project

bash npm run lint

Format project

bash npm run format

Deployment to Google App Engine

Add the required environment variables to Repository secrets in GitHub. Add optional environment variables if needed. These variables will be loaded into app.yaml.

Inside app.yaml change service to your service name on App Engine.

For deployment, it is also required to add the following environment variables to Repository secrets:

  • SERVICE_NAME= The service name in App Engine.
  • GOOGLE_CREDENTIALS_JSON_B64= Content of credentials.json file in Base64 format.
  • SERVICE_ACCOUNT= The Google Cloud service account.
  • PROJECT_ID= The Google Cloud project id.

Add/Modify resources in app.yaml as needed.

The GitHub action at .github/workflows/prod-deploy-google-app-engine.yaml will trigger a deployment to Google App Engine on push or merge.

This script builds a Docker image and pushes to Google Container Registry and then deploys. In the future we may change to a direct Dockerless deployment which would use app.yaml. No authentication is needed because authentication is provided via the Google App Engine service account, whose credentials are stored in the GitHub secret GOOGLE_CREDENTIALS_JSON_B64 (to change this, go to the GitHub web interface and got o Settings -> Secrets and variables -> Actions. You will need to be an administrator on the GitHub repo to modify these credentials).

There is also a manual Google App Engine deployment file set up in app.yaml. You can deploy manually from the command line using gcloud app deploy app.yaml (you must directly include the env variables in app.yaml). You need to install Google Cloud CLI (Command Line Interface) and be authenticated on the Google Cloud Platform service account.

Deployment to Azure Web Apps

Add the following environment variables to Repository secrets in GitHub:

  • AZURE_WEBAPP_PUBLISH_PROFILE= The publish profile of your web app.
  • AZURE_WEBAPP_NAME= The web app name.
  • NEXT_PUBLIC_DASHBOARD_API_URL= The url to the Dashboard API.

At Configurations -> General settings -> Startup command add node server.js.

The GitHub action at .github/workflows/prod-deploy-azure-webapps.yaml will trigger a deployment to Azure Web App on push or merge.

Workflows

In each repository there's two workflows (To deploy to Google or Azure), make sure to only enable the correct workflow in the repository on GitHub: https://docs.github.com/en/actions/using-workflows/disabling-and-enabling-a-workflow.

Legacy campaigns

This section can be ignored as it details some information of dashboards used with this project originally.

Additional environment variables:

  • NEXT_PUBLIC_PMNCH_DASHBOARD_API_URL= The url to the PMNCH Dashboard API.

License

MIT License.

Owner

  • Name: worldwewant
  • Login: worldwewant
  • Kind: organization

Citation (CITATION.cff)

cff-version: 1.2.0
message: "If you use this software, please cite it as below."
authors:
- family-names: "Wood"
  given-names: "Thomas"
  orcid: "https://orcid.org/0000-0001-8962-8571"
- family-names: "Jacobs"
  given-names: "Zairon"
title: "Dashboard"
version: 0.5.0
date-released: 2023-12-08
url: "https://explore.whiteribbonalliance.org/en/healthwellbeing"

GitHub Events

Total
Last Year

Dependencies

.github/actions/app-yaml-replace-env-variables/action.yaml actions
  • Dockerfile * docker
.github/workflows/prod-deploy-azure-webapps.yaml actions
  • actions/checkout v4 composite
  • actions/download-artifact v3 composite
  • actions/setup-node v3 composite
  • actions/upload-artifact v3 composite
  • azure/webapps-deploy v2 composite
.github/workflows/prod-deploy-google-app-engine.yaml actions
  • ./.github/actions/app-yaml-replace-env-variables * composite
  • actions/checkout v3 composite
  • google-github-actions/auth v1 composite
  • google-github-actions/setup-gcloud v1 composite
.github/actions/app-yaml-replace-env-variables/Dockerfile docker
  • python 3.9-alpine build
Dockerfile docker
  • base latest build
  • node 18-alpine build
package-lock.json npm
  • 364 dependencies
package.json npm
  • @types/node 20.5.7 development
  • @types/react 18.2.21 development
  • @types/react-datepicker 4.15.0 development
  • @types/react-dom 18.2.7 development
  • @types/uuid 9.0.3 development
  • autoprefixer 10.4.15 development
  • eslint 8.48.0 development
  • eslint-config-next 13.4.19 development
  • postcss 8.4.31 development
  • prettier 2.7.1 development
  • prettier-plugin-tailwindcss 0.1.12 development
  • sass 1.54.0 development
  • tailwindcss 3.3.3 development
  • typescript 5.2.2 development
  • @headlessui/react 1.7.14
  • @hookform/resolvers 2.9.7
  • @types/js-cookie 3.0.6
  • js-cookie 3.0.5
  • jwt-decode 4.0.0
  • next 14.0.4
  • react 18.2.0
  • react-datepicker 4.16.0
  • react-dom 18.2.0
  • react-hook-form 7.43.9
  • react-query 3.39.3
  • uuid 9.0.0
  • zod 3.22.4
  • zustand 4.4.1
.github/actions/app-yaml-replace-env-variables/requirements.txt pypi
  • pyyaml ==6.0.1