# abby6702/orgconnect architecture

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

- Interactive diagram: https://gitdiagram.com/abby6702/orgconnect
- Repository: https://github.com/abby6702/orgconnect

## Overview

OrgConnect AI is a Flask student-organization management system. Students register, discover verified organizations, follow them, ask questions, apply, and use an AI assistant; organization officers manage memberships and publish events and announcements, while system admins oversee users and organizations. Flask app creation registers the feature blueprints, which operate on shared SQLAlchemy models. AI drafting calls Ollama and saves reviewable drafts; automation can deliver events to n8n. The graph reflects README capabilities and indexed imports; unsampled implementation details and some scheduled-job wiring are not inferred.

Main entry points: [`app/__init__.py`](https://github.com/abby6702/orgconnect/blob/main/app/__init__.py) (App factory), [`app/models.py`](https://github.com/abby6702/orgconnect/blob/main/app/models.py) (Domain records), [`app/applications.py`](https://github.com/abby6702/orgconnect/blob/main/app/applications.py) (Membership applications), [`app/utils.py`](https://github.com/abby6702/orgconnect/blob/main/app/utils.py) (Request utilities)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_web["Web foundation"]
  node_flask_app["App factory<br/>[__init__.py]"]
  node_auth["Accounts and roles<br/>[auth.py]"]
  node_forms["Forms and validation<br/>[forms.py]"]
  node_shared["Request utilities<br/>[utils.py]"]
  node_models[("Domain records<br/>[models.py]")]
end

subgraph group_community["Community features"]
  node_dashboard["Student dashboard<br/>[dashboard.py]"]
  node_organizations["Organization directory<br/>[organizations.py]"]
  node_questions["Student questions<br/>[questions.py]"]
  node_applications["Membership applications<br/>[applications.py]"]
end

subgraph group_operations["Organization operations"]
  node_events["Events<br/>[events.py]"]
  node_announcements["Announcements<br/>[announcements.py]"]
  node_notifications["Notifications<br/>[notifications.py]"]
  node_admin["System administration<br/>[admin.py]"]
end

subgraph group_intelligence["AI and automation"]
  node_ai_tools["AI content drafting<br/>[ai_tools.py]"]
  node_assistant["Organization assistant<br/>[assistant.py]"]
  node_ai_service["AI request service<br/>[ai_service.py]"]
  node_automation["Automation delivery<br/>[automation.py]"]
end

node_student(("Student"))
node_officer(("Organization officer"))
node_sysadmin(("System admin"))
node_ollama{{"Ollama"}}
node_n8n{{"n8n"}}

node_student -->|"uses"| node_flask_app
node_officer -->|"uses"| node_flask_app
node_sysadmin -->|"uses"| node_flask_app
node_flask_app -->|"registers"| node_auth
node_flask_app -->|"registers"| node_dashboard
node_flask_app -->|"registers"| node_organizations
node_flask_app -->|"registers"| node_questions
node_flask_app -->|"registers"| node_applications
node_flask_app -->|"registers"| node_events
node_flask_app -->|"registers"| node_announcements
node_flask_app -->|"registers"| node_notifications
node_flask_app -->|"registers"| node_admin
node_flask_app -->|"registers"| node_ai_tools
node_flask_app -->|"registers"| node_assistant
node_auth -->|"reads and writes"| node_models
node_auth -->|"validates with"| node_forms
node_auth -->|"logs activity"| node_shared
node_dashboard -->|"reads"| node_models
node_organizations -->|"reads and writes"| node_models
node_organizations -->|"checks access"| node_shared
node_questions -->|"reads and writes"| node_models
node_questions -->|"validates with"| node_forms
node_applications -->|"reads and writes"| node_models
node_applications -->|"validates with"| node_forms
node_applications -->|"checks access"| node_shared
node_events -->|"reads and writes"| node_models
node_announcements -->|"reads and writes"| node_models
node_announcements -->|"checks access"| node_shared
node_admin -->|"manages records"| node_models
node_admin -->|"validates with"| node_forms
node_admin -->|"logs activity"| node_shared
node_ai_tools -->|"requests drafts"| node_ai_service
node_ai_tools -->|"saves drafts"| node_models
node_ai_tools -->|"routes to management"| node_announcements
node_assistant -->|"requests answers"| node_ai_service
node_ai_service -->|"sends prompts"| node_ollama
node_ai_service -->|"logs interactions"| node_models
node_applications -->|"queues events"| node_automation
node_automation -->|"posts events"| node_n8n
node_notifications -->|"reads and writes"| node_models

click node_flask_app "https://github.com/abby6702/orgconnect/blob/main/app/__init__.py"
click node_auth "https://github.com/abby6702/orgconnect/blob/main/app/auth.py"
click node_forms "https://github.com/abby6702/orgconnect/blob/main/app/forms.py"
click node_shared "https://github.com/abby6702/orgconnect/blob/main/app/utils.py"
click node_models "https://github.com/abby6702/orgconnect/blob/main/app/models.py"
click node_dashboard "https://github.com/abby6702/orgconnect/blob/main/app/dashboard.py"
click node_organizations "https://github.com/abby6702/orgconnect/blob/main/app/organizations.py"
click node_questions "https://github.com/abby6702/orgconnect/blob/main/app/questions.py"
click node_applications "https://github.com/abby6702/orgconnect/blob/main/app/applications.py"
click node_events "https://github.com/abby6702/orgconnect/blob/main/app/events.py"
click node_announcements "https://github.com/abby6702/orgconnect/blob/main/app/announcements.py"
click node_notifications "https://github.com/abby6702/orgconnect/blob/main/app/notifications.py"
click node_admin "https://github.com/abby6702/orgconnect/blob/main/app/admin.py"
click node_ai_tools "https://github.com/abby6702/orgconnect/blob/main/app/ai_tools.py"
click node_assistant "https://github.com/abby6702/orgconnect/blob/main/app/assistant.py"
click node_ai_service "https://github.com/abby6702/orgconnect/blob/main/app/ai_service.py"
click node_automation "https://github.com/abby6702/orgconnect/blob/main/app/automation.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_flask_app,node_auth,node_forms,node_shared,node_models toneBlue
class node_dashboard,node_organizations,node_questions,node_applications toneAmber
class node_events,node_announcements,node_notifications,node_admin toneMint
class node_ai_tools,node_assistant,node_ai_service,node_automation toneRose
class node_student,node_officer,node_sysadmin,node_ollama,node_n8n toneIndigo
```

## Components

### Web foundation

- [App factory](https://github.com/abby6702/orgconnect/blob/main/app/__init__.py): `app/__init__.py`
- [Accounts and roles](https://github.com/abby6702/orgconnect/blob/main/app/auth.py): `app/auth.py`
- [Forms and validation](https://github.com/abby6702/orgconnect/blob/main/app/forms.py): `app/forms.py`
- [Request utilities](https://github.com/abby6702/orgconnect/blob/main/app/utils.py): `app/utils.py`
- [Domain records](https://github.com/abby6702/orgconnect/blob/main/app/models.py): `app/models.py`

### Community features

- [Student dashboard](https://github.com/abby6702/orgconnect/blob/main/app/dashboard.py): `app/dashboard.py`
- [Organization directory](https://github.com/abby6702/orgconnect/blob/main/app/organizations.py): `app/organizations.py`
- [Student questions](https://github.com/abby6702/orgconnect/blob/main/app/questions.py): `app/questions.py`
- [Membership applications](https://github.com/abby6702/orgconnect/blob/main/app/applications.py): `app/applications.py`

### Organization operations

- [Events](https://github.com/abby6702/orgconnect/blob/main/app/events.py): `app/events.py`
- [Announcements](https://github.com/abby6702/orgconnect/blob/main/app/announcements.py): `app/announcements.py`
- [Notifications](https://github.com/abby6702/orgconnect/blob/main/app/notifications.py): `app/notifications.py`
- [System administration](https://github.com/abby6702/orgconnect/blob/main/app/admin.py): `app/admin.py`

### AI and automation

- [AI content drafting](https://github.com/abby6702/orgconnect/blob/main/app/ai_tools.py): `app/ai_tools.py`
- [Organization assistant](https://github.com/abby6702/orgconnect/blob/main/app/assistant.py): `app/assistant.py`
- [AI request service](https://github.com/abby6702/orgconnect/blob/main/app/ai_service.py): `app/ai_service.py`
- [Automation delivery](https://github.com/abby6702/orgconnect/blob/main/app/automation.py): `app/automation.py`

### Other components

- **Student**
- **Organization officer**
- **System admin**
- **Ollama**
- **n8n**

## Connections

- Student → App factory: uses (evidence: `README.md`)
- Organization officer → App factory: uses (evidence: `README.md`)
- System admin → App factory: uses (evidence: `README.md`)
- App factory → Accounts and roles: registers (evidence: `app/__init__.py`)
- App factory → Student dashboard: registers (evidence: `app/__init__.py`)
- App factory → Organization directory: registers (evidence: `app/__init__.py`)
- App factory → Student questions: registers (evidence: `app/__init__.py`)
- App factory → Membership applications: registers (evidence: `app/__init__.py`)
- App factory → Events: registers (evidence: `app/__init__.py`)
- App factory → Announcements: registers (evidence: `app/__init__.py`)
- App factory → Notifications: registers (evidence: `app/__init__.py`)
- App factory → System administration: registers (evidence: `app/__init__.py`)
- App factory → AI content drafting: registers (evidence: `app/__init__.py`)
- App factory → Organization assistant: registers (evidence: `app/__init__.py`)
- Accounts and roles → Domain records: reads and writes (evidence: `app/auth.py`)
- Accounts and roles → Forms and validation: validates with (evidence: `app/auth.py`)
- Accounts and roles → Request utilities: logs activity (evidence: `app/auth.py`)
- Student dashboard → Domain records: reads (evidence: `app/dashboard.py`)
- Organization directory → Domain records: reads and writes (evidence: `app/organizations.py`)
- Organization directory → Request utilities: checks access (evidence: `app/organizations.py`)
- Student questions → Domain records: reads and writes (evidence: `app/questions.py`)
- Student questions → Forms and validation: validates with (evidence: `app/questions.py`)
- Membership applications → Domain records: reads and writes (evidence: `app/applications.py`)
- Membership applications → Forms and validation: validates with (evidence: `app/applications.py`)
- Membership applications → Request utilities: checks access (evidence: `app/applications.py`)
- Events → Domain records: reads and writes (evidence: `app/events.py`)
- Announcements → Domain records: reads and writes (evidence: `app/announcements.py`)
- Announcements → Request utilities: checks access (evidence: `app/announcements.py`)
- System administration → Domain records: manages records (evidence: `app/admin.py`)
- System administration → Forms and validation: validates with (evidence: `app/admin.py`)
- System administration → Request utilities: logs activity (evidence: `app/admin.py`)
- AI content drafting → AI request service: requests drafts (evidence: `app/ai_tools.py`)
- AI content drafting → Domain records: saves drafts (evidence: `app/ai_tools.py`)
- AI content drafting → Announcements: routes to management (evidence: `app/ai_tools.py`)
- Organization assistant → AI request service: requests answers (evidence: `app/assistant.py`)
- AI request service → Ollama: sends prompts (evidence: `app/ai_service.py`)
- AI request service → Domain records: logs interactions (evidence: `app/ai_service.py`)
- Membership applications → Automation delivery: queues events (evidence: `app/applications.py`)
- Automation delivery → n8n: posts events (evidence: `app/automation.py`)
- Notifications → Domain records: reads and writes (evidence: `app/notifications.py`)
