# pae9cob-s2367/oracle-dba architecture

> Architecture diagram of the GitHub repository pae9cob-s2367/oracle-dba, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-28). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/pae9cob-s2367/oracle-dba
- Repository: https://github.com/pae9cob-s2367/oracle-dba

## Overview

This is an interactive Oracle DBA learning simulator: users choose a lab module, work through a guided scenario, enter commands in a simulated terminal, and see scenario state and completion feedback. The ten modules cover architecture, listener and instance lifecycle, storage, access control, migration, database links, and RAC. The excerpts show the route dispatch, shared terminal, state store, and several module integrations; wiring inside unsampled module implementations is not assumed.

Main entry points: [`components/ModuleClient.tsx`](https://github.com/pae9cob-s2367/oracle-dba/blob/main/components/ModuleClient.tsx) (Module dispatcher), [`components/modules/Module2.tsx`](https://github.com/pae9cob-s2367/oracle-dba/blob/main/components/modules/Module2.tsx) (Listener), [`components/modules/Module3.tsx`](https://github.com/pae9cob-s2367/oracle-dba/blob/main/components/modules/Module3.tsx) (Startup and shutdown), [`components/Terminal.tsx`](https://github.com/pae9cob-s2367/oracle-dba/blob/main/components/Terminal.tsx) (Command terminal)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_entry["Lab entry"]
  node_lab["Module catalog<br/>[page.tsx]"]
  node_route["Module route<br/>[page.tsx]"]
end

subgraph group_runtime["Module runtime"]
  node_client["Module dispatcher<br/>[ModuleClient.tsx]"]
  node_terminal["Command terminal<br/>[Terminal.tsx]"]
  node_state["Database state"]
  node_completion["Completion banner"]
end

subgraph group_foundation["Core DBA labs"]
  node_m1["Architecture<br/>[Module1.tsx]"]
  node_m2["Listener<br/>[Module2.tsx]"]
  node_m3["Startup and shutdown<br/>[Module3.tsx]"]
end

subgraph group_admin["Administration labs"]
  node_m4["Tablespaces<br/>[Module4.tsx]"]
  node_m5["Users and privileges<br/>[Module5.tsx]"]
  node_m6["Roles<br/>[Module6.tsx]"]
  node_m7["User profiles<br/>[Module7.tsx]"]
end

subgraph group_advanced["Advanced labs"]
  node_m8["Data migration<br/>[Module8.tsx]"]
  node_m9["Database links<br/>[Module9.tsx]"]
  node_m10["Oracle RAC<br/>[Module10.tsx]"]
end

node_learner(("Learner"))

node_learner -->|"browses"| node_lab
node_lab -->|"links module"| node_route
node_learner -->|"opens module"| node_route
node_route -->|"renders"| node_client
node_client -->|"dispatches"| node_m1
node_client -->|"dispatches"| node_m2
node_client -->|"dispatches"| node_m3
node_client -->|"dispatches"| node_m4
node_client -->|"dispatches"| node_m5
node_client -->|"dispatches"| node_m6
node_client -->|"dispatches"| node_m7
node_client -->|"dispatches"| node_m8
node_client -->|"dispatches"| node_m9
node_client -->|"dispatches"| node_m10
node_m2 -->|"renders; sends commands"| node_terminal
node_m3 -->|"renders; sends commands"| node_terminal
node_m7 -->|"renders; sends commands"| node_terminal
node_m10 -->|"renders; sends commands"| node_terminal
node_m2 -->|"reads and updates"| node_state
node_m3 -->|"reads and updates"| node_state
node_m2 -->|"shows on completion"| node_completion
node_m3 -->|"shows on completion"| node_completion
node_m7 -->|"shows on completion"| node_completion
node_m10 -->|"shows on completion"| node_completion

click node_lab "https://github.com/pae9cob-s2367/oracle-dba/blob/main/app/page.tsx"
click node_route "https://github.com/pae9cob-s2367/oracle-dba/blob/main/app/modules/%5Bid%5D/page.tsx"
click node_client "https://github.com/pae9cob-s2367/oracle-dba/blob/main/components/ModuleClient.tsx"
click node_terminal "https://github.com/pae9cob-s2367/oracle-dba/blob/main/components/Terminal.tsx"
click node_state "https://github.com/pae9cob-s2367/oracle-dba/blob/main/store/useDatabaseStore.ts"
click node_completion "https://github.com/pae9cob-s2367/oracle-dba/blob/main/components/CompletionBanner.tsx"
click node_m1 "https://github.com/pae9cob-s2367/oracle-dba/blob/main/components/modules/Module1.tsx"
click node_m2 "https://github.com/pae9cob-s2367/oracle-dba/blob/main/components/modules/Module2.tsx"
click node_m3 "https://github.com/pae9cob-s2367/oracle-dba/blob/main/components/modules/Module3.tsx"
click node_m4 "https://github.com/pae9cob-s2367/oracle-dba/blob/main/components/modules/Module4.tsx"
click node_m5 "https://github.com/pae9cob-s2367/oracle-dba/blob/main/components/modules/Module5.tsx"
click node_m6 "https://github.com/pae9cob-s2367/oracle-dba/blob/main/components/modules/Module6.tsx"
click node_m7 "https://github.com/pae9cob-s2367/oracle-dba/blob/main/components/modules/Module7.tsx"
click node_m8 "https://github.com/pae9cob-s2367/oracle-dba/blob/main/components/modules/Module8.tsx"
click node_m9 "https://github.com/pae9cob-s2367/oracle-dba/blob/main/components/modules/Module9.tsx"
click node_m10 "https://github.com/pae9cob-s2367/oracle-dba/blob/main/components/modules/Module10.tsx"

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_lab,node_route toneBlue
class node_client,node_terminal,node_state,node_completion toneAmber
class node_m1,node_m2,node_m3 toneMint
class node_m4,node_m5,node_m6,node_m7 toneRose
class node_m8,node_m9,node_m10,node_learner toneIndigo
```

## Components

### Lab entry

- [Module catalog](https://github.com/pae9cob-s2367/oracle-dba/blob/main/app/page.tsx): `app/page.tsx`
- [Module route](https://github.com/pae9cob-s2367/oracle-dba/blob/main/app/modules/%5Bid%5D/page.tsx): `app/modules/[id]/page.tsx`

### Module runtime

- [Module dispatcher](https://github.com/pae9cob-s2367/oracle-dba/blob/main/components/ModuleClient.tsx): `components/ModuleClient.tsx`
- [Command terminal](https://github.com/pae9cob-s2367/oracle-dba/blob/main/components/Terminal.tsx): `components/Terminal.tsx`
- [Database state](https://github.com/pae9cob-s2367/oracle-dba/blob/main/store/useDatabaseStore.ts): `store/useDatabaseStore.ts`
- [Completion banner](https://github.com/pae9cob-s2367/oracle-dba/blob/main/components/CompletionBanner.tsx): `components/CompletionBanner.tsx`

### Core DBA labs

- [Architecture](https://github.com/pae9cob-s2367/oracle-dba/blob/main/components/modules/Module1.tsx): `components/modules/Module1.tsx`
- [Listener](https://github.com/pae9cob-s2367/oracle-dba/blob/main/components/modules/Module2.tsx): `components/modules/Module2.tsx`
- [Startup and shutdown](https://github.com/pae9cob-s2367/oracle-dba/blob/main/components/modules/Module3.tsx): `components/modules/Module3.tsx`

### Administration labs

- [Tablespaces](https://github.com/pae9cob-s2367/oracle-dba/blob/main/components/modules/Module4.tsx): `components/modules/Module4.tsx`
- [Users and privileges](https://github.com/pae9cob-s2367/oracle-dba/blob/main/components/modules/Module5.tsx): `components/modules/Module5.tsx`
- [Roles](https://github.com/pae9cob-s2367/oracle-dba/blob/main/components/modules/Module6.tsx): `components/modules/Module6.tsx`
- [User profiles](https://github.com/pae9cob-s2367/oracle-dba/blob/main/components/modules/Module7.tsx): `components/modules/Module7.tsx`

### Advanced labs

- [Data migration](https://github.com/pae9cob-s2367/oracle-dba/blob/main/components/modules/Module8.tsx): `components/modules/Module8.tsx`
- [Database links](https://github.com/pae9cob-s2367/oracle-dba/blob/main/components/modules/Module9.tsx): `components/modules/Module9.tsx`
- [Oracle RAC](https://github.com/pae9cob-s2367/oracle-dba/blob/main/components/modules/Module10.tsx): `components/modules/Module10.tsx`

### Other components

- **Learner**

## Connections

- Learner → Module catalog: browses
- Module catalog → Module route: links module
- Learner → Module route: opens module
- Module route → Module dispatcher: renders
- Module dispatcher → Architecture: dispatches
- Module dispatcher → Listener: dispatches
- Module dispatcher → Startup and shutdown: dispatches
- Module dispatcher → Tablespaces: dispatches
- Module dispatcher → Users and privileges: dispatches
- Module dispatcher → Roles: dispatches
- Module dispatcher → User profiles: dispatches
- Module dispatcher → Data migration: dispatches
- Module dispatcher → Database links: dispatches
- Module dispatcher → Oracle RAC: dispatches
- Listener → Command terminal: renders; sends commands
- Startup and shutdown → Command terminal: renders; sends commands
- User profiles → Command terminal: renders; sends commands
- Oracle RAC → Command terminal: renders; sends commands
- Listener → Database state: reads and updates
- Startup and shutdown → Database state: reads and updates
- Listener → Completion banner: shows on completion
- Startup and shutdown → Completion banner: shows on completion
- User profiles → Completion banner: shows on completion
- Oracle RAC → Completion banner: shows on completion
