# iamfaisalirshad/bgsbu-interacts-v.1 architecture

> Architecture diagram of the GitHub repository iamfaisalirshad/bgsbu-interacts-v.1, 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/iamfaisalirshad/bgsbu-interacts-v.1
- Repository: https://github.com/iamfaisalirshad/bgsbu-interacts-v.1

## Overview

BGSBU:INTERACTS is a Flask platform for students, alumni, and administrators to build professional connections and manage related services. The user workflow begins with registration and email OTP verification, then proceeds through role-aware access to profiles, directory search, and connection requests; connected users can message, while students and alumni also use job and mentorship features. Administration oversees accounts, jobs, mentorship, messaging, and system settings. Edges are limited to relationships supported by the excerpts, SOURCE INDEX references, or README; unsampled implementation details are not inferred.

Main entry points: [`src/db.py`](https://github.com/iamfaisalirshad/bgsbu-interacts-v.1/blob/master/src/db.py) (MySQL access layer), [`src/app.py`](https://github.com/iamfaisalirshad/bgsbu-interacts-v.1/blob/master/src/app.py) (Flask application), [`src/utils/protocols.py`](https://github.com/iamfaisalirshad/bgsbu-interacts-v.1/blob/master/src/utils/protocols.py) (Feature protocols), [`src/routes/auth.py`](https://github.com/iamfaisalirshad/bgsbu-interacts-v.1/blob/master/src/routes/auth.py) (Authentication)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_entry["Application entry"]
  node_factory["Flask application<br/>[app.py]"]
  node_config["Application configuration<br/>[config.py]"]
  node_web_templates["Web interface templates"]
end

subgraph group_identity["Identity and security"]
  node_auth["Authentication<br/>[auth.py]"]
  node_profiles["Profiles<br/>[profile.py]"]
  node_auth_utils["Password and input utilities<br/>[auth_utils.py]"]
  node_security["Request security<br/>[security.py]"]
  node_access["Access control<br/>[decorators.py]"]
  node_email["OTP email service<br/>[email_service.py]"]
end

subgraph group_community["Community features"]
  node_directory["Alumni directory<br/>[directory.py]"]
  node_connections["Connections<br/>[connections.py]"]
  node_chat["Messaging and requests<br/>[chat.py]"]
  node_notifications["Notifications<br/>[notifications.py]"]
  node_dashboard["Role-aware dashboards<br/>[dashboard.py]"]
end

subgraph group_opportunities["Jobs and mentorship"]
  node_jobs["Job board and applications<br/>[jobs.py]"]
  node_mentorship["Mentorship program<br/>[mentorship.py]"]
end

subgraph group_operations["Administration and data"]
  node_admin["Platform administration<br/>[admin.py]"]
  node_protocols["Feature protocols<br/>[protocols.py]"]
  node_audit["Audit logging<br/>[audit_logger.py]"]
  node_database[("MySQL access layer<br/>[db.py]")]
end

node_people(("Students, alumni, admins"))

node_people -->|"register or sign in"| node_auth
node_auth -->|"reads and updates"| node_database
node_auth -->|"sends OTP"| node_email
node_auth -->|"validates credentials"| node_auth_utils
node_factory -->|"registers blueprint"| node_auth
node_factory -->|"registers blueprint"| node_dashboard
node_factory -->|"registers blueprint"| node_profiles
node_factory -->|"registers blueprint"| node_directory
node_factory -->|"registers blueprint"| node_connections
node_factory -->|"registers blueprint"| node_chat
node_factory -->|"registers blueprint"| node_jobs
node_factory -->|"registers blueprint"| node_mentorship
node_factory -->|"registers blueprint"| node_admin
node_factory -->|"registers blueprint"| node_notifications
node_factory -->|"loads settings"| node_config
node_people -->|"manages profile"| node_profiles
node_people -->|"searches alumni"| node_directory
node_people -->|"requests connections"| node_connections
node_people -->|"messages connections"| node_chat
node_people -->|"posts or applies"| node_jobs
node_people -->|"seeks mentorship"| node_mentorship
node_people -->|"views dashboard"| node_dashboard
node_people -->|"administers platform"| node_admin
node_directory -->|"queries records"| node_database
node_profiles -->|"reads and updates"| node_database
node_connections -->|"reads and updates"| node_database
node_connections -->|"checks limits"| node_protocols
node_chat -->|"reads and updates"| node_database
node_chat -->|"checks messaging rules"| node_protocols
node_dashboard -->|"queries summaries"| node_database
node_jobs -->|"reads and updates"| node_database
node_jobs -->|"checks job rules"| node_protocols
node_mentorship -->|"reads and updates"| node_database
node_mentorship -->|"checks program rules"| node_protocols
node_notifications -->|"reads and updates"| node_database
node_admin -->|"manages records"| node_database
node_admin -->|"configures rules"| node_protocols
node_admin -->|"reviews audit logs"| node_audit
node_audit -->|"stores events"| node_database
node_protocols -->|"reads rule settings"| node_database
node_database -->|"uses connection settings"| node_config

click node_factory "https://github.com/iamfaisalirshad/bgsbu-interacts-v.1/blob/master/src/app.py"
click node_auth "https://github.com/iamfaisalirshad/bgsbu-interacts-v.1/blob/master/src/routes/auth.py"
click node_profiles "https://github.com/iamfaisalirshad/bgsbu-interacts-v.1/blob/master/src/routes/profile.py"
click node_auth_utils "https://github.com/iamfaisalirshad/bgsbu-interacts-v.1/blob/master/src/utils/auth_utils.py"
click node_security "https://github.com/iamfaisalirshad/bgsbu-interacts-v.1/blob/master/src/utils/security.py"
click node_access "https://github.com/iamfaisalirshad/bgsbu-interacts-v.1/blob/master/src/utils/decorators.py"
click node_email "https://github.com/iamfaisalirshad/bgsbu-interacts-v.1/blob/master/src/utils/email_service.py"
click node_directory "https://github.com/iamfaisalirshad/bgsbu-interacts-v.1/blob/master/src/routes/directory.py"
click node_connections "https://github.com/iamfaisalirshad/bgsbu-interacts-v.1/blob/master/src/routes/connections.py"
click node_chat "https://github.com/iamfaisalirshad/bgsbu-interacts-v.1/blob/master/src/routes/chat.py"
click node_notifications "https://github.com/iamfaisalirshad/bgsbu-interacts-v.1/blob/master/src/routes/notifications.py"
click node_jobs "https://github.com/iamfaisalirshad/bgsbu-interacts-v.1/blob/master/src/routes/jobs.py"
click node_mentorship "https://github.com/iamfaisalirshad/bgsbu-interacts-v.1/blob/master/src/routes/mentorship.py"
click node_dashboard "https://github.com/iamfaisalirshad/bgsbu-interacts-v.1/blob/master/src/routes/dashboard.py"
click node_admin "https://github.com/iamfaisalirshad/bgsbu-interacts-v.1/blob/master/src/routes/admin.py"
click node_protocols "https://github.com/iamfaisalirshad/bgsbu-interacts-v.1/blob/master/src/utils/protocols.py"
click node_audit "https://github.com/iamfaisalirshad/bgsbu-interacts-v.1/blob/master/src/utils/audit_logger.py"
click node_database "https://github.com/iamfaisalirshad/bgsbu-interacts-v.1/blob/master/src/db.py"
click node_config "https://github.com/iamfaisalirshad/bgsbu-interacts-v.1/blob/master/src/config.py"
click node_web_templates "https://github.com/iamfaisalirshad/bgsbu-interacts-v.1/tree/master/src/templates"

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_factory,node_config,node_web_templates toneBlue
class node_auth,node_profiles,node_auth_utils,node_security,node_access,node_email toneAmber
class node_directory,node_connections,node_chat,node_notifications,node_dashboard toneMint
class node_jobs,node_mentorship toneRose
class node_admin,node_protocols,node_audit,node_database,node_people toneIndigo
```

## Components

### Application entry

- [Flask application](https://github.com/iamfaisalirshad/bgsbu-interacts-v.1/blob/master/src/app.py): `src/app.py`
- [Application configuration](https://github.com/iamfaisalirshad/bgsbu-interacts-v.1/blob/master/src/config.py): `src/config.py`
- [Web interface templates](https://github.com/iamfaisalirshad/bgsbu-interacts-v.1/tree/master/src/templates): `src/templates`

### Identity and security

- [Authentication](https://github.com/iamfaisalirshad/bgsbu-interacts-v.1/blob/master/src/routes/auth.py): `src/routes/auth.py`
- [Profiles](https://github.com/iamfaisalirshad/bgsbu-interacts-v.1/blob/master/src/routes/profile.py): `src/routes/profile.py`
- [Password and input utilities](https://github.com/iamfaisalirshad/bgsbu-interacts-v.1/blob/master/src/utils/auth_utils.py): `src/utils/auth_utils.py`
- [Request security](https://github.com/iamfaisalirshad/bgsbu-interacts-v.1/blob/master/src/utils/security.py): `src/utils/security.py`
- [Access control](https://github.com/iamfaisalirshad/bgsbu-interacts-v.1/blob/master/src/utils/decorators.py): `src/utils/decorators.py`
- [OTP email service](https://github.com/iamfaisalirshad/bgsbu-interacts-v.1/blob/master/src/utils/email_service.py): `src/utils/email_service.py`

### Community features

- [Alumni directory](https://github.com/iamfaisalirshad/bgsbu-interacts-v.1/blob/master/src/routes/directory.py): `src/routes/directory.py`
- [Connections](https://github.com/iamfaisalirshad/bgsbu-interacts-v.1/blob/master/src/routes/connections.py): `src/routes/connections.py`
- [Messaging and requests](https://github.com/iamfaisalirshad/bgsbu-interacts-v.1/blob/master/src/routes/chat.py): `src/routes/chat.py`
- [Notifications](https://github.com/iamfaisalirshad/bgsbu-interacts-v.1/blob/master/src/routes/notifications.py): `src/routes/notifications.py`
- [Role-aware dashboards](https://github.com/iamfaisalirshad/bgsbu-interacts-v.1/blob/master/src/routes/dashboard.py): `src/routes/dashboard.py`

### Jobs and mentorship

- [Job board and applications](https://github.com/iamfaisalirshad/bgsbu-interacts-v.1/blob/master/src/routes/jobs.py): `src/routes/jobs.py`
- [Mentorship program](https://github.com/iamfaisalirshad/bgsbu-interacts-v.1/blob/master/src/routes/mentorship.py): `src/routes/mentorship.py`

### Administration and data

- [Platform administration](https://github.com/iamfaisalirshad/bgsbu-interacts-v.1/blob/master/src/routes/admin.py): `src/routes/admin.py`
- [Feature protocols](https://github.com/iamfaisalirshad/bgsbu-interacts-v.1/blob/master/src/utils/protocols.py): `src/utils/protocols.py`
- [Audit logging](https://github.com/iamfaisalirshad/bgsbu-interacts-v.1/blob/master/src/utils/audit_logger.py): `src/utils/audit_logger.py`
- [MySQL access layer](https://github.com/iamfaisalirshad/bgsbu-interacts-v.1/blob/master/src/db.py): `src/db.py`

### Other components

- **Students, alumni, admins**

## Connections

- Students, alumni, admins → Authentication: register or sign in (evidence: `README.md`)
- Authentication → MySQL access layer: reads and updates (evidence: `src/routes/auth.py`)
- Authentication → OTP email service: sends OTP (evidence: `src/routes/auth.py`)
- Authentication → Password and input utilities: validates credentials (evidence: `src/routes/auth.py`)
- Flask application → Authentication: registers blueprint (evidence: `src/app.py`)
- Flask application → Role-aware dashboards: registers blueprint (evidence: `src/app.py`)
- Flask application → Profiles: registers blueprint (evidence: `src/app.py`)
- Flask application → Alumni directory: registers blueprint (evidence: `src/app.py`)
- Flask application → Connections: registers blueprint (evidence: `src/app.py`)
- Flask application → Messaging and requests: registers blueprint (evidence: `src/app.py`)
- Flask application → Job board and applications: registers blueprint (evidence: `src/app.py`)
- Flask application → Mentorship program: registers blueprint (evidence: `src/app.py`)
- Flask application → Platform administration: registers blueprint (evidence: `src/app.py`)
- Flask application → Notifications: registers blueprint (evidence: `src/app.py`)
- Flask application → Application configuration: loads settings (evidence: `src/app.py`)
- Students, alumni, admins → Profiles: manages profile (evidence: `README.md`)
- Students, alumni, admins → Alumni directory: searches alumni (evidence: `README.md`)
- Students, alumni, admins → Connections: requests connections (evidence: `README.md`)
- Students, alumni, admins → Messaging and requests: messages connections (evidence: `README.md`)
- Students, alumni, admins → Job board and applications: posts or applies (evidence: `README.md`)
- Students, alumni, admins → Mentorship program: seeks mentorship (evidence: `README.md`)
- Students, alumni, admins → Role-aware dashboards: views dashboard (evidence: `README.md`)
- Students, alumni, admins → Platform administration: administers platform (evidence: `README.md`)
- Alumni directory → MySQL access layer: queries records (evidence: `src/routes/directory.py`)
- Profiles → MySQL access layer: reads and updates (evidence: `src/routes/profile.py`)
- Connections → MySQL access layer: reads and updates (evidence: `src/routes/connections.py`)
- Connections → Feature protocols: checks limits (evidence: `src/routes/connections.py`)
- Messaging and requests → MySQL access layer: reads and updates (evidence: `src/routes/chat.py`)
- Messaging and requests → Feature protocols: checks messaging rules (evidence: `src/routes/chat.py`)
- Role-aware dashboards → MySQL access layer: queries summaries (evidence: `src/routes/dashboard.py`)
- Job board and applications → MySQL access layer: reads and updates (evidence: `src/routes/jobs.py`)
- Job board and applications → Feature protocols: checks job rules (evidence: `src/routes/jobs.py`)
- Mentorship program → MySQL access layer: reads and updates (evidence: `src/routes/mentorship.py`)
- Mentorship program → Feature protocols: checks program rules (evidence: `src/routes/mentorship.py`)
- Notifications → MySQL access layer: reads and updates (evidence: `src/routes/notifications.py`)
- Platform administration → MySQL access layer: manages records (evidence: `src/routes/admin.py`)
- Platform administration → Feature protocols: configures rules (evidence: `src/routes/admin.py`)
- Platform administration → Audit logging: reviews audit logs (evidence: `src/routes/admin.py`)
- Audit logging → MySQL access layer: stores events (evidence: `src/utils/audit_logger.py`)
- Feature protocols → MySQL access layer: reads rule settings (evidence: `src/utils/protocols.py`)
- MySQL access layer → Application configuration: uses connection settings (evidence: `src/db.py`)
