Suite architecture
The infrastructure repository is the integration control plane: it records how the other repositories are built, versioned, and wired together. Product code stays in its own repos; the suite repo holds orchestration, contracts, and documentation sources (including PlantUML diagrams where applicable).
The main application’s canonical GitHub repository is courseforge/course-builder under the courseforge organization (successor to menkelabs/course-builder).
Logical relationships
- infrastructure drives pipelines and pins versions for tekton-dag, the video documentation generator (jmjava/documentation-generator), and course-builder.
-
tekton-dag executes build steps that target course-builder (and other artifacts as you define them).
- The video documentation generator consumes course-builder (and related) sources or metadata to produce video-oriented documentation outputs.
For suite-wide relationship text and the primary architecture diagram (PNG from PlantUML), see the Suite handbook — sources live in jmjava/documentation-generator under docs/suite/ and are synced into this site on each publish.
Infrastructure-only diagrams (deployment details, internal design) may still live under diagrams/ in courseforge/infrastructure; use that repository’s scripts/plantuml-gen.sh and vendored JAR under src/plantuml/.
Deployment topology (local vs AWS)
Local development is centered on running course-builder on a workstation (see courseforge/course-builder); it does not need to mirror every AWS component.
AWS hosts managed databases, Argo CD for GitOps against live clusters, and the production-grade networking and identity stack. That split is intentional—one-to-one parity is not required. Details live in docs/environment-model.md in courseforge/infrastructure.
Typical flow
-
A change lands in course-builder (or another product repo).
-
infrastructure triggers a pipeline defined with or executed by tekton-dag.
- Build artifacts are produced; the video documentation generator may run as a suite step using the same pinned revision or release metadata.
- Published outputs (images, packages, static sites) are promoted according to suite policy.
Diagrams
- Suite relationships: Suite handbook (diagram sourced from documentation-generator, PlantUML JAR vendored there).
- Infrastructure-specific: courseforge/infrastructure
diagrams/andscripts/plantuml-gen.shfor diagrams that are not part of the public suite handbook.