# venu-16/yottaflex.ai-creadential-lifecycle-maanagement-system architecture

> Architecture diagram of the GitHub repository venu-16/yottaflex.ai-creadential-lifecycle-maanagement-system, 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/venu-16/yottaflex.ai-creadential-lifecycle-maanagement-system
- Repository: https://github.com/venu-16/yottaflex.ai-creadential-lifecycle-maanagement-system

## Overview

Credential Lifecycle Management is a role-aware academic credential platform. Academic staff maintain learners, courses, versioned rules, enrollments, completions and assessment attempts; they evaluate eligibility, issue credentials, and can revoke them. Learners view their credentials, while anyone can verify credentials and authorized users review audit history and reports. The React workspace calls a FastAPI API backed by relational domain models. README documents substantial lifecycle and reporting capabilities beyond the sampled handler excerpts; those are represented without asserting unshown internal call paths.

Main entry points: [`backend/app/api/v1/endpoints/business.py`](https://github.com/venu-16/yottaflex.ai-creadential-lifecycle-maanagement-system/blob/main/backend/app/api/v1/endpoints/business.py) (Lifecycle endpoints), [`frontend/src/App.jsx`](https://github.com/venu-16/yottaflex.ai-creadential-lifecycle-maanagement-system/blob/main/frontend/src/App.jsx) (Application routes), [`frontend/src/services/api.js`](https://github.com/venu-16/yottaflex.ai-creadential-lifecycle-maanagement-system/blob/main/frontend/src/services/api.js) (HTTP API client), [`backend/app/api/v1/router.py`](https://github.com/venu-16/yottaflex.ai-creadential-lifecycle-maanagement-system/blob/main/backend/app/api/v1/router.py) (API router)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_client["Web client"]
  node_app["Application routes<br/>[App.jsx]"]
  node_authui["Session context<br/>[AuthContext.jsx]"]
  node_workspace["Academic workspace<br/>[Workspace.jsx]"]
  node_analytics["Analytics views<br/>[Analytics.jsx]"]
  node_verificationui["Verification view<br/>[Verification.jsx]"]
  node_api_client["HTTP API client<br/>[api.js]"]
end

subgraph group_api["API and access"]
  node_api_routes["API router<br/>[router.py]"]
  node_auth["Authentication<br/>[auth.py]"]
  node_business["Lifecycle endpoints<br/>[business.py]"]
  node_security["JWT and passwords<br/>[security.py]"]
  node_schemas["API schemas<br/>[api.py]"]
end

subgraph group_lifecycle["Academic lifecycle"]
  node_eligibility["Eligibility evaluation<br/>[eligibility.py]"]
  node_management["Lifecycle management<br/>[management.py]"]
end

subgraph group_trust["Credential trust"]
  node_signing["Issuer keys and signing<br/>[business.py]"]
  node_verification["Credential verification<br/>[business.py]"]
end

subgraph group_state["Persistence and reporting"]
  node_domain["Domain records<br/>[domain.py]"]
  node_database[("SQL database<br/>[connection.py]")]
  node_audit["Audit history<br/>[audit.py]"]
  node_reporting["Reports and analytics<br/>[business.py]"]
end

node_staff(("Academic staff"))
node_learner(("Learner"))
node_public(("Public verifier"))

node_app -->|"provides session"| node_authui
node_app -->|"routes to"| node_workspace
node_app -->|"routes to"| node_analytics
node_app -->|"routes to"| node_verificationui
node_authui -->|"requests profile"| node_api_client
node_workspace -->|"requests lifecycle data"| node_api_client
node_analytics -->|"requests reports"| node_api_client
node_verificationui -->|"requests verification"| node_api_client
node_api_client -.->|"sends HTTP requests"| node_api_routes
node_api_routes -->|"registers routes"| node_auth
node_api_routes -->|"registers routes"| node_business
node_auth -->|"verifies and signs"| node_security
node_business -->|"delegates evaluation"| node_eligibility
node_business -->|"delegates management"| node_management
node_business -->|"records events"| node_audit
node_business -->|"serves reports"| node_reporting
node_business -.->|"registers keys"| node_signing
node_business -->|"dispatches verification"| node_verification
node_auth -->|"queries users"| node_database
node_business -->|"queries and updates"| node_database
node_eligibility -->|"reads lifecycle state"| node_domain
node_management -->|"updates records"| node_domain
node_audit -->|"persists events"| node_domain
node_staff -.->|"uses workspace"| node_app
node_learner -.->|"views credentials"| node_app
node_public -.->|"checks credential"| node_verificationui

click node_app "https://github.com/venu-16/yottaflex.ai-creadential-lifecycle-maanagement-system/blob/main/frontend/src/App.jsx"
click node_authui "https://github.com/venu-16/yottaflex.ai-creadential-lifecycle-maanagement-system/blob/main/frontend/src/context/AuthContext.jsx"
click node_workspace "https://github.com/venu-16/yottaflex.ai-creadential-lifecycle-maanagement-system/blob/main/frontend/src/pages/Workspace.jsx"
click node_analytics "https://github.com/venu-16/yottaflex.ai-creadential-lifecycle-maanagement-system/blob/main/frontend/src/pages/analytics/Analytics.jsx"
click node_verificationui "https://github.com/venu-16/yottaflex.ai-creadential-lifecycle-maanagement-system/blob/main/frontend/src/pages/verification/Verification.jsx"
click node_api_client "https://github.com/venu-16/yottaflex.ai-creadential-lifecycle-maanagement-system/blob/main/frontend/src/services/api.js"
click node_api_routes "https://github.com/venu-16/yottaflex.ai-creadential-lifecycle-maanagement-system/blob/main/backend/app/api/v1/router.py"
click node_auth "https://github.com/venu-16/yottaflex.ai-creadential-lifecycle-maanagement-system/blob/main/backend/app/api/v1/endpoints/auth.py"
click node_business "https://github.com/venu-16/yottaflex.ai-creadential-lifecycle-maanagement-system/blob/main/backend/app/api/v1/endpoints/business.py"
click node_security "https://github.com/venu-16/yottaflex.ai-creadential-lifecycle-maanagement-system/blob/main/backend/app/core/security.py"
click node_eligibility "https://github.com/venu-16/yottaflex.ai-creadential-lifecycle-maanagement-system/blob/main/backend/app/services/eligibility.py"
click node_management "https://github.com/venu-16/yottaflex.ai-creadential-lifecycle-maanagement-system/blob/main/backend/app/services/management.py"
click node_domain "https://github.com/venu-16/yottaflex.ai-creadential-lifecycle-maanagement-system/blob/main/backend/app/models/domain.py"
click node_database "https://github.com/venu-16/yottaflex.ai-creadential-lifecycle-maanagement-system/blob/main/backend/app/database/connection.py"
click node_audit "https://github.com/venu-16/yottaflex.ai-creadential-lifecycle-maanagement-system/blob/main/backend/app/services/audit.py"
click node_reporting "https://github.com/venu-16/yottaflex.ai-creadential-lifecycle-maanagement-system/blob/main/backend/app/api/v1/endpoints/business.py"
click node_signing "https://github.com/venu-16/yottaflex.ai-creadential-lifecycle-maanagement-system/blob/main/backend/app/api/v1/endpoints/business.py"
click node_verification "https://github.com/venu-16/yottaflex.ai-creadential-lifecycle-maanagement-system/blob/main/backend/app/api/v1/endpoints/business.py"
click node_schemas "https://github.com/venu-16/yottaflex.ai-creadential-lifecycle-maanagement-system/blob/main/backend/app/schemas/api.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_app,node_authui,node_workspace,node_analytics,node_verificationui,node_api_client toneBlue
class node_api_routes,node_auth,node_business,node_security,node_schemas toneAmber
class node_eligibility,node_management toneMint
class node_signing,node_verification toneRose
class node_domain,node_database,node_audit,node_reporting,node_staff,node_learner,node_public toneIndigo
```

## Components

### Web client

- [Application routes](https://github.com/venu-16/yottaflex.ai-creadential-lifecycle-maanagement-system/blob/main/frontend/src/App.jsx): `frontend/src/App.jsx`
- [Session context](https://github.com/venu-16/yottaflex.ai-creadential-lifecycle-maanagement-system/blob/main/frontend/src/context/AuthContext.jsx): `frontend/src/context/AuthContext.jsx`
- [Academic workspace](https://github.com/venu-16/yottaflex.ai-creadential-lifecycle-maanagement-system/blob/main/frontend/src/pages/Workspace.jsx): `frontend/src/pages/Workspace.jsx`
- [Analytics views](https://github.com/venu-16/yottaflex.ai-creadential-lifecycle-maanagement-system/blob/main/frontend/src/pages/analytics/Analytics.jsx): `frontend/src/pages/analytics/Analytics.jsx`
- [Verification view](https://github.com/venu-16/yottaflex.ai-creadential-lifecycle-maanagement-system/blob/main/frontend/src/pages/verification/Verification.jsx): `frontend/src/pages/verification/Verification.jsx`
- [HTTP API client](https://github.com/venu-16/yottaflex.ai-creadential-lifecycle-maanagement-system/blob/main/frontend/src/services/api.js): `frontend/src/services/api.js`

### API and access

- [API router](https://github.com/venu-16/yottaflex.ai-creadential-lifecycle-maanagement-system/blob/main/backend/app/api/v1/router.py): `backend/app/api/v1/router.py`
- [Authentication](https://github.com/venu-16/yottaflex.ai-creadential-lifecycle-maanagement-system/blob/main/backend/app/api/v1/endpoints/auth.py): `backend/app/api/v1/endpoints/auth.py`
- [Lifecycle endpoints](https://github.com/venu-16/yottaflex.ai-creadential-lifecycle-maanagement-system/blob/main/backend/app/api/v1/endpoints/business.py): `backend/app/api/v1/endpoints/business.py`
- [JWT and passwords](https://github.com/venu-16/yottaflex.ai-creadential-lifecycle-maanagement-system/blob/main/backend/app/core/security.py): `backend/app/core/security.py`
- [API schemas](https://github.com/venu-16/yottaflex.ai-creadential-lifecycle-maanagement-system/blob/main/backend/app/schemas/api.py): `backend/app/schemas/api.py`

### Academic lifecycle

- [Eligibility evaluation](https://github.com/venu-16/yottaflex.ai-creadential-lifecycle-maanagement-system/blob/main/backend/app/services/eligibility.py): `backend/app/services/eligibility.py`
- [Lifecycle management](https://github.com/venu-16/yottaflex.ai-creadential-lifecycle-maanagement-system/blob/main/backend/app/services/management.py): `backend/app/services/management.py`

### Credential trust

- [Issuer keys and signing](https://github.com/venu-16/yottaflex.ai-creadential-lifecycle-maanagement-system/blob/main/backend/app/api/v1/endpoints/business.py): `backend/app/api/v1/endpoints/business.py`
- [Credential verification](https://github.com/venu-16/yottaflex.ai-creadential-lifecycle-maanagement-system/blob/main/backend/app/api/v1/endpoints/business.py): `backend/app/api/v1/endpoints/business.py`

### Persistence and reporting

- [Domain records](https://github.com/venu-16/yottaflex.ai-creadential-lifecycle-maanagement-system/blob/main/backend/app/models/domain.py): `backend/app/models/domain.py`
- [SQL database](https://github.com/venu-16/yottaflex.ai-creadential-lifecycle-maanagement-system/blob/main/backend/app/database/connection.py): `backend/app/database/connection.py`
- [Audit history](https://github.com/venu-16/yottaflex.ai-creadential-lifecycle-maanagement-system/blob/main/backend/app/services/audit.py): `backend/app/services/audit.py`
- [Reports and analytics](https://github.com/venu-16/yottaflex.ai-creadential-lifecycle-maanagement-system/blob/main/backend/app/api/v1/endpoints/business.py): `backend/app/api/v1/endpoints/business.py`

### Other components

- **Academic staff**
- **Learner**
- **Public verifier**

## Connections

- Application routes → Session context: provides session (evidence: `frontend/src/App.jsx`)
- Application routes → Academic workspace: routes to (evidence: `frontend/src/App.jsx`)
- Application routes → Analytics views: routes to (evidence: `frontend/src/App.jsx`)
- Application routes → Verification view: routes to (evidence: `frontend/src/App.jsx`)
- Session context → HTTP API client: requests profile (evidence: `frontend/src/context/AuthContext.jsx`)
- Academic workspace → HTTP API client: requests lifecycle data (evidence: `frontend/src/pages/Workspace.jsx`)
- Analytics views → HTTP API client: requests reports (evidence: `frontend/src/pages/analytics/Analytics.jsx`)
- Verification view → HTTP API client: requests verification (evidence: `frontend/src/pages/verification/Verification.jsx`)
- HTTP API client → API router: sends HTTP requests
- API router → Authentication: registers routes (evidence: `backend/app/api/v1/router.py`)
- API router → Lifecycle endpoints: registers routes (evidence: `backend/app/api/v1/router.py`)
- Authentication → JWT and passwords: verifies and signs (evidence: `backend/app/api/v1/endpoints/auth.py`)
- Lifecycle endpoints → Eligibility evaluation: delegates evaluation (evidence: `backend/app/api/v1/endpoints/business.py`)
- Lifecycle endpoints → Lifecycle management: delegates management (evidence: `backend/app/api/v1/endpoints/business.py`)
- Lifecycle endpoints → Audit history: records events (evidence: `backend/app/api/v1/endpoints/business.py`)
- Lifecycle endpoints → Reports and analytics: serves reports (evidence: `backend/app/api/v1/endpoints/business.py`)
- Lifecycle endpoints → Issuer keys and signing: registers keys (evidence: `backend/app/api/v1/endpoints/business.py`)
- Lifecycle endpoints → Credential verification: dispatches verification (evidence: `backend/app/api/v1/endpoints/business.py`)
- Authentication → SQL database: queries users (evidence: `backend/app/api/v1/endpoints/auth.py`)
- Lifecycle endpoints → SQL database: queries and updates (evidence: `backend/app/api/v1/endpoints/business.py`)
- Eligibility evaluation → Domain records: reads lifecycle state (evidence: `backend/app/services/eligibility.py`)
- Lifecycle management → Domain records: updates records (evidence: `backend/app/services/management.py`)
- Audit history → Domain records: persists events (evidence: `backend/app/services/audit.py`)
- Academic staff → Application routes: uses workspace
- Learner → Application routes: views credentials
- Public verifier → Verification view: checks credential
