# assisgb/pondersec architecture

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

- Interactive diagram: https://gitdiagram.com/assisgb/pondersec
- Repository: https://github.com/assisgb/pondersec

## Overview

PonderSEC is a Django platform for cybersecurity-focused LLM evaluation. Its main workflows generate model answers to questions, then collect human or JudgeAI evaluations and present comparisons. The README documents public chat with cross-evaluation, researcher-managed questions and models, external evaluation forms, and a separate admin panel. The tree and excerpts support the web entry points and data model; the README names internal LLM and JudgeAI modules that are absent from the supplied tree, so those components use the enclosing app path and their wiring is shown only where documented.

Main entry points: [`responsegenerator/views.py`](https://github.com/assisgb/pondersec/blob/main/responsegenerator/views.py) (Product workflows), [`responsegenerator/models.py`](https://github.com/assisgb/pondersec/blob/main/responsegenerator/models.py) (Application database), [`pondersec/urls.py`](https://github.com/assisgb/pondersec/blob/main/pondersec/urls.py) (Project URL routing), [`usuarios/views.py`](https://github.com/assisgb/pondersec/blob/main/usuarios/views.py) (Researcher accounts)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_entry["Web entry and accounts"]
  node_project_urls["Project URL routing<br/>[urls.py]"]
  node_user_auth["Researcher accounts<br/>[views.py]"]
  node_user_routes["Account routes<br/>[urls.py]"]
  node_app_routes["Product routes<br/>[urls.py]"]
  node_views["Product workflows<br/>[views.py]"]
end

subgraph group_research["Research workflows"]
  node_question_bank["Question bank<br/>[views.py]"]
  node_private_models["Private model setup<br/>[views.py]"]
  node_answer_generation["Answer generation"]
end

subgraph group_evaluation["Evaluation"]
  node_human_review["Manual review<br/>[views.py]"]
  node_judgeai["JudgeAI evaluation"]
  node_forms["Specialist forms<br/>[views.py]"]
  node_scoreboards["Scores and comparison<br/>[views.py]"]
end

subgraph group_public["Public chat and admin"]
  node_public_chat["Public chat<br/>[views.py]"]
  node_cross_eval["Public cross-evaluation"]
  node_admin_panel["Admin panel<br/>[views.py]"]
end

subgraph group_data["Persistent data"]
  node_database[("Application database<br/>[models.py]")]
end

node_visitor(("Visitor"))
node_researcher(("Researcher"))
node_specialist(("External specialist"))
node_admin(("Panel admin"))
node_providers{{"LLM providers"}}
node_email{{"Email service"}}

node_visitor -->|"opens chat"| node_project_urls
node_researcher -->|"opens app"| node_project_urls
node_specialist -->|"opens form"| node_project_urls
node_admin -->|"opens panel"| node_project_urls
node_project_urls -->|"routes account"| node_user_routes
node_project_urls -->|"routes product"| node_app_routes
node_user_routes -->|"dispatches"| node_user_auth
node_app_routes -->|"dispatches"| node_views
node_user_auth -->|"reads/writes accounts"| node_database
node_user_auth -.->|"sends verification"| node_email
node_views -->|"handles questions"| node_question_bank
node_views -->|"configures models"| node_private_models
node_views -->|"starts generation"| node_answer_generation
node_views -->|"handles review"| node_human_review
node_views -->|"runs judging"| node_judgeai
node_views -->|"manages forms"| node_forms
node_views -->|"serves scores"| node_scoreboards
node_views -->|"serves chat"| node_public_chat
node_views -->|"starts evaluation"| node_cross_eval
node_views -->|"serves admin"| node_admin_panel
node_question_bank -->|"reads/writes questions"| node_database
node_private_models -->|"saves model config"| node_database
node_answer_generation -->|"requests answers"| node_providers
node_answer_generation -->|"stores answers"| node_database
node_human_review -->|"stores ratings"| node_database
node_judgeai -->|"requests judgments"| node_providers
node_judgeai -->|"stores scores"| node_database
node_forms -->|"reads/writes evaluations"| node_database
node_specialist -->|"submits ratings"| node_forms
node_scoreboards -->|"reads scores"| node_database
node_public_chat -->|"reads public models"| node_database
node_public_chat -->|"requests responses"| node_providers
node_public_chat -->|"stores chat"| node_database
node_cross_eval -->|"requests judgments"| node_providers
node_cross_eval -->|"reads metrics; stores ratings"| node_database
node_admin_panel -->|"manages public config"| node_database

click node_project_urls "https://github.com/assisgb/pondersec/blob/main/pondersec/urls.py"
click node_user_auth "https://github.com/assisgb/pondersec/blob/main/usuarios/views.py"
click node_user_routes "https://github.com/assisgb/pondersec/blob/main/usuarios/urls.py"
click node_app_routes "https://github.com/assisgb/pondersec/blob/main/responsegenerator/urls.py"
click node_views "https://github.com/assisgb/pondersec/blob/main/responsegenerator/views.py"
click node_question_bank "https://github.com/assisgb/pondersec/blob/main/responsegenerator/views.py"
click node_private_models "https://github.com/assisgb/pondersec/blob/main/responsegenerator/views.py"
click node_answer_generation "https://github.com/assisgb/pondersec/tree/main/responsegenerator"
click node_human_review "https://github.com/assisgb/pondersec/blob/main/responsegenerator/views.py"
click node_judgeai "https://github.com/assisgb/pondersec/tree/main/responsegenerator"
click node_forms "https://github.com/assisgb/pondersec/blob/main/responsegenerator/views.py"
click node_scoreboards "https://github.com/assisgb/pondersec/blob/main/responsegenerator/views.py"
click node_public_chat "https://github.com/assisgb/pondersec/blob/main/responsegenerator/views.py"
click node_cross_eval "https://github.com/assisgb/pondersec/tree/main/responsegenerator"
click node_admin_panel "https://github.com/assisgb/pondersec/blob/main/responsegenerator/views.py"
click node_database "https://github.com/assisgb/pondersec/blob/main/responsegenerator/models.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_project_urls,node_user_auth,node_user_routes,node_app_routes,node_views toneBlue
class node_question_bank,node_private_models,node_answer_generation toneAmber
class node_human_review,node_judgeai,node_forms,node_scoreboards toneMint
class node_public_chat,node_cross_eval,node_admin_panel toneRose
class node_database,node_visitor,node_researcher,node_specialist,node_admin,node_providers,node_email toneIndigo
```

## Components

### Web entry and accounts

- [Project URL routing](https://github.com/assisgb/pondersec/blob/main/pondersec/urls.py): `pondersec/urls.py`
- [Researcher accounts](https://github.com/assisgb/pondersec/blob/main/usuarios/views.py): `usuarios/views.py`
- [Account routes](https://github.com/assisgb/pondersec/blob/main/usuarios/urls.py): `usuarios/urls.py`
- [Product routes](https://github.com/assisgb/pondersec/blob/main/responsegenerator/urls.py): `responsegenerator/urls.py`
- [Product workflows](https://github.com/assisgb/pondersec/blob/main/responsegenerator/views.py): `responsegenerator/views.py`

### Research workflows

- [Question bank](https://github.com/assisgb/pondersec/blob/main/responsegenerator/views.py): `responsegenerator/views.py`
- [Private model setup](https://github.com/assisgb/pondersec/blob/main/responsegenerator/views.py): `responsegenerator/views.py`
- [Answer generation](https://github.com/assisgb/pondersec/tree/main/responsegenerator): `responsegenerator`

### Evaluation

- [Manual review](https://github.com/assisgb/pondersec/blob/main/responsegenerator/views.py): `responsegenerator/views.py`
- [JudgeAI evaluation](https://github.com/assisgb/pondersec/tree/main/responsegenerator): `responsegenerator`
- [Specialist forms](https://github.com/assisgb/pondersec/blob/main/responsegenerator/views.py): `responsegenerator/views.py`
- [Scores and comparison](https://github.com/assisgb/pondersec/blob/main/responsegenerator/views.py): `responsegenerator/views.py`

### Public chat and admin

- [Public chat](https://github.com/assisgb/pondersec/blob/main/responsegenerator/views.py): `responsegenerator/views.py`
- [Public cross-evaluation](https://github.com/assisgb/pondersec/tree/main/responsegenerator): `responsegenerator`
- [Admin panel](https://github.com/assisgb/pondersec/blob/main/responsegenerator/views.py): `responsegenerator/views.py`

### Persistent data

- [Application database](https://github.com/assisgb/pondersec/blob/main/responsegenerator/models.py): `responsegenerator/models.py`

### Other components

- **Visitor**
- **Researcher**
- **External specialist**
- **Panel admin**
- **LLM providers**
- **Email service**

## Connections

- Visitor → Project URL routing: opens chat
- Researcher → Project URL routing: opens app
- External specialist → Project URL routing: opens form
- Panel admin → Project URL routing: opens panel
- Project URL routing → Account routes: routes account
- Project URL routing → Product routes: routes product
- Account routes → Researcher accounts: dispatches
- Product routes → Product workflows: dispatches
- Researcher accounts → Application database: reads/writes accounts
- Researcher accounts → Email service: sends verification
- Product workflows → Question bank: handles questions
- Product workflows → Private model setup: configures models
- Product workflows → Answer generation: starts generation
- Product workflows → Manual review: handles review
- Product workflows → JudgeAI evaluation: runs judging
- Product workflows → Specialist forms: manages forms
- Product workflows → Scores and comparison: serves scores
- Product workflows → Public chat: serves chat
- Product workflows → Public cross-evaluation: starts evaluation
- Product workflows → Admin panel: serves admin
- Question bank → Application database: reads/writes questions
- Private model setup → Application database: saves model config
- Answer generation → LLM providers: requests answers
- Answer generation → Application database: stores answers
- Manual review → Application database: stores ratings
- JudgeAI evaluation → LLM providers: requests judgments
- JudgeAI evaluation → Application database: stores scores
- Specialist forms → Application database: reads/writes evaluations
- External specialist → Specialist forms: submits ratings
- Scores and comparison → Application database: reads scores
- Public chat → Application database: reads public models
- Public chat → LLM providers: requests responses
- Public chat → Application database: stores chat
- Public cross-evaluation → LLM providers: requests judgments
- Public cross-evaluation → Application database: reads metrics; stores ratings
- Admin panel → Application database: manages public config
