# aeronsal/feu-das architecture

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

- Interactive diagram: https://gitdiagram.com/aeronsal/feu-das
- Repository: https://github.com/aeronsal/feu-das

## Overview

This Symfony application supports employee training requests (LDRF), approval, post-training evaluation, and HRO training oversight. The principal workflow is request submission and tracking, followed by approver review and notification; completed training can then be evaluated and reported. Separate branches cover training inventory/monitoring, needs analysis, user and department administration, and security. The excerpts confirm selected controller, repository, and service interactions; several listed controllers and services were not sampled, so their internal wiring is intentionally not inferred.

Main entry points: [`src/Controller/LdrfController.php`](https://github.com/aeronsal/feu-das/blob/feu-das/src/Controller/LdrfController.php) (Training requests), [`src/Controller/TrainingNeedsAnalysisController.php`](https://github.com/aeronsal/feu-das/blob/feu-das/src/Controller/TrainingNeedsAnalysisController.php) (Needs analysis), [`src/Controller/FixedApproverController.php`](https://github.com/aeronsal/feu-das/blob/feu-das/src/Controller/FixedApproverController.php) (Approval actions), [`src/Controller/NotificationController.php`](https://github.com/aeronsal/feu-das/blob/feu-das/src/Controller/NotificationController.php) (Notification access)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_workflow["Requests and Approvals"]
  node_ldrf["Training requests<br/>[LdrfController.php]"]
  node_approval["Approval actions"]
  node_notification_ui["Notification access"]
end

subgraph group_insights["Training Insights"]
  node_training_inventory["Training inventory"]
  node_training_monitoring["Training monitoring"]
  node_needs_analysis["Needs analysis"]
  node_evaluation["Post-training evaluation"]
  node_evaluation_action["Evaluation action plans"]
end

subgraph group_admin["Administration and Access"]
  node_admin_setup["Department and location setup"]
  node_user_admin["User management"]
  node_security["Authentication"]
end

subgraph group_shared["Shared Services and Data"]
  node_approval_data["Approval queries"]
  node_request_data["Request queries"]
  node_notify["Notifications"]
  node_sentiment["Sentiment analysis"]
  node_evaluation_export["Evaluation exports"]
  node_pdf["Request PDF generation"]
  node_database[("Application database")]
end

node_employee(("Employee"))
node_approver(("Approver"))
node_hro(("HRO staff"))

node_employee -->|"submits or tracks"| node_ldrf
node_ldrf -->|"queries requests"| node_request_data
node_ldrf -->|"reads and writes"| node_database
node_approver -->|"reviews requests"| node_approval
node_approval -->|"queries approvals"| node_approval_data
node_approval_data -->|"reads approvals"| node_database
node_ldrf -->|"dispatches notices"| node_notify
node_employee -->|"views notices"| node_notification_ui
node_notification_ui -->|"reads notices"| node_database
node_hro -->|"reviews records"| node_training_inventory
node_training_inventory -->|"queries records"| node_database
node_hro -->|"monitors training"| node_training_monitoring
node_training_monitoring -->|"queries metrics"| node_database
node_hro -->|"analyzes outcomes"| node_needs_analysis
node_needs_analysis -->|"analyzes responses"| node_sentiment
node_needs_analysis -->|"reads evaluations"| node_database
node_employee -->|"completes evaluation"| node_evaluation
node_evaluation -->|"reads and writes"| node_database
node_hro -->|"manages action plans"| node_evaluation_action
node_hro -->|"configures departments"| node_admin_setup
node_admin_setup -->|"reads and writes"| node_database
node_hro -->|"manages users"| node_user_admin
node_user_admin -->|"reads and writes"| node_database
node_employee -->|"authenticates"| node_security

click node_ldrf "https://github.com/aeronsal/feu-das/blob/feu-das/src/Controller/LdrfController.php"
click node_approval "https://github.com/aeronsal/feu-das/blob/feu-das/src/Controller/FixedApproverController.php"
click node_approval_data "https://github.com/aeronsal/feu-das/blob/feu-das/src/Repository/LdrfApproverRepository.php"
click node_request_data "https://github.com/aeronsal/feu-das/blob/feu-das/src/Repository/LdrfRequestRepository.php"
click node_notify "https://github.com/aeronsal/feu-das/blob/feu-das/src/Service/NotificationManager.php"
click node_notification_ui "https://github.com/aeronsal/feu-das/blob/feu-das/src/Controller/NotificationController.php"
click node_training_inventory "https://github.com/aeronsal/feu-das/blob/feu-das/src/Controller/TrainingInventoryController.php"
click node_training_monitoring "https://github.com/aeronsal/feu-das/blob/feu-das/src/Controller/TrainingMonitoringController.php"
click node_needs_analysis "https://github.com/aeronsal/feu-das/blob/feu-das/src/Controller/TrainingNeedsAnalysisController.php"
click node_sentiment "https://github.com/aeronsal/feu-das/blob/feu-das/src/Service/SentimentAnalyzer.php"
click node_evaluation "https://github.com/aeronsal/feu-das/blob/feu-das/src/Controller/EvaluationController.php"
click node_evaluation_action "https://github.com/aeronsal/feu-das/blob/feu-das/src/Controller/EvaluationActionPlanController.php"
click node_evaluation_export "https://github.com/aeronsal/feu-das/blob/feu-das/src/Service/EvaluationExportService.php"
click node_pdf "https://github.com/aeronsal/feu-das/blob/feu-das/src/Service/PdfGeneratorService.php"
click node_admin_setup "https://github.com/aeronsal/feu-das/blob/feu-das/src/Controller/DepartmentSetupController.php"
click node_user_admin "https://github.com/aeronsal/feu-das/blob/feu-das/src/Controller/UserManagementController.php"
click node_security "https://github.com/aeronsal/feu-das/blob/feu-das/src/Security/AppAuthenticator.php"

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_ldrf,node_approval,node_notification_ui toneBlue
class node_training_inventory,node_training_monitoring,node_needs_analysis,node_evaluation,node_evaluation_action toneAmber
class node_admin_setup,node_user_admin,node_security toneMint
class node_approval_data,node_request_data,node_notify,node_sentiment,node_evaluation_export,node_pdf,node_database toneRose
class node_employee,node_approver,node_hro toneIndigo
```

## Components

### Requests and Approvals

- [Training requests](https://github.com/aeronsal/feu-das/blob/feu-das/src/Controller/LdrfController.php): `src/Controller/LdrfController.php`
- [Approval actions](https://github.com/aeronsal/feu-das/blob/feu-das/src/Controller/FixedApproverController.php): `src/Controller/FixedApproverController.php`
- [Notification access](https://github.com/aeronsal/feu-das/blob/feu-das/src/Controller/NotificationController.php): `src/Controller/NotificationController.php`

### Training Insights

- [Training inventory](https://github.com/aeronsal/feu-das/blob/feu-das/src/Controller/TrainingInventoryController.php): `src/Controller/TrainingInventoryController.php`
- [Training monitoring](https://github.com/aeronsal/feu-das/blob/feu-das/src/Controller/TrainingMonitoringController.php): `src/Controller/TrainingMonitoringController.php`
- [Needs analysis](https://github.com/aeronsal/feu-das/blob/feu-das/src/Controller/TrainingNeedsAnalysisController.php): `src/Controller/TrainingNeedsAnalysisController.php`
- [Post-training evaluation](https://github.com/aeronsal/feu-das/blob/feu-das/src/Controller/EvaluationController.php): `src/Controller/EvaluationController.php`
- [Evaluation action plans](https://github.com/aeronsal/feu-das/blob/feu-das/src/Controller/EvaluationActionPlanController.php): `src/Controller/EvaluationActionPlanController.php`

### Administration and Access

- [Department and location setup](https://github.com/aeronsal/feu-das/blob/feu-das/src/Controller/DepartmentSetupController.php): `src/Controller/DepartmentSetupController.php`
- [User management](https://github.com/aeronsal/feu-das/blob/feu-das/src/Controller/UserManagementController.php): `src/Controller/UserManagementController.php`
- [Authentication](https://github.com/aeronsal/feu-das/blob/feu-das/src/Security/AppAuthenticator.php): `src/Security/AppAuthenticator.php`

### Shared Services and Data

- [Approval queries](https://github.com/aeronsal/feu-das/blob/feu-das/src/Repository/LdrfApproverRepository.php): `src/Repository/LdrfApproverRepository.php`
- [Request queries](https://github.com/aeronsal/feu-das/blob/feu-das/src/Repository/LdrfRequestRepository.php): `src/Repository/LdrfRequestRepository.php`
- [Notifications](https://github.com/aeronsal/feu-das/blob/feu-das/src/Service/NotificationManager.php): `src/Service/NotificationManager.php`
- [Sentiment analysis](https://github.com/aeronsal/feu-das/blob/feu-das/src/Service/SentimentAnalyzer.php): `src/Service/SentimentAnalyzer.php`
- [Evaluation exports](https://github.com/aeronsal/feu-das/blob/feu-das/src/Service/EvaluationExportService.php): `src/Service/EvaluationExportService.php`
- [Request PDF generation](https://github.com/aeronsal/feu-das/blob/feu-das/src/Service/PdfGeneratorService.php): `src/Service/PdfGeneratorService.php`
- **Application database**

### Other components

- **Employee**
- **Approver**
- **HRO staff**

## Connections

- Employee → Training requests: submits or tracks
- Training requests → Request queries: queries requests
- Training requests → Application database: reads and writes
- Approver → Approval actions: reviews requests
- Approval actions → Approval queries: queries approvals
- Approval queries → Application database: reads approvals
- Training requests → Notifications: dispatches notices
- Employee → Notification access: views notices
- Notification access → Application database: reads notices
- HRO staff → Training inventory: reviews records
- Training inventory → Application database: queries records
- HRO staff → Training monitoring: monitors training
- Training monitoring → Application database: queries metrics
- HRO staff → Needs analysis: analyzes outcomes
- Needs analysis → Sentiment analysis: analyzes responses
- Needs analysis → Application database: reads evaluations
- Employee → Post-training evaluation: completes evaluation
- Post-training evaluation → Application database: reads and writes
- HRO staff → Evaluation action plans: manages action plans
- HRO staff → Department and location setup: configures departments
- Department and location setup → Application database: reads and writes
- HRO staff → User management: manages users
- User management → Application database: reads and writes
- Employee → Authentication: authenticates
