# imgsus/formsbot architecture

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

- Interactive diagram: https://gitdiagram.com/imgsus/formsbot
- Repository: https://github.com/imgsus/formsbot

## Overview

Google Forms Bot automates respondent submissions through the `main_fixed.py` command-line workflow: it creates respondent rating profiles, opens the configured form in a browser, answers each page, advances or submits, and counts a response only after confirmation. The `--inspect` path walks the form without submitting; the normal path retries failed submissions and reports verified results. The README documents title-based answers, multi-page navigation, and blocker handling. Excerpts are partial, so the graph omits uncertain internal wiring and treats Google Forms and the browser as external systems.

Main entry points: [`main_fixed.py`](https://github.com/imgsus/formsbot/blob/main/main_fixed.py) (Submission runner)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_run["Run control"]
  node_cli["CLI entry<br/>[main_fixed.py]"]
  node_runner["Submission runner<br/>[main_fixed.py]"]
  node_profiles["Rating profiles<br/>[main_fixed.py]"]
  node_inspection["Inspect mode<br/>[main_fixed.py]"]
end

subgraph group_form["Form answering"]
  node_formwalk["Page walker<br/>[main_fixed.py]"]
  node_classification["Question classifier<br/>[main_fixed.py]"]
  node_answering["Answer generation<br/>[main_fixed.py]"]
  node_navigation["Page navigation<br/>[main_fixed.py]"]
  node_blockers["Blocker detection<br/>[main_fixed.py]"]
  node_verification["Submission verification<br/>[main_fixed.py]"]
end

subgraph group_browser["Browser integration"]
  node_driver["Driver setup<br/>[main_fixed.py]"]
end

node_user(("Operator"))
node_browser["Brave browser"]
node_google["Google Forms"]

node_user -->|"runs command"| node_cli
node_cli -->|"dispatches inspect"| node_inspection
node_cli -->|"starts submissions"| node_runner
node_runner -->|"builds plan"| node_profiles
node_runner -->|"creates driver"| node_driver
node_runner -->|"checks blockers"| node_blockers
node_runner -->|"walks form"| node_formwalk
node_runner -->|"checks outcome"| node_verification
node_inspection -->|"creates driver"| node_driver
node_inspection -->|"checks blockers"| node_blockers
node_inspection -->|"walks without submit"| node_formwalk
node_formwalk -->|"classifies questions"| node_classification
node_formwalk -->|"answers page"| node_answering
node_formwalk -->|"advances or submits"| node_navigation
node_driver -->|"controls"| node_browser
node_browser -->|"loads and submits"| node_google
node_verification -->|"reads page state"| node_browser

click node_cli "https://github.com/imgsus/formsbot/blob/main/main_fixed.py"
click node_runner "https://github.com/imgsus/formsbot/blob/main/main_fixed.py"
click node_profiles "https://github.com/imgsus/formsbot/blob/main/main_fixed.py"
click node_inspection "https://github.com/imgsus/formsbot/blob/main/main_fixed.py"
click node_formwalk "https://github.com/imgsus/formsbot/blob/main/main_fixed.py"
click node_classification "https://github.com/imgsus/formsbot/blob/main/main_fixed.py"
click node_answering "https://github.com/imgsus/formsbot/blob/main/main_fixed.py"
click node_navigation "https://github.com/imgsus/formsbot/blob/main/main_fixed.py"
click node_blockers "https://github.com/imgsus/formsbot/blob/main/main_fixed.py"
click node_verification "https://github.com/imgsus/formsbot/blob/main/main_fixed.py"
click node_driver "https://github.com/imgsus/formsbot/blob/main/main_fixed.py"

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_cli,node_runner,node_profiles,node_inspection,node_browser toneBlue
class node_formwalk,node_classification,node_answering,node_navigation,node_blockers,node_verification toneAmber
class node_driver toneMint
class node_user,node_google toneIndigo
```

## Components

### Run control

- [CLI entry](https://github.com/imgsus/formsbot/blob/main/main_fixed.py): `main_fixed.py`
- [Submission runner](https://github.com/imgsus/formsbot/blob/main/main_fixed.py): `main_fixed.py`
- [Rating profiles](https://github.com/imgsus/formsbot/blob/main/main_fixed.py): `main_fixed.py`
- [Inspect mode](https://github.com/imgsus/formsbot/blob/main/main_fixed.py): `main_fixed.py`

### Form answering

- [Page walker](https://github.com/imgsus/formsbot/blob/main/main_fixed.py): `main_fixed.py`
- [Question classifier](https://github.com/imgsus/formsbot/blob/main/main_fixed.py): `main_fixed.py`
- [Answer generation](https://github.com/imgsus/formsbot/blob/main/main_fixed.py): `main_fixed.py`
- [Page navigation](https://github.com/imgsus/formsbot/blob/main/main_fixed.py): `main_fixed.py`
- [Blocker detection](https://github.com/imgsus/formsbot/blob/main/main_fixed.py): `main_fixed.py`
- [Submission verification](https://github.com/imgsus/formsbot/blob/main/main_fixed.py): `main_fixed.py`

### Browser integration

- [Driver setup](https://github.com/imgsus/formsbot/blob/main/main_fixed.py): `main_fixed.py`

### Other components

- **Operator**
- **Brave browser**
- **Google Forms**

## Connections

- Operator → CLI entry: runs command
- CLI entry → Inspect mode: dispatches inspect
- CLI entry → Submission runner: starts submissions
- Submission runner → Rating profiles: builds plan
- Submission runner → Driver setup: creates driver
- Submission runner → Blocker detection: checks blockers
- Submission runner → Page walker: walks form
- Submission runner → Submission verification: checks outcome
- Inspect mode → Driver setup: creates driver
- Inspect mode → Blocker detection: checks blockers
- Inspect mode → Page walker: walks without submit
- Page walker → Question classifier: classifies questions
- Page walker → Answer generation: answers page
- Page walker → Page navigation: advances or submits
- Driver setup → Brave browser: controls
- Brave browser → Google Forms: loads and submits
- Submission verification → Brave browser: reads page state
