# vin0414/lcore architecture

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

## Overview

This is a Laravel-based HR and employee-management application. HR users manage employee records and movements, leave, memos and announcements, accounts, and organizational settings; employees have a separate portal. The web routes dispatch requests to controllers, which render views or update application records. The route file and selected controller excerpts support the main dispatch and several domain behaviors; other listed capabilities are represented from the tree, so their internal call paths are not asserted.

Main entry points: [`routes/web.php`](https://github.com/vin0414/lcore/blob/main/routes/web.php) (Web routes), [`app/Http/Controllers/MemoController.php`](https://github.com/vin0414/lcore/blob/main/app/Http/Controllers/MemoController.php) (Memos and announcements), [`app/Http/Controllers/SettingController.php`](https://github.com/vin0414/lcore/blob/main/app/Http/Controllers/SettingController.php) (Settings and accounts), [`app/Http/Controllers/EmployeeController.php`](https://github.com/vin0414/lcore/blob/main/app/Http/Controllers/EmployeeController.php) (Employee records)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_entry["Web entry"]
  node_web_entry["Web routes<br/>[web.php]"]
  node_route_provider["Route provider"]
  node_http_kernel["HTTP kernel<br/>[Kernel.php]"]
  node_bootstrap["Application bootstrap<br/>[app.php]"]
  node_public_entry["HTTP entry point<br/>[index.php]"]
  node_auth["Authentication"]
  node_employee_auth["Employee authentication"]
  node_base_controller["Controller base<br/>[Controller.php]"]
  node_exception_handler["Exception handling<br/>[Handler.php]"]
  node_event_provider["Event services"]
  node_redirect_middleware["Auth redirect"]
  node_user_model["Laravel user model<br/>[User.php]"]
  node_js_bootstrap["Browser bootstrap<br/>[bootstrap.js]"]
end

subgraph group_people["People management"]
  node_employee_controller["Employee records"]
  node_employee_portal["Employee portal"]
  node_employee_model["Employee data<br/>[employeeModel.php]"]
  node_employee_views["Employee views<br/>[index.blade.php]"]
end

subgraph group_workflows["HR workflows"]
  node_leave_views["Leave management<br/>[index.blade.php]"]
  node_memo_controller["Memos and announcements<br/>[MemoController.php]"]
  node_memo_model["Memo data<br/>[memoModel.php]"]
  node_memo_views["Memo views<br/>[index.blade.php]"]
end

subgraph group_admin["Administration"]
  node_home_controller["HR overview<br/>[HomeController.php]"]
  node_settings_controller["Settings and accounts"]
  node_settings_view["Settings view<br/>[settings.blade.php]"]
  node_account_model["Account data<br/>[accountModel.php]"]
  node_log_model["Activity logs<br/>[logModel.php]"]
  node_database[("Application database<br/>[database.php]")]
end

node_hr_user(("HR user"))
node_employee_user(("Employee"))

node_hr_user -->|"requests"| node_web_entry
node_employee_user -->|"requests"| node_web_entry
node_public_entry -->|"loads"| node_bootstrap
node_public_entry -->|"handles request"| node_http_kernel
node_bootstrap -->|"binds"| node_http_kernel
node_bootstrap -->|"binds"| node_exception_handler
node_route_provider -->|"registers routes"| node_web_entry
node_web_entry -->|"dispatches"| node_auth
node_web_entry -->|"dispatches"| node_employee_auth
node_web_entry -->|"dispatches"| node_employee_controller
node_web_entry -->|"dispatches"| node_employee_portal
node_web_entry -->|"dispatches"| node_home_controller
node_web_entry -->|"dispatches"| node_memo_controller
node_web_entry -->|"dispatches"| node_settings_controller
node_http_kernel -->|"registers middleware"| node_redirect_middleware
node_employee_controller -->|"reads and writes"| node_employee_model
node_employee_controller -->|"records activity"| node_log_model
node_home_controller -->|"reads"| node_employee_model
node_home_controller -->|"renders"| node_employee_views
node_employee_controller -.->|"persists records"| node_database
node_memo_controller -->|"reads and writes"| node_memo_model
node_memo_controller -->|"records activity"| node_log_model
node_memo_controller -.->|"serves workflow"| node_memo_views
node_memo_controller -.->|"persists records"| node_database
node_settings_controller -->|"creates accounts"| node_account_model
node_settings_controller -->|"records activity"| node_log_model
node_settings_controller -.->|"serves settings"| node_settings_view
node_settings_controller -.->|"persists records"| node_database
node_auth -->|"uses accounts"| node_account_model
node_employee_controller -->|"extends"| node_base_controller
node_memo_controller -->|"extends"| node_base_controller
node_settings_controller -->|"extends"| node_base_controller
node_user_model -.->|"Eloquent model"| node_database

click node_web_entry "https://github.com/vin0414/lcore/blob/main/routes/web.php"
click node_route_provider "https://github.com/vin0414/lcore/blob/main/app/Providers/RouteServiceProvider.php"
click node_http_kernel "https://github.com/vin0414/lcore/blob/main/app/Http/Kernel.php"
click node_bootstrap "https://github.com/vin0414/lcore/blob/main/bootstrap/app.php"
click node_public_entry "https://github.com/vin0414/lcore/blob/main/public/index.php"
click node_auth "https://github.com/vin0414/lcore/blob/main/app/Http/Controllers/CustomAuthController.php"
click node_employee_auth "https://github.com/vin0414/lcore/blob/main/app/Http/Controllers/EmployeeAuthController.php"
click node_employee_controller "https://github.com/vin0414/lcore/blob/main/app/Http/Controllers/EmployeeController.php"
click node_employee_portal "https://github.com/vin0414/lcore/blob/main/app/Http/Controllers/EmployeePortalController.php"
click node_employee_model "https://github.com/vin0414/lcore/blob/main/app/Models/employeeModel.php"
click node_employee_views "https://github.com/vin0414/lcore/blob/main/resources/views/hr/employee/index.blade.php"
click node_leave_views "https://github.com/vin0414/lcore/blob/main/resources/views/hr/leave/index.blade.php"
click node_memo_controller "https://github.com/vin0414/lcore/blob/main/app/Http/Controllers/MemoController.php"
click node_memo_model "https://github.com/vin0414/lcore/blob/main/app/Models/memoModel.php"
click node_memo_views "https://github.com/vin0414/lcore/blob/main/resources/views/hr/memo/index.blade.php"
click node_home_controller "https://github.com/vin0414/lcore/blob/main/app/Http/Controllers/HomeController.php"
click node_settings_controller "https://github.com/vin0414/lcore/blob/main/app/Http/Controllers/SettingController.php"
click node_settings_view "https://github.com/vin0414/lcore/blob/main/resources/views/hr/settings.blade.php"
click node_account_model "https://github.com/vin0414/lcore/blob/main/app/Models/accountModel.php"
click node_log_model "https://github.com/vin0414/lcore/blob/main/app/Models/logModel.php"
click node_database "https://github.com/vin0414/lcore/blob/main/config/database.php"
click node_base_controller "https://github.com/vin0414/lcore/blob/main/app/Http/Controllers/Controller.php"
click node_exception_handler "https://github.com/vin0414/lcore/blob/main/app/Exceptions/Handler.php"
click node_event_provider "https://github.com/vin0414/lcore/blob/main/app/Providers/EventServiceProvider.php"
click node_redirect_middleware "https://github.com/vin0414/lcore/blob/main/app/Http/Middleware/RedirectIfAuthenticated.php"
click node_user_model "https://github.com/vin0414/lcore/blob/main/app/Models/User.php"
click node_js_bootstrap "https://github.com/vin0414/lcore/blob/main/resources/js/bootstrap.js"

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_web_entry,node_route_provider,node_http_kernel,node_bootstrap,node_public_entry,node_auth,node_employee_auth,node_base_controller,node_exception_handler,node_event_provider,node_redirect_middleware,node_user_model,node_js_bootstrap,node_hr_user toneBlue
class node_employee_controller,node_employee_portal,node_employee_model,node_employee_views toneAmber
class node_leave_views,node_memo_controller,node_memo_model,node_memo_views toneMint
class node_home_controller,node_settings_controller,node_settings_view,node_account_model,node_log_model,node_database toneRose
class node_employee_user toneIndigo
```

## Components

### Web entry

- [Web routes](https://github.com/vin0414/lcore/blob/main/routes/web.php): `routes/web.php`
- [Route provider](https://github.com/vin0414/lcore/blob/main/app/Providers/RouteServiceProvider.php): `app/Providers/RouteServiceProvider.php`
- [HTTP kernel](https://github.com/vin0414/lcore/blob/main/app/Http/Kernel.php): `app/Http/Kernel.php`
- [Application bootstrap](https://github.com/vin0414/lcore/blob/main/bootstrap/app.php): `bootstrap/app.php`
- [HTTP entry point](https://github.com/vin0414/lcore/blob/main/public/index.php): `public/index.php`
- [Authentication](https://github.com/vin0414/lcore/blob/main/app/Http/Controllers/CustomAuthController.php): `app/Http/Controllers/CustomAuthController.php`
- [Employee authentication](https://github.com/vin0414/lcore/blob/main/app/Http/Controllers/EmployeeAuthController.php): `app/Http/Controllers/EmployeeAuthController.php`
- [Controller base](https://github.com/vin0414/lcore/blob/main/app/Http/Controllers/Controller.php): `app/Http/Controllers/Controller.php`
- [Exception handling](https://github.com/vin0414/lcore/blob/main/app/Exceptions/Handler.php): `app/Exceptions/Handler.php`
- [Event services](https://github.com/vin0414/lcore/blob/main/app/Providers/EventServiceProvider.php): `app/Providers/EventServiceProvider.php`
- [Auth redirect](https://github.com/vin0414/lcore/blob/main/app/Http/Middleware/RedirectIfAuthenticated.php): `app/Http/Middleware/RedirectIfAuthenticated.php`
- [Laravel user model](https://github.com/vin0414/lcore/blob/main/app/Models/User.php): `app/Models/User.php`
- [Browser bootstrap](https://github.com/vin0414/lcore/blob/main/resources/js/bootstrap.js): `resources/js/bootstrap.js`

### People management

- [Employee records](https://github.com/vin0414/lcore/blob/main/app/Http/Controllers/EmployeeController.php): `app/Http/Controllers/EmployeeController.php`
- [Employee portal](https://github.com/vin0414/lcore/blob/main/app/Http/Controllers/EmployeePortalController.php): `app/Http/Controllers/EmployeePortalController.php`
- [Employee data](https://github.com/vin0414/lcore/blob/main/app/Models/employeeModel.php): `app/Models/employeeModel.php`
- [Employee views](https://github.com/vin0414/lcore/blob/main/resources/views/hr/employee/index.blade.php): `resources/views/hr/employee/index.blade.php`

### HR workflows

- [Leave management](https://github.com/vin0414/lcore/blob/main/resources/views/hr/leave/index.blade.php): `resources/views/hr/leave/index.blade.php`
- [Memos and announcements](https://github.com/vin0414/lcore/blob/main/app/Http/Controllers/MemoController.php): `app/Http/Controllers/MemoController.php`
- [Memo data](https://github.com/vin0414/lcore/blob/main/app/Models/memoModel.php): `app/Models/memoModel.php`
- [Memo views](https://github.com/vin0414/lcore/blob/main/resources/views/hr/memo/index.blade.php): `resources/views/hr/memo/index.blade.php`

### Administration

- [HR overview](https://github.com/vin0414/lcore/blob/main/app/Http/Controllers/HomeController.php): `app/Http/Controllers/HomeController.php`
- [Settings and accounts](https://github.com/vin0414/lcore/blob/main/app/Http/Controllers/SettingController.php): `app/Http/Controllers/SettingController.php`
- [Settings view](https://github.com/vin0414/lcore/blob/main/resources/views/hr/settings.blade.php): `resources/views/hr/settings.blade.php`
- [Account data](https://github.com/vin0414/lcore/blob/main/app/Models/accountModel.php): `app/Models/accountModel.php`
- [Activity logs](https://github.com/vin0414/lcore/blob/main/app/Models/logModel.php): `app/Models/logModel.php`
- [Application database](https://github.com/vin0414/lcore/blob/main/config/database.php): `config/database.php`

### Other components

- **HR user**
- **Employee**

## Connections

- HR user → Web routes: requests
- Employee → Web routes: requests
- HTTP entry point → Application bootstrap: loads (evidence: `public/index.php`)
- HTTP entry point → HTTP kernel: handles request (evidence: `public/index.php`)
- Application bootstrap → HTTP kernel: binds (evidence: `bootstrap/app.php`)
- Application bootstrap → Exception handling: binds (evidence: `bootstrap/app.php`)
- Route provider → Web routes: registers routes (evidence: `app/Providers/RouteServiceProvider.php`)
- Web routes → Authentication: dispatches (evidence: `routes/web.php`)
- Web routes → Employee authentication: dispatches (evidence: `routes/web.php`)
- Web routes → Employee records: dispatches (evidence: `routes/web.php`)
- Web routes → Employee portal: dispatches (evidence: `routes/web.php`)
- Web routes → HR overview: dispatches (evidence: `routes/web.php`)
- Web routes → Memos and announcements: dispatches (evidence: `routes/web.php`)
- Web routes → Settings and accounts: dispatches (evidence: `routes/web.php`)
- HTTP kernel → Auth redirect: registers middleware (evidence: `app/Http/Kernel.php`)
- Employee records → Employee data: reads and writes (evidence: `app/Http/Controllers/EmployeeController.php`)
- Employee records → Activity logs: records activity (evidence: `app/Http/Controllers/EmployeeController.php`)
- HR overview → Employee data: reads (evidence: `app/Http/Controllers/HomeController.php`)
- HR overview → Employee views: renders (evidence: `app/Http/Controllers/HomeController.php`)
- Employee records → Application database: persists records
- Memos and announcements → Memo data: reads and writes (evidence: `app/Http/Controllers/MemoController.php`)
- Memos and announcements → Activity logs: records activity (evidence: `app/Http/Controllers/MemoController.php`)
- Memos and announcements → Memo views: serves workflow
- Memos and announcements → Application database: persists records
- Settings and accounts → Account data: creates accounts (evidence: `app/Http/Controllers/SettingController.php`)
- Settings and accounts → Activity logs: records activity (evidence: `app/Http/Controllers/SettingController.php`)
- Settings and accounts → Settings view: serves settings
- Settings and accounts → Application database: persists records
- Authentication → Account data: uses accounts (evidence: `app/Http/Controllers/CustomAuthController.php`)
- Employee records → Controller base: extends (evidence: `app/Http/Controllers/Controller.php`)
- Memos and announcements → Controller base: extends (evidence: `app/Http/Controllers/Controller.php`)
- Settings and accounts → Controller base: extends (evidence: `app/Http/Controllers/Controller.php`)
- Laravel user model → Application database: Eloquent model
