Repository structure
The GDI platform uses a multi-repository structure hosted on GitHub under the GenomicDataInfrastructure organisation.
Frontend repository
Next.js web application for the GDI User Portal.
| Repository name | Structure |
|---|---|
gdi-userportal-frontend | - /app: Next.js 14 app directory structure- /components: Reusable React components- /lib: Utility functions and API clients- /public: Static assets (images, fonts, config files)- /types: TypeScript type definitions |
Backend service repositories
Java/Quarkus microservices for dataset discovery service (DDS) and access management.
| Repository name | Structure |
|---|---|
gdi-userportal-dataset-discovery-service | - /src/main/java: Java source code- /src/main/resources: Configuration files- /src/test: Unit and integration tests |
gdi-userportal-access-management-service | - Structure mirrors that of DDS repository above |
CKAN repositories
Data catalogue management with custom extensions and harvesters.
| Repository name | Structure |
|---|---|
gdi-userportal-ckan-docker | - /setup: Startup scripts and configuration- /Dockerfile: Custom CKAN image build |
gdi-userportal-ckanext-gdi-userportal | - DCAT-AP 3 schema implementation - OIDC with PKCE authentication support - Custom API endpoints for DDS integration |
gdi-userportal-ckanext-dcat | - Fork of the official CKAN DCAT extension - Maps between the DCAT and CKAN models - Enables dataset series support |
gdi-userportal-ckanext-fairdatapoint | - Harvests metadata from FAIR Data Point instances |
gdi-userportal-ckanext-harvest | - Fork of official CKAN harvest extension with GDI customisations |
Documentation repository
Docusaurus-based documentation site located within the frontend repository.
| Repository name | Structure |
|---|---|
gdi-userportal-frontend/documentation | - /docs/user-guide: End-user documentation for portal usage- /docs/catalogue-managers-guide: Guide for dataset publishers and managers- /docs/developer-guide: Developer documentation (this guide)- /docs/system-admin-guide: System administration and deployment guide- /src: Docusaurus theme components and customizations- /static: Static assets for documentation site |
Branching strategy
All repositories follow the same Git workflow:
mainbranch: Production-ready codereleases/v{major}.{minor}: Release branches for maintenancefeature/*: Feature development branchesbugfix/*: Bug fix brancheshotfix/*: Critical production fixes
Common tasks and repositories
| Task | Repository |
|---|---|
| User interface changes | gdi-userportal-frontend |
| Dataset search logic | gdi-userportal-dataset-discovery-service |
| Access request workflows | gdi-userportal-access-management-service |
| DCAT and CKAN mapping | gdi-userportal-ckanext-dcat |
| Metadata schema changes | gdi-userportal-ckanext-gdi-userportal |
| Harvesting from FDP | gdi-userportal-ckanext-fairdatapoint |
| CKAN deployment config | gdi-userportal-ckan-docker |
| Documentation | gdi-userportal-frontend/documentation |
Ready to work with the codebase? Set up your environment to configure your development workspace.