https://github.com/undp-data/sids-data-platform
https://github.com/undp-data/sids-data-platform
Last synced: 9 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/undp-data/sids-data-platform
- Owner: UNDP-Data
- Created: 2021-06-29T08:07:42.000Z (almost 5 years ago)
- Default Branch: staging
- Last Pushed: 2023-12-03T18:24:07.000Z (over 2 years ago)
- Last Synced: 2025-08-10T07:27:50.928Z (11 months ago)
- Language: JavaScript
- Homepage: https://sids-dashboard.github.io/SIDSDataPlatform/
- Size: 407 MB
- Stars: 0
- Watchers: 2
- Forks: 5
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# SIDS data platform
[Demo](https://sids-dashboard.github.io/SIDSDataPlatform)
## npm commands
### Project setup
```
npm install
```
### Compiles and hot-reloads for development
```
npm run serve
```
### Compiles and minifies for production
```
npm run build
```
### Lints and fixes files
```
npm run lint
```
### Start server in testing mode
```
npm run start-server
```
### Start auto testing
```
npm run ci
```
## Git workflow
```mermaid
journey
title Git workflow
section Fork
Checkout feature branch:8: Manual
Commit changes:7: Manual
Send PR to staging: 6: Manual
Publish to pages: 5: Automated
Send pr to main repo staging: 4: Manual
section Main repo
Merge pr to staging: 8: Manual
Publish to pages: 7: Automated
Send pr to production: 6: Manual
Test with Percy.io: 6: Automated
Merge pr to production: 5: Manual
Publish to hosting: 5: Automated
```
## Code base highlites
## Key vendors
[Vue](https://vuejs.org/)
SPA framework that project built on - version 2 is used.
[Vueitfy](https://vuetifyjs.com/)
Component library used for moust of the ui. Some default styles are overwriten and can be found in assests/styles folder.
[d3.js](https://d3js.org/)
Data visualisation library - version 5 is used.
## File structure
+ /assets - static files (images, icons, videos), root styles, fonts, files with root static vatiables (sdg goals, country codes etc)
+ /choro - key self-written vendor,used to generates charts on profiles & MVI views moust of d3 code is here
+ /services/index.js - API calls (backend endpoints, configs and API call functions)
+ /components - reusable vue components shared across different views
+ /views - page components
+ /views/children - components that used only on this page (e.g. navigations)
+ /store - vuex store
+ /store/texts.store - text content for tooltips and some of the pages
+ /store/profiles.store - store used for profiles page
+ /store/sids.store - store used for portfolio page
+ /store/indicators.store - store used for MVI & indicators pages
+ /store/loader.store - page loader state
+ /router - vue router config
+ /gis - gis page vendors with
## CI/CD
### Automated testing
Automated testing is based on screenshot comparasion made with [percy.io](https://percy.io/) cloud service and [cypress](https://www.cypress.io/) testing framework.
Cypress configuration is in /cypress.json and /cypress/.
Percy configuration can be found on cloud platform.
## Github actions
### publish-to-pages
Triggers on merge to staging, publishes new vesion to github pages of the main repo
### CI-percy
Triggers on pull request to production, makes creenshot comparation of a new and old versions, if there are differences requres approval on percy cloud platform for PR to me merged.
Github secret - PERCY_TOKEN, authorisation token for percy platform
### Publish production to ftp
Builds project with --production flag and uploads files to the data.undp.org hosting via ftp.
Github secret - FTP_PASSWORD , ftp password.
## Cloud vendors
[percy.io](https://percy.io/)
Testing tool based on screenshot comparaion
[Sentry.io](https://Sentry.io/)
Error logging tool, enebled only for [production](data.undp.org/sids) environment
Intialized in /src/main.js file
[Google analytics](https://analytics.google.com/)
Site analytics tool, initialized in /public/index.html, enebled only for [production](data.undp.org/sids) environment