# dimas05-code/bpjava architecture

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

## Overview

This is a small JavaFX login and account-registration application. Its implemented workflow launches the login screen, allows navigation to registration, checks that the entered passwords match, builds a user record, and attempts to save it to MySQL. Login authentication, password recovery, and returning from registration are currently empty or placeholder actions. The FXML files are present in the tree, but their contents were not sampled, so their controller bindings cannot be confirmed.

Main entry points: [`src/controller/RegistrasiController.java`](https://github.com/dimas05-code/bpjava/blob/membuat-inputan-register-user-kedatabase/src/controller/RegistrasiController.java) (Registration Controller), [`src/model/UserDAO.java`](https://github.com/dimas05-code/bpjava/blob/membuat-inputan-register-user-kedatabase/src/model/UserDAO.java) (User DAO), [`src/app/App.java`](https://github.com/dimas05-code/bpjava/blob/membuat-inputan-register-user-kedatabase/src/app/App.java) (Application Launcher), [`src/controller/LoginController.java`](https://github.com/dimas05-code/bpjava/blob/membuat-inputan-register-user-kedatabase/src/controller/LoginController.java) (Login Controller)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_ui["JavaFX UI"]
  node_app["Application Launcher<br/>[App.java]"]
  node_login_view["Login Screen<br/>[halamanLogin.fxml]"]
  node_login_controller["Login Controller"]
end

subgraph group_registration["Account Registration"]
  node_register_view["Registration Screen<br/>[Register.fxml]"]
  node_register_controller["Registration Controller"]
  node_user_model["User Record<br/>[User.java]"]
end

subgraph group_persistence["User Persistence"]
  node_user_dao["User DAO<br/>[UserDAO.java]"]
  node_connect_db["DB Connector<br/>[ConnectDB.java]"]
end

node_person(("User"))
node_mysql[("MySQL Database")]

node_person -->|"launches"| node_app
node_app -->|"loads"| node_login_view
node_person -->|"submits actions"| node_login_controller
node_login_controller -->|"loads"| node_register_view
node_person -->|"submits registration"| node_register_controller
node_register_controller -->|"creates"| node_user_model
node_register_controller -->|"saves user"| node_user_dao
node_user_dao -->|"requests connection"| node_connect_db
node_connect_db -->|"connects"| node_mysql
node_user_dao -->|"inserts user"| node_mysql

click node_app "https://github.com/dimas05-code/bpjava/blob/membuat-inputan-register-user-kedatabase/src/app/App.java"
click node_login_view "https://github.com/dimas05-code/bpjava/blob/membuat-inputan-register-user-kedatabase/src/views/halamanLogin.fxml"
click node_login_controller "https://github.com/dimas05-code/bpjava/blob/membuat-inputan-register-user-kedatabase/src/controller/LoginController.java"
click node_register_view "https://github.com/dimas05-code/bpjava/blob/membuat-inputan-register-user-kedatabase/src/views/Register.fxml"
click node_register_controller "https://github.com/dimas05-code/bpjava/blob/membuat-inputan-register-user-kedatabase/src/controller/RegistrasiController.java"
click node_user_model "https://github.com/dimas05-code/bpjava/blob/membuat-inputan-register-user-kedatabase/src/model/User.java"
click node_user_dao "https://github.com/dimas05-code/bpjava/blob/membuat-inputan-register-user-kedatabase/src/model/UserDAO.java"
click node_connect_db "https://github.com/dimas05-code/bpjava/blob/membuat-inputan-register-user-kedatabase/src/model/ConnectDB.java"

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_login_view,node_login_controller,node_person toneBlue
class node_register_view,node_register_controller,node_user_model,node_mysql toneAmber
class node_user_dao,node_connect_db toneMint
```

## Components

### JavaFX UI

- [Application Launcher](https://github.com/dimas05-code/bpjava/blob/membuat-inputan-register-user-kedatabase/src/app/App.java): `src/app/App.java`
- [Login Screen](https://github.com/dimas05-code/bpjava/blob/membuat-inputan-register-user-kedatabase/src/views/halamanLogin.fxml): `src/views/halamanLogin.fxml`
- [Login Controller](https://github.com/dimas05-code/bpjava/blob/membuat-inputan-register-user-kedatabase/src/controller/LoginController.java): `src/controller/LoginController.java`

### Account Registration

- [Registration Screen](https://github.com/dimas05-code/bpjava/blob/membuat-inputan-register-user-kedatabase/src/views/Register.fxml): `src/views/Register.fxml`
- [Registration Controller](https://github.com/dimas05-code/bpjava/blob/membuat-inputan-register-user-kedatabase/src/controller/RegistrasiController.java): `src/controller/RegistrasiController.java`
- [User Record](https://github.com/dimas05-code/bpjava/blob/membuat-inputan-register-user-kedatabase/src/model/User.java): `src/model/User.java`

### User Persistence

- [User DAO](https://github.com/dimas05-code/bpjava/blob/membuat-inputan-register-user-kedatabase/src/model/UserDAO.java): `src/model/UserDAO.java`
- [DB Connector](https://github.com/dimas05-code/bpjava/blob/membuat-inputan-register-user-kedatabase/src/model/ConnectDB.java): `src/model/ConnectDB.java`

### Other components

- **User**
- **MySQL Database**

## Connections

- User → Application Launcher: launches
- Application Launcher → Login Screen: loads
- User → Login Controller: submits actions
- Login Controller → Registration Screen: loads
- User → Registration Controller: submits registration
- Registration Controller → User Record: creates
- Registration Controller → User DAO: saves user
- User DAO → DB Connector: requests connection
- DB Connector → MySQL Database: connects
- User DAO → MySQL Database: inserts user
