Logo Lanfrica

mamanambiya/afrigen-beacon-v2

Domain:

healthcare

Record type:

software
Creator:
mam
Host:
GA4GH Beacon v2 API — genomic variant discovery service for African genomics datasets # AfriGen-D Beacon v2 — API + UI **Production genomic data discovery service implementing the GA4GH Beacon v2 specification.** ## What's in this repo This is a **monorepo** containing both the API (server) and the UI (web client), plus data-loading tools and infra config. They live in sibling directories and are deployed as separate containers behind one reverse proxy. | Path | Role | Stack | Production URL | |------|------|-------|----------------| | **`beacon_api/`** + **`beacon_project/`** | **Backend API** — Beacon v2 endpoints (`/api/g_variants`, `/api/datasets`, …) | Django 4.0 + DRF + MongoEngine | `api-beacon.afrigen-d.dev` | | **`frontend/`** | **Web UI** — query form, results table, datasets browser | Next.js 14 (App Router) + TypeScript + Tailwind | `beacon.afrigen-d.org` | | **`afrigend-beacon2-tools/`** | Data-loading toolkit — VCF→Beacon transformer, phenotype loader, MongoDB import/export | Python | (offline) | | **`compose/`** | Docker Compose stacks for dev / prod / frontend-only | YAML | — | | **`nginx/`** | Production reverse proxy config (the proxy actually serving prod today) | nginx | — | | **`scripts/`** | Deploy / monitor / data-load operational scripts | Bash + Python | — | | **`nextflow/`** | Optional pipeline for bulk data ingestion at scale | Nextflow | — | | **`docs/`** | API reference, conformance results, security docs | Markdown | — | **Data layer** (containerised, internal only): MongoDB 5.0 (genomic data, indexed by chromosome/position) + Redis 6 (response cache, rate-limit counters). > The API and UI are deployed at **different subdomains** today — `api-beacon.afrigen-d.dev` > serves the API, `beacon.afrigen-d.org` serves the UI. The UI calls the API at runtime > via the relative `/api/...` path, which the reverse proxy routes to the API container. ## Runtime architecture ``` ┌────────────────────────────────────────────────────────────┐ │ nginx (production reverse proxy, TLS termination) …