# gagniuc/apachebas architecture

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

- Interactive diagram: https://gitdiagram.com/gagniuc/apachebas
- Repository: https://github.com/gagniuc/apachebas

## Overview

ApacheBAS is a Windows CGI-hosted BASIC interpreter. The documented user workflow is to request a `.bas` page through Apache, which launches the interpreter to execute the script and return an HTTP response. The runtime is a single assembly source file; the README also describes application examples, but the tree exposes them only as an archive. No source excerpts were provided, so the graph includes only documented relationships and does not infer internal call sequences.

Main entry points: [`src/BAS experiments/BAS projects.zip`](https://github.com/gagniuc/apachebas/blob/main/src/BAS%20experiments/BAS%20projects.zip) (Web applications), [`src/ApacheBAS/ApacheBAS.asm`](https://github.com/gagniuc/apachebas/blob/main/src/ApacheBAS/ApacheBAS.asm) (BASIC interpreter)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_hosting["CGI hosting"]
  node_apache["Apache CGI"]
  node_bas_script["BAS script"]
  node_http_result["HTTP response"]
end

subgraph group_runtime["Interpreter runtime"]
  node_interpreter["BASIC interpreter<br/>[ApacheBAS.asm]"]
end

subgraph group_applications["Example applications"]
  node_web_apps["Web applications<br/>[BAS projects.zip]"]
  node_admin_tools["Administration tools<br/>[BAS projects.zip]"]
  node_file_tools["File management<br/>[BAS projects.zip]"]
  node_gallery["Image gallery<br/>[BAS projects.zip]"]
  node_social["Social prototype<br/>[BAS projects.zip]"]
  node_repository_ui["Repository interface<br/>[BAS projects.zip]"]
  node_math_viz["Math visualization<br/>[BAS projects.zip]"]
  node_security_tools["Security utilities<br/>[BAS projects.zip]"]
end

node_browser(("Browser user"))

node_browser -->|"requests page"| node_apache
node_apache -->|"launches CGI"| node_interpreter
node_interpreter -->|"executes script"| node_bas_script
node_interpreter -->|"generates response"| node_http_result
node_web_apps -->|"includes"| node_admin_tools
node_web_apps -->|"includes"| node_file_tools
node_web_apps -->|"includes"| node_gallery
node_web_apps -->|"includes"| node_social
node_web_apps -->|"includes"| node_repository_ui
node_web_apps -->|"includes"| node_math_viz
node_web_apps -->|"includes"| node_security_tools

click node_interpreter "https://github.com/gagniuc/apachebas/blob/main/src/ApacheBAS/ApacheBAS.asm"
click node_web_apps "https://github.com/gagniuc/apachebas/blob/main/src/BAS%20experiments/BAS%20projects.zip"
click node_admin_tools "https://github.com/gagniuc/apachebas/blob/main/src/BAS%20experiments/BAS%20projects.zip"
click node_file_tools "https://github.com/gagniuc/apachebas/blob/main/src/BAS%20experiments/BAS%20projects.zip"
click node_gallery "https://github.com/gagniuc/apachebas/blob/main/src/BAS%20experiments/BAS%20projects.zip"
click node_social "https://github.com/gagniuc/apachebas/blob/main/src/BAS%20experiments/BAS%20projects.zip"
click node_repository_ui "https://github.com/gagniuc/apachebas/blob/main/src/BAS%20experiments/BAS%20projects.zip"
click node_math_viz "https://github.com/gagniuc/apachebas/blob/main/src/BAS%20experiments/BAS%20projects.zip"
click node_security_tools "https://github.com/gagniuc/apachebas/blob/main/src/BAS%20experiments/BAS%20projects.zip"

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_apache,node_bas_script,node_http_result,node_browser toneBlue
class node_interpreter toneAmber
class node_web_apps,node_admin_tools,node_file_tools,node_gallery,node_social,node_repository_ui,node_math_viz,node_security_tools toneMint
```

## Components

### CGI hosting

- **Apache CGI**
- **BAS script**
- **HTTP response**

### Interpreter runtime

- [BASIC interpreter](https://github.com/gagniuc/apachebas/blob/main/src/ApacheBAS/ApacheBAS.asm): `src/ApacheBAS/ApacheBAS.asm`

### Example applications

- [Web applications](https://github.com/gagniuc/apachebas/blob/main/src/BAS%20experiments/BAS%20projects.zip): `src/BAS experiments/BAS projects.zip`
- [Administration tools](https://github.com/gagniuc/apachebas/blob/main/src/BAS%20experiments/BAS%20projects.zip): `src/BAS experiments/BAS projects.zip`
- [File management](https://github.com/gagniuc/apachebas/blob/main/src/BAS%20experiments/BAS%20projects.zip): `src/BAS experiments/BAS projects.zip`
- [Image gallery](https://github.com/gagniuc/apachebas/blob/main/src/BAS%20experiments/BAS%20projects.zip): `src/BAS experiments/BAS projects.zip`
- [Social prototype](https://github.com/gagniuc/apachebas/blob/main/src/BAS%20experiments/BAS%20projects.zip): `src/BAS experiments/BAS projects.zip`
- [Repository interface](https://github.com/gagniuc/apachebas/blob/main/src/BAS%20experiments/BAS%20projects.zip): `src/BAS experiments/BAS projects.zip`
- [Math visualization](https://github.com/gagniuc/apachebas/blob/main/src/BAS%20experiments/BAS%20projects.zip): `src/BAS experiments/BAS projects.zip`
- [Security utilities](https://github.com/gagniuc/apachebas/blob/main/src/BAS%20experiments/BAS%20projects.zip): `src/BAS experiments/BAS projects.zip`

### Other components

- **Browser user**

## Connections

- Browser user → Apache CGI: requests page (evidence: `README.md`)
- Apache CGI → BASIC interpreter: launches CGI (evidence: `README.md`)
- BASIC interpreter → BAS script: executes script (evidence: `README.md`)
- BASIC interpreter → HTTP response: generates response (evidence: `README.md`)
- Web applications → Administration tools: includes (evidence: `README.md`)
- Web applications → File management: includes (evidence: `README.md`)
- Web applications → Image gallery: includes (evidence: `README.md`)
- Web applications → Social prototype: includes (evidence: `README.md`)
- Web applications → Repository interface: includes (evidence: `README.md`)
- Web applications → Math visualization: includes (evidence: `README.md`)
- Web applications → Security utilities: includes (evidence: `README.md`)
