Skip to content
This repository has been archived by the owner on Feb 19, 2024. It is now read-only.

Commit

Permalink
Merge pull request #464 from onaio/staging
Browse files Browse the repository at this point in the history
Release v1.4.0
  • Loading branch information
Conor Kelly authored Apr 29, 2020
2 parents a4b54c3 + 834dbe6 commit f24e092
Show file tree
Hide file tree
Showing 11 changed files with 34,148 additions and 332 deletions.
1 change: 1 addition & 0 deletions build/gisida.js

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion build/gisida.js.map

Large diffs are not rendered by default.

106 changes: 106 additions & 0 deletions docs/roadmaps/2020.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,106 @@
## Thematic Areas
1. Productization
* **P1** Converging Divergent Code
* **P2** Standardizing Custom Features
* **P3** Feature Documentation
* **P4** Core Feature Development

2. Operational Support
* **O1** Support Triaging Protocols
* **O2** Client Driven Feature Development
* **O3** Engineering Support

3. Modernization
* **M1** FE Standardization
* **M2** Migrating Generic Components
* **M3** Mapbox React Component

4. Gisida as a Package Library
* **G1** Gisida 2.0 Implementation Strategy
* **G2** Package Development
* **G3** Storybooks

5. Project Workflow and Repository Health
* **W1** Project Management Protocols
* **W2** Service Integrations and Workflow Optimization
* **W3** Repository Maintenance
* **W4** Technical Documentation

6. Security
* **S1** Auditing Codebases for Issues
* **S2** Standardize Auth and RBA
* **S3** Protect Private Data

## Quarterly Roadmaps
Column and Emoji usage [is documented here](./README.md#quarterly-tables).

### Q1
Hemi | Status | Thematic Area | Story | Owners
-- | -- | -- | -- | --
🐃 | ✅ | P1,P2 | Standardize oAuth2 login implementation
🐃 | ✅ | S3,M1 | Use env files to hide sensitive app configurations
🦄 | ✅ | O2 | Add Heatmap Layer support
🐋 | ✅ | O3 | Lotfa Profile View Customizations
🐃 | ⤵️ | W3 | Repository Branch and PR Cleanup
🐃 | ✅ | W4 | Establish a /docs folder for technical and contribution docs
🐃 | ✅ | W2 | Add test coverage reports
🐃 | ⤵️ | M1,W3 | Increase test coverage to 50%
🐃 | ⤵️ | M1 | Add typescript types
🦄 | ✅ | M1,O2,P2,O3 | Standardize (public) Superset iFrame Dashboards
🦄 | ✅ | O2,S3 | Require Authorization to enable Private Layers
🐋 | ✅ | O3 | UNICEF Pacific Operational Support
🐋 | ⤵️ | O3 | MESH2 / DPP & Shine Operational Support
🐋 | ⤵️ | O3 | UNICEF Cambodia Operational Support
🐋 | ⤵️ | O3 | UG Atlas Phase 3
🐋 | ⤵️ | O3 | UNICEF Philippines Operational Support
🐋 | ⤵️ | O3 | UNOPS Mozambique Operational Support
🐋 | ✅ | O3 | Service Mapping Nutrition Sites Layer Performance
🐋 | ✅ | O3 | UNICEF Indonesia Operational Support
🐋 | ✅ | O3 | Global Communities Operational Support
🐃 | ✅ | W1 | Establish Versioning Protocols
🐃 | ✅ | M1,P1 | Design High-Level Architecture of Gisdia 2.0
🐃 | ⤵️ | W2,O3 | Create CRA Templates to streamline new client setup


### Q2
Hemi | Status | Thematic Area | Story | Owners
-- | -- | -- | -- | --
🐋 | ⤵️🔨 | O3 | UG Atlas Phase 3 | EM,CK
🐃 | ⤵️🔨 | W3 | Repository Branch and PR Cleanup | PK
🐃 | ⤵️🔨 | M1,W3 | Increase test coverage to 50% | EM
🐃 | 🔨 | M1 | Add Typescript Types | KM
🐋 | ❌ | O3 | Create list of operational support and create schedule, better tracking | PK,CK
🐃 | 🔨 | W2,O3 | Create CRA Templates to streamline new client setup | EM,KM
🦄 | 🔨 | O2 | Mapping State to URL | PK,KM
🐃 | ❌ | W2 | Automating Client Deployments | EM
🐋 | ❌ | M1 | Superset Authentication check Fix | CK
🐃 | ❌ | M1 | Define and Utilize Layer Defaults | PK,KM
🐃 | 🔨 | P3 | Product Feature List Documentation | AK
🐋 | ❌ | P4 | Google Sheets and HDX Integrations | EM
🐃 | ❌ | W2 | Turn on Security Integrations | UK
🐃 | ❌ | W1 | Project Management Documentation | UK,AK
🐃 | ❌ | W2 | Strict Linting on All Repositories | CK
🐃 | ❌ | P3,W4 | Generate Documentation from Docstrings | KM
🐃 | ❌ | M2 | Define list of Components that are reusable and should migrate (and ideally migrate 2-3) | CK
🐃 | ❌ | M1 | Standardize use of the Superset Connector (as a Service) (conor to add more details) | CK
🦄 | ❌ | P2 | Generalize and Parameterize Custom Profile Views & Infographic Dashboards (if part of a project) | 🆘
🐃 | ❌ | M1,W3 | Increase Gisida Performance and Optimization (requires technical discussion to scope) | CK
🦄 | ❌ | O2 | Suggested Design Updates from Unicef Mozambique | 🆘


## Wish List
1. 🏹Merging Divergent Branches
2. Use MapBox JS as a Library
3. Gisida 2.0 as a Learna Library
4. Strict Linting on All Repositories
5. Increase Doc-String Coverage to 100%
6. Increase Typescript Declaration Coverage to 100%
7. 🏹 Migrate Generic and Reusable code to JS Tools
8. 🏹 Refactor Reducers/Actions/Selectors into Ducks Modules
9. Initiate Gisida Store with Reducer Registry
10. Akuko / Layer Builder Connector
11. Standardize Role Based Access to Layers and View
12. Use Superset Slices for Infographic Dashboards
13. Add Storybooks for Component/Package/API Documentation
14. Responsive Design and Mobile Optimization
15. Increase Test Coverage to 95%
47 changes: 47 additions & 0 deletions docs/roadmaps/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
# Gisida Roadmaps
* [2020](./2020.md)

## Roadmap Structure

### Thematic Areas
Each year we will define and focus on key thematic areas. Each the Thematic Area has numbered (in bold) sub-sections which issues we worked on will lie under. These should represent our defining tenants as a team and reflect the intrests of both business development and core product design/engineering.

### Quarterly Tables
Pulling heavily from [SRE](https://github.com/onaio/playbooks/blob/master/docs/roadmaps/2020.md) and [Canopy](https://github.com/onaio/canopy/blob/master/docs/roadmaps/2020.md) roadmaps our quarterly tables pshould be structured with the columns:

* Hemisphere
* 🐋 Client - Stories which are client centric
* 🐃 Core - Stories which are core centric
* 🦄 Core for Client - Stories which require core updates for a client

* Status
* ❌ Not Started
* 🔨 In Progress
* 🚧 Blocked
* ✅ Complete
* ⤵️ Moved to Next Quarter
* 🛑 Removed from Roadmap

* Thematic Areas
* Comma separated list of Goals the Story works towards

* Story
* The name of the story
* Linked to tickets / milestones

* Owners
* 🆘 Needs Assignment
* Comma separated initials of collaborators leading the story

## Roadmap Maintenance
These Rodamaps are living documents and require scheduled grooming to remain accurate and reliable.

### Weekly Upkeep
Following roadmap check-ins during the Weekly Gisida Team Meetings, the Roadmap Tables should be updated as necessary.

### Quarterly Upkeep
Following Quarterly Roadmap Meetings the Quarterly Roadmap Tables must be updated:
* Copy incomplete stories to the next quarter with their current status
* In the new Quarterly Table, prepend the Story status with ⤵️ to denote it was copied from a previous quarter
* In the old Quarterly Table, set the status of incomplete stories to ⤵️, denoting it as copied to the next quarter
* Add Stories to the new Quarterly Table as agreed upon in the Quarterly Roadmap Meeting
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "gisida",
"version": "1.3.6",
"version": "1.4.0",
"description": "A dashboard builder library for map visualizations",
"keywords": [
"data visualization",
Expand Down
6 changes: 3 additions & 3 deletions src/map/addLayer.js
Original file line number Diff line number Diff line change
Expand Up @@ -101,7 +101,7 @@ export default function (layer, mapConfig, dispatch) {
stops: layerObj.colorStops,
type: 'categorical',
}) ||
layer.categories.color,
layer.categories && layer.categories.color,
'circle-opacity': 0.8,
'circle-stroke-color': layer['radius-prop'] ? 'transparent' : '#fff',
'circle-stroke-width':
Expand Down Expand Up @@ -141,13 +141,13 @@ export default function (layer, mapConfig, dispatch) {
const [first] = second;
layerStops = first;
}
} else {
} else if (!stops && !layer.paint) {
layerStops = [[0, 0]];
}
if (layer['is-radius-distance']) {
// handle radius as a distance on the map
styleSpec.paint['circle-radius'] = buildRadiusAsDistanceExpression(layer);
} else {
} else if (!stops && !layer.paint) {
styleSpec.paint['circle-radius'] = {
property: layer.source.join[0],
stops: layerStops,
Expand Down
Loading

0 comments on commit f24e092

Please sign in to comment.