# senzju-id/password-manager architecture

> Architecture diagram of the GitHub repository senzju-id/password-manager, 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/senzju-id/password-manager
- Repository: https://github.com/senzju-id/password-manager

## Overview

This repository is a password-manager-named web application, but the visible product surface is currently account login and registration rather than password-vault management. The frontend provides auth pages and forms; the sampled registration form prevents submission without sending data. Laravel and Fortify provide a backend account-authentication foundation, but the route contents and most backend action implementations were not sampled, so frontend-to-backend wiring is not asserted.

Main entry points: [`backend/bootstrap/app.php`](https://github.com/senzju-id/password-manager/blob/main/backend/bootstrap/app.php) (App bootstrap), [`backend/app/Models/User.php`](https://github.com/senzju-id/password-manager/blob/main/backend/app/Models/User.php) (User model), [`backend/app/Providers/FortifyServiceProvider.php`](https://github.com/senzju-id/password-manager/blob/main/backend/app/Providers/FortifyServiceProvider.php) (Fortify setup), [`frontend/src/app/page.tsx`](https://github.com/senzju-id/password-manager/blob/main/frontend/src/app/page.tsx) (Home page)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_frontend["Web frontend"]
  node_home["Home page<br/>[page.tsx]"]
  node_header["Site header<br/>[header.tsx]"]
  node_login_page["Login page<br/>[page.tsx]"]
  node_register_page["Registration page<br/>[page.tsx]"]
  node_login_form["Login form<br/>[formLogin.tsx]"]
  node_register_form["Registration form<br/>[formRegister.tsx]"]
  node_auth_ui["Auth form UI<br/>[formUiAuth.tsx]"]
  node_http_client["HTTP client<br/>[axios.ts]"]
  node_frontend_layout["App layout<br/>[layout.tsx]"]
end

subgraph group_backend["Laravel backend"]
  node_entry["HTTP entry<br/>[index.php]"]
  node_bootstrap["App bootstrap<br/>[app.php]"]
  node_api_routes["API routes<br/>[api.php]"]
  node_web_routes["Web routes<br/>[web.php]"]
end

subgraph group_identity["Account identity"]
  node_fortify_provider["Fortify setup"]
  node_create_user["Create user action<br/>[CreateNewUser.php]"]
  node_update_profile["Profile update action"]
  node_user_model["User model<br/>[User.php]"]
  node_user_resource["User resource<br/>[UserResource.php]"]
end

node_visitor(("Visitor"))
node_http_request(("HTTP request"))
node_database[("Configured database")]

node_visitor -->|"opens"| node_home
node_visitor -->|"opens"| node_login_page
node_visitor -->|"opens"| node_register_page
node_home -->|"renders"| node_header
node_login_page -->|"renders"| node_login_form
node_register_page -->|"renders"| node_register_form
node_login_form -->|"uses"| node_auth_ui
node_register_form -->|"uses"| node_auth_ui
node_frontend_layout -->|"renders"| node_header
node_visitor -->|"sends request"| node_entry
node_entry -->|"boots"| node_bootstrap
node_bootstrap -->|"loads"| node_api_routes
node_bootstrap -->|"loads"| node_web_routes
node_fortify_provider -->|"registers action"| node_create_user
node_fortify_provider -->|"registers action"| node_update_profile
node_create_user -->|"creates"| node_user_model
node_update_profile -->|"updates"| node_user_model
node_user_model -->|"persists"| node_database

click node_home "https://github.com/senzju-id/password-manager/blob/main/frontend/src/app/page.tsx"
click node_header "https://github.com/senzju-id/password-manager/blob/main/frontend/src/components/layout/header.tsx"
click node_login_page "https://github.com/senzju-id/password-manager/blob/main/frontend/src/app/auth/login/page.tsx"
click node_register_page "https://github.com/senzju-id/password-manager/blob/main/frontend/src/app/auth/register/page.tsx"
click node_login_form "https://github.com/senzju-id/password-manager/blob/main/frontend/src/components/auth/formLogin.tsx"
click node_register_form "https://github.com/senzju-id/password-manager/blob/main/frontend/src/components/auth/formRegister.tsx"
click node_auth_ui "https://github.com/senzju-id/password-manager/blob/main/frontend/src/components/ui/formUiAuth.tsx"
click node_http_client "https://github.com/senzju-id/password-manager/blob/main/frontend/src/lib/axios.ts"
click node_frontend_layout "https://github.com/senzju-id/password-manager/blob/main/frontend/src/app/layout.tsx"
click node_entry "https://github.com/senzju-id/password-manager/blob/main/backend/public/index.php"
click node_bootstrap "https://github.com/senzju-id/password-manager/blob/main/backend/bootstrap/app.php"
click node_api_routes "https://github.com/senzju-id/password-manager/blob/main/backend/routes/api.php"
click node_web_routes "https://github.com/senzju-id/password-manager/blob/main/backend/routes/web.php"
click node_fortify_provider "https://github.com/senzju-id/password-manager/blob/main/backend/app/Providers/FortifyServiceProvider.php"
click node_create_user "https://github.com/senzju-id/password-manager/blob/main/backend/app/Actions/Fortify/CreateNewUser.php"
click node_update_profile "https://github.com/senzju-id/password-manager/blob/main/backend/app/Actions/Fortify/UpdateUserProfileInformation.php"
click node_user_model "https://github.com/senzju-id/password-manager/blob/main/backend/app/Models/User.php"
click node_user_resource "https://github.com/senzju-id/password-manager/blob/main/backend/app/Http/Resources/UserResource.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_home,node_header,node_login_page,node_register_page,node_login_form,node_register_form,node_auth_ui,node_http_client,node_frontend_layout toneBlue
class node_entry,node_bootstrap,node_api_routes,node_web_routes,node_database toneAmber
class node_fortify_provider,node_create_user,node_update_profile,node_user_model,node_user_resource,node_http_request toneMint
class node_visitor toneIndigo
```

## Components

### Web frontend

- [Home page](https://github.com/senzju-id/password-manager/blob/main/frontend/src/app/page.tsx): `frontend/src/app/page.tsx`
- [Site header](https://github.com/senzju-id/password-manager/blob/main/frontend/src/components/layout/header.tsx): `frontend/src/components/layout/header.tsx`
- [Login page](https://github.com/senzju-id/password-manager/blob/main/frontend/src/app/auth/login/page.tsx): `frontend/src/app/auth/login/page.tsx`
- [Registration page](https://github.com/senzju-id/password-manager/blob/main/frontend/src/app/auth/register/page.tsx): `frontend/src/app/auth/register/page.tsx`
- [Login form](https://github.com/senzju-id/password-manager/blob/main/frontend/src/components/auth/formLogin.tsx): `frontend/src/components/auth/formLogin.tsx`
- [Registration form](https://github.com/senzju-id/password-manager/blob/main/frontend/src/components/auth/formRegister.tsx): `frontend/src/components/auth/formRegister.tsx`
- [Auth form UI](https://github.com/senzju-id/password-manager/blob/main/frontend/src/components/ui/formUiAuth.tsx): `frontend/src/components/ui/formUiAuth.tsx`
- [HTTP client](https://github.com/senzju-id/password-manager/blob/main/frontend/src/lib/axios.ts): `frontend/src/lib/axios.ts`
- [App layout](https://github.com/senzju-id/password-manager/blob/main/frontend/src/app/layout.tsx): `frontend/src/app/layout.tsx`

### Laravel backend

- [HTTP entry](https://github.com/senzju-id/password-manager/blob/main/backend/public/index.php): `backend/public/index.php`
- [App bootstrap](https://github.com/senzju-id/password-manager/blob/main/backend/bootstrap/app.php): `backend/bootstrap/app.php`
- [API routes](https://github.com/senzju-id/password-manager/blob/main/backend/routes/api.php): `backend/routes/api.php`
- [Web routes](https://github.com/senzju-id/password-manager/blob/main/backend/routes/web.php): `backend/routes/web.php`

### Account identity

- [Fortify setup](https://github.com/senzju-id/password-manager/blob/main/backend/app/Providers/FortifyServiceProvider.php): `backend/app/Providers/FortifyServiceProvider.php`
- [Create user action](https://github.com/senzju-id/password-manager/blob/main/backend/app/Actions/Fortify/CreateNewUser.php): `backend/app/Actions/Fortify/CreateNewUser.php`
- [Profile update action](https://github.com/senzju-id/password-manager/blob/main/backend/app/Actions/Fortify/UpdateUserProfileInformation.php): `backend/app/Actions/Fortify/UpdateUserProfileInformation.php`
- [User model](https://github.com/senzju-id/password-manager/blob/main/backend/app/Models/User.php): `backend/app/Models/User.php`
- [User resource](https://github.com/senzju-id/password-manager/blob/main/backend/app/Http/Resources/UserResource.php): `backend/app/Http/Resources/UserResource.php`

### Other components

- **Visitor**
- **HTTP request**
- **Configured database**

## Connections

- Visitor → Home page: opens
- Visitor → Login page: opens
- Visitor → Registration page: opens
- Home page → Site header: renders
- Login page → Login form: renders
- Registration page → Registration form: renders
- Login form → Auth form UI: uses
- Registration form → Auth form UI: uses
- App layout → Site header: renders
- Visitor → HTTP entry: sends request
- HTTP entry → App bootstrap: boots
- App bootstrap → API routes: loads
- App bootstrap → Web routes: loads
- Fortify setup → Create user action: registers action
- Fortify setup → Profile update action: registers action
- Create user action → User model: creates
- Profile update action → User model: updates
- User model → Configured database: persists
