# rslim087a/kubernetes-course architecture

> Architecture diagram of the GitHub repository rslim087a/kubernetes-course, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-12). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/rslim087a/kubernetes-course
- Repository: https://github.com/rslim087a/kubernetes-course

## Overview

This repository is a staged Kubernetes deployment tutorial for a grade-submission application. Its manifests progress from Pods and Services through Deployments, configuration and secrets, database resources, ingress, and Helm charts. The likely user workflow is portal access followed by API submission and database persistence, but no YAML contents or source excerpts were provided, and the README does not document runtime behavior; those relationships are therefore shown as unverified.

Main entry points: [`13-section-thirteen/grade-submission-portal/templates/grade-submission-portal-ingress.yaml`](https://github.com/rslim087a/kubernetes-course/blob/main/13-section-thirteen/grade-submission-portal/templates/grade-submission-portal-ingress.yaml) (Portal ingress), [`13-section-thirteen/grade-submission-portal/templates/grade-submission-portal-deployment.yaml`](https://github.com/rslim087a/kubernetes-course/blob/main/13-section-thirteen/grade-submission-portal/templates/grade-submission-portal-deployment.yaml) (Submission portal), [`13-section-thirteen/grade-submission-portal/templates/grade-submission-portal-service.yaml`](https://github.com/rslim087a/kubernetes-course/blob/main/13-section-thirteen/grade-submission-portal/templates/grade-submission-portal-service.yaml) (Portal service), [`13-section-thirteen/grade-submission-api/templates/grade-submission-api-deployment.yaml`](https://github.com/rslim087a/kubernetes-course/blob/main/13-section-thirteen/grade-submission-api/templates/grade-submission-api-deployment.yaml) (Submission API)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_access["User access"]
  node_ingress["Portal ingress"]
end

subgraph group_application["Application services"]
  node_portal["Submission portal"]
  node_portal_service["Portal service"]
  node_api["Submission API"]
  node_api_service["API service"]
  node_api_secrets["API secrets"]
  node_portal_config["Portal config"]
end

subgraph group_data["Persistence"]
  node_database[("MongoDB resources")]
  node_database_password["MongoDB password"]
end

node_user(("User"))

node_user -.->|"accesses"| node_ingress
node_ingress -.->|"routes to"| node_portal_service
node_portal_service -.->|"exposes"| node_portal
node_portal -.->|"submits to"| node_api_service
node_api_service -.->|"exposes"| node_api
node_api -.->|"persists to"| node_database

click node_ingress "https://github.com/rslim087a/kubernetes-course/blob/main/13-section-thirteen/grade-submission-portal/templates/grade-submission-portal-ingress.yaml"
click node_portal "https://github.com/rslim087a/kubernetes-course/blob/main/13-section-thirteen/grade-submission-portal/templates/grade-submission-portal-deployment.yaml"
click node_portal_service "https://github.com/rslim087a/kubernetes-course/blob/main/13-section-thirteen/grade-submission-portal/templates/grade-submission-portal-service.yaml"
click node_api "https://github.com/rslim087a/kubernetes-course/blob/main/13-section-thirteen/grade-submission-api/templates/grade-submission-api-deployment.yaml"
click node_api_service "https://github.com/rslim087a/kubernetes-course/blob/main/13-section-thirteen/grade-submission-api/templates/grade-submission-api-service.yaml"
click node_api_secrets "https://github.com/rslim087a/kubernetes-course/blob/main/13-section-thirteen/grade-submission-api/templates/grade-submission-api-secret.yaml"
click node_portal_config "https://github.com/rslim087a/kubernetes-course/blob/main/13-section-thirteen/grade-submission-portal/templates/grade-submission-portal-config.yaml"
click node_database "https://github.com/rslim087a/kubernetes-course/blob/main/13-section-thirteen/mongodb/mongodb-grade-submission.yaml"
click node_database_password "https://github.com/rslim087a/kubernetes-course/blob/main/13-section-thirteen/mongodb/mongodb-user-password.yaml"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_ingress,node_user toneBlue
class node_portal,node_portal_service,node_api,node_api_service,node_api_secrets,node_portal_config toneAmber
class node_database,node_database_password toneMint
```

## Components

### User access

- [Portal ingress](https://github.com/rslim087a/kubernetes-course/blob/main/13-section-thirteen/grade-submission-portal/templates/grade-submission-portal-ingress.yaml): `13-section-thirteen/grade-submission-portal/templates/grade-submission-portal-ingress.yaml`

### Application services

- [Submission portal](https://github.com/rslim087a/kubernetes-course/blob/main/13-section-thirteen/grade-submission-portal/templates/grade-submission-portal-deployment.yaml): `13-section-thirteen/grade-submission-portal/templates/grade-submission-portal-deployment.yaml`
- [Portal service](https://github.com/rslim087a/kubernetes-course/blob/main/13-section-thirteen/grade-submission-portal/templates/grade-submission-portal-service.yaml): `13-section-thirteen/grade-submission-portal/templates/grade-submission-portal-service.yaml`
- [Submission API](https://github.com/rslim087a/kubernetes-course/blob/main/13-section-thirteen/grade-submission-api/templates/grade-submission-api-deployment.yaml): `13-section-thirteen/grade-submission-api/templates/grade-submission-api-deployment.yaml`
- [API service](https://github.com/rslim087a/kubernetes-course/blob/main/13-section-thirteen/grade-submission-api/templates/grade-submission-api-service.yaml): `13-section-thirteen/grade-submission-api/templates/grade-submission-api-service.yaml`
- [API secrets](https://github.com/rslim087a/kubernetes-course/blob/main/13-section-thirteen/grade-submission-api/templates/grade-submission-api-secret.yaml): `13-section-thirteen/grade-submission-api/templates/grade-submission-api-secret.yaml`
- [Portal config](https://github.com/rslim087a/kubernetes-course/blob/main/13-section-thirteen/grade-submission-portal/templates/grade-submission-portal-config.yaml): `13-section-thirteen/grade-submission-portal/templates/grade-submission-portal-config.yaml`

### Persistence

- [MongoDB resources](https://github.com/rslim087a/kubernetes-course/blob/main/13-section-thirteen/mongodb/mongodb-grade-submission.yaml): `13-section-thirteen/mongodb/mongodb-grade-submission.yaml`
- [MongoDB password](https://github.com/rslim087a/kubernetes-course/blob/main/13-section-thirteen/mongodb/mongodb-user-password.yaml): `13-section-thirteen/mongodb/mongodb-user-password.yaml`

### Other components

- **User**

## Connections

- User → Portal ingress: accesses
- Portal ingress → Portal service: routes to
- Portal service → Submission portal: exposes
- Submission portal → API service: submits to
- API service → Submission API: exposes
- Submission API → MongoDB resources: persists to
