Planning
This is a high level planning document for discussions, until we have a common place for Tasks/Issues.
This only covers the implementation aspects of the project.
- Resolve Project Name : epicenter/epicentre
- In general do we adopt canadian spelling
- How much i18n do we include for demo
- Authentication / Authorization
- Currently using discord
- No authorization, except POC for logged in state.
- select a final authentication authority
- what is required for demo
- Move the GitHub repo to
https://github.com/PHACDataHub/phac-epi-garden- The repo has been created but the CI/CD has not been moved.
- will we keep vercel deployments for demo, if so which domain name
- The repo has been created but the CI/CD has not been moved.
- GraphQL
- Data is being transported to client using TRPC
- For developer, this has similar expressivity, and enforces type safety from schema, to front end code.
- Initial implementation of GraphQL endpoint has been done with a single entity, to de risk
- Data is being transported to client using TRPC
- Review Database Model
- Canonical names for database entities/fields
- naming conventions: pluralization/case need to be validated
- Documentation
- Each entity and relation should be documented to describe it's intent and invariants
- e.g. root of org_tiers, relation ro tier_level
- Canonical names for database entities/fields
- GCP deployments
- Testing
- Has not started
- Unit testing (jest/react testing library)
- End-to-end (cypress/playwright)
Specific Issues
Deploy to GCP
- Obtain a domain name or zone (*.epicenter.phac.alpha.canada.ca)
- this name cannot be used on vercel
- Docker container build
- Deploy to Cloud Run
- No (CloudRun) Domain mapping support in canada
- Alternative: deploy to US Region
- Alternative: Manually create:
- Load Balancer / Endpoints / certificates / etc...
Preview deployments
Adjust CI/CD and neon integration to preserve preview deploys (feature branches). This seems to be related to vercel/neon integration.
Org Chart
D3, although a fantastic visualization library has a fundamentally different way of treating state dynamics, and is always a challenge to integrate with React.
This component should be replaced.
The org_tier/person chart (d3), has unresolved peer dependencies.
- d3 is locked to a very old version. The peer deps from the chart we imported specify
"d3": ">= 3.x < 4"
"@unicef/react-org-chart": "^0.3.4",
"d3": "^3.5.17",
"react-organizational-chart": "^2.2.1",