Skip to main content

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 nameStructure
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 nameStructure
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 nameStructure
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 nameStructure
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:

  • main branch: Production-ready code
  • releases/v{major}.{minor}: Release branches for maintenance
  • feature/*: Feature development branches
  • bugfix/*: Bug fix branches
  • hotfix/*: Critical production fixes

Common tasks and repositories

TaskRepository
User interface changesgdi-userportal-frontend
Dataset search logicgdi-userportal-dataset-discovery-service
Access request workflowsgdi-userportal-access-management-service
DCAT and CKAN mappinggdi-userportal-ckanext-dcat
Metadata schema changesgdi-userportal-ckanext-gdi-userportal
Harvesting from FDPgdi-userportal-ckanext-fairdatapoint
CKAN deployment configgdi-userportal-ckan-docker
Documentationgdi-userportal-frontend/documentation

Ready to work with the codebase? Set up your environment to configure your development workspace.