# cauaperesadriani/projeto-integrador architecture

> Architecture diagram of the GitHub repository cauaperesadriani/projeto-integrador, 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/cauaperesadriani/projeto-integrador
- Repository: https://github.com/cauaperesadriani/projeto-integrador

## Overview

ClinSecure is a Django web platform for managing clinical studies and participant data with role-based access, consent controls, pseudonymization, encryption, and auditability. The main workflow runs from a user request through URL dispatch to application views, which check access and use study records to manage participation and clinical data; consent and data-protection actions form a related participant-facing branch. The README documents capabilities beyond the sampled excerpts; those are represented where the tree supports them, without asserting unsampled call wiring.

Main entry points: [`accounts/views.py`](https://github.com/cauaperesadriani/projeto-integrador/blob/main/accounts/views.py) (Application views), [`accounts/permissions.py`](https://github.com/cauaperesadriani/projeto-integrador/blob/main/accounts/permissions.py) (Access checks), [`accounts/models.py`](https://github.com/cauaperesadriani/projeto-integrador/blob/main/accounts/models.py) (Studies and participants), [`clinsecure/urls.py`](https://github.com/cauaperesadriani/projeto-integrador/blob/main/clinsecure/urls.py) (URL dispatch)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_entry["Web entry"]
  node_urls["URL dispatch<br/>[urls.py]"]
  node_account_routes["Account routes<br/>[urls.py]"]
  node_views["Application views<br/>[views.py]"]
  node_settings["Django configuration<br/>[settings.py]"]
end

subgraph group_identity["Identity and access"]
  node_auth["Accounts and 2FA<br/>[views.py]"]
  node_permissions["Access checks<br/>[permissions.py]"]
end

subgraph group_study["Study operations"]
  node_studies["Studies and participants<br/>[models.py]"]
  node_participation["Study participation<br/>[models.py]"]
  node_clinical_data["Clinical data<br/>[models.py]"]
end

subgraph group_protection["Privacy and audit"]
  node_consent["Consent lifecycle<br/>[models.py]"]
  node_documents["Protected documents<br/>[models.py]"]
  node_crypto["Encryption utilities<br/>[crypto.py]"]
  node_audit["Audit records<br/>[models.py]"]
end

node_user(("User"))
node_mysql[("MySQL database")]
node_brevo["Brevo email API"]

node_user -->|"sends request"| node_urls
node_urls -->|"includes routes"| node_account_routes
node_account_routes -->|"dispatches"| node_views
node_views -->|"handles identity"| node_auth
node_views -->|"checks access"| node_permissions
node_views -->|"manages studies"| node_studies
node_views -->|"manages enrollment"| node_participation
node_views -->|"records data"| node_clinical_data
node_views -->|"records consent"| node_consent
node_views -->|"handles documents"| node_documents
node_views -->|"encrypts data"| node_crypto
node_views -->|"creates audit logs"| node_audit
node_permissions -->|"checks study links"| node_studies
node_permissions -->|"checks participation"| node_participation
node_permissions -->|"checks document access"| node_documents
node_clinical_data -->|"persists records"| node_mysql
node_studies -->|"persists records"| node_mysql
node_participation -->|"persists records"| node_mysql
node_consent -->|"persists records"| node_mysql
node_documents -->|"persists metadata"| node_mysql
node_audit -->|"persists logs"| node_mysql
node_settings -->|"configures connection"| node_mysql
node_views -.->|"sends reset email"| node_brevo

click node_urls "https://github.com/cauaperesadriani/projeto-integrador/blob/main/clinsecure/urls.py"
click node_account_routes "https://github.com/cauaperesadriani/projeto-integrador/blob/main/accounts/urls.py"
click node_views "https://github.com/cauaperesadriani/projeto-integrador/blob/main/accounts/views.py"
click node_settings "https://github.com/cauaperesadriani/projeto-integrador/blob/main/clinsecure/settings.py"
click node_auth "https://github.com/cauaperesadriani/projeto-integrador/blob/main/accounts/views.py"
click node_permissions "https://github.com/cauaperesadriani/projeto-integrador/blob/main/accounts/permissions.py"
click node_studies "https://github.com/cauaperesadriani/projeto-integrador/blob/main/accounts/models.py"
click node_participation "https://github.com/cauaperesadriani/projeto-integrador/blob/main/accounts/models.py"
click node_clinical_data "https://github.com/cauaperesadriani/projeto-integrador/blob/main/accounts/models.py"
click node_consent "https://github.com/cauaperesadriani/projeto-integrador/blob/main/accounts/models.py"
click node_documents "https://github.com/cauaperesadriani/projeto-integrador/blob/main/accounts/models.py"
click node_crypto "https://github.com/cauaperesadriani/projeto-integrador/blob/main/accounts/crypto.py"
click node_audit "https://github.com/cauaperesadriani/projeto-integrador/blob/main/accounts/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_urls,node_account_routes,node_views,node_settings,node_user toneBlue
class node_auth,node_permissions,node_mysql toneAmber
class node_studies,node_participation,node_clinical_data,node_brevo toneMint
class node_consent,node_documents,node_crypto,node_audit toneRose
```

## Components

### Web entry

- [URL dispatch](https://github.com/cauaperesadriani/projeto-integrador/blob/main/clinsecure/urls.py): `clinsecure/urls.py`
- [Account routes](https://github.com/cauaperesadriani/projeto-integrador/blob/main/accounts/urls.py): `accounts/urls.py`
- [Application views](https://github.com/cauaperesadriani/projeto-integrador/blob/main/accounts/views.py): `accounts/views.py`
- [Django configuration](https://github.com/cauaperesadriani/projeto-integrador/blob/main/clinsecure/settings.py): `clinsecure/settings.py`

### Identity and access

- [Accounts and 2FA](https://github.com/cauaperesadriani/projeto-integrador/blob/main/accounts/views.py): `accounts/views.py`
- [Access checks](https://github.com/cauaperesadriani/projeto-integrador/blob/main/accounts/permissions.py): `accounts/permissions.py`

### Study operations

- [Studies and participants](https://github.com/cauaperesadriani/projeto-integrador/blob/main/accounts/models.py): `accounts/models.py`
- [Study participation](https://github.com/cauaperesadriani/projeto-integrador/blob/main/accounts/models.py): `accounts/models.py`
- [Clinical data](https://github.com/cauaperesadriani/projeto-integrador/blob/main/accounts/models.py): `accounts/models.py`

### Privacy and audit

- [Consent lifecycle](https://github.com/cauaperesadriani/projeto-integrador/blob/main/accounts/models.py): `accounts/models.py`
- [Protected documents](https://github.com/cauaperesadriani/projeto-integrador/blob/main/accounts/models.py): `accounts/models.py`
- [Encryption utilities](https://github.com/cauaperesadriani/projeto-integrador/blob/main/accounts/crypto.py): `accounts/crypto.py`
- [Audit records](https://github.com/cauaperesadriani/projeto-integrador/blob/main/accounts/models.py): `accounts/models.py`

### Other components

- **User**
- **MySQL database**
- **Brevo email API**

## Connections

- User → URL dispatch: sends request
- URL dispatch → Account routes: includes routes
- Account routes → Application views: dispatches
- Application views → Accounts and 2FA: handles identity
- Application views → Access checks: checks access
- Application views → Studies and participants: manages studies
- Application views → Study participation: manages enrollment
- Application views → Clinical data: records data
- Application views → Consent lifecycle: records consent
- Application views → Protected documents: handles documents
- Application views → Encryption utilities: encrypts data
- Application views → Audit records: creates audit logs
- Access checks → Studies and participants: checks study links
- Access checks → Study participation: checks participation
- Access checks → Protected documents: checks document access
- Clinical data → MySQL database: persists records
- Studies and participants → MySQL database: persists records
- Study participation → MySQL database: persists records
- Consent lifecycle → MySQL database: persists records
- Protected documents → MySQL database: persists metadata
- Audit records → MySQL database: persists logs
- Django configuration → MySQL database: configures connection
- Application views → Brevo email API: sends reset email
