# syedsuhaibhasan/hina-bungalows-community-portal architecture

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

- Interactive diagram: https://gitdiagram.com/syedsuhaibhasan/hina-bungalows-community-portal
- Repository: https://github.com/syedsuhaibhasan/hina-bungalows-community-portal

## Overview

H.B.C.P is a Java Swing community-management desktop app. Residents and administrators enter through the login screen, then use separate dashboards and feature screens to manage or review payments, bills, expenses, complaints, and announcements. The sampled screens show JDBC access through ConnectionProvider for dashboard data, payment records, bill upload, and maintenance breakdowns; other feature-to-database links reflect the README’s documented capabilities, not inspected implementations. The database schema and role-based BCrypt login are documented, but their complete runtime wiring was not sampled.

Main entry points: [`src/dao/ConnectionProvider.java`](https://github.com/syedsuhaibhasan/hina-bungalows-community-portal/blob/main/src/dao/ConnectionProvider.java) (JDBC Connection), [`src/form/adminView/admindashboard.java`](https://github.com/syedsuhaibhasan/hina-bungalows-community-portal/blob/main/src/form/adminView/admindashboard.java) (Admin Dashboard), [`src/form/userView/userdashboard.java`](https://github.com/syedsuhaibhasan/hina-bungalows-community-portal/blob/main/src/form/userView/userdashboard.java) (Resident Dashboard), [`src/form/adminView/login.java`](https://github.com/syedsuhaibhasan/hina-bungalows-community-portal/blob/main/src/form/adminView/login.java) (Role Login)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_entry["Application Entry"]
  node_portal["Portal Launcher"]
  node_login["Role Login<br/>[login.java]"]
end

subgraph group_admin["Administration"]
  node_admin_dash["Admin Dashboard"]
  node_registration["Resident Registration"]
  node_admin_payments["Payment Management"]
  node_bill_upload["KE Bill Upload<br/>[KEBillUpload.java]"]
  node_breakdown["Expense Breakdown"]
  node_complaint_mgmt["Complaint Management<br/>[viewComplain.java]"]
  node_notifications["Community Notices"]
end

subgraph group_resident["Resident Services"]
  node_resident_dash["Resident Dashboard<br/>[userdashboard.java]"]
  node_resident_payments["Payment History"]
  node_expenses_view["Monthly Expenses"]
  node_bills_view["Utility Bills<br/>[viewKEBill.java]"]
  node_complaint_submit["Submit Complaint<br/>[complain.java]"]
end

subgraph group_data["Data Access"]
  node_connection["JDBC Connection"]
  node_tables["Table Initializer<br/>[Tables.java]"]
  node_schema["Database Schema<br/>[HBCP.sql]"]
  node_mysql[("Community Portal DB")]
  node_bcrypt["BCrypt Hashing<br/>[BCrypt.java]"]
end

node_admin_actor(("Administrator"))
node_resident_actor(("Resident"))

node_portal -->|"opens"| node_login
node_admin_actor -->|"signs in"| node_login
node_resident_actor -->|"signs in"| node_login
node_login -->|"admin role"| node_admin_dash
node_login -->|"resident role"| node_resident_dash
node_login -.->|"verifies passwords"| node_bcrypt
node_admin_dash -->|"opens"| node_registration
node_admin_dash -->|"opens"| node_admin_payments
node_admin_dash -->|"opens"| node_bill_upload
node_admin_dash -->|"opens"| node_breakdown
node_admin_dash -->|"opens"| node_complaint_mgmt
node_admin_dash -->|"opens"| node_notifications
node_resident_dash -->|"opens"| node_resident_payments
node_resident_dash -->|"opens"| node_expenses_view
node_resident_dash -->|"opens"| node_bills_view
node_resident_dash -->|"opens"| node_complaint_submit
node_resident_dash -->|"requests data"| node_connection
node_admin_payments -->|"queries records"| node_connection
node_bill_upload -->|"stores bill"| node_connection
node_breakdown -->|"reads and saves"| node_connection
node_registration -.->|"stores resident"| node_connection
node_complaint_mgmt -.->|"manages complaints"| node_connection
node_notifications -.->|"posts notices"| node_connection
node_resident_payments -.->|"reads history"| node_connection
node_expenses_view -.->|"reads expenses"| node_connection
node_bills_view -.->|"reads bills"| node_connection
node_complaint_submit -.->|"submits complaint"| node_connection
node_connection -->|"connects"| node_mysql
node_tables -->|"obtains connection"| node_connection
node_tables -->|"creates tables"| node_mysql
node_schema -->|"defines schema"| node_mysql

click node_portal "https://github.com/syedsuhaibhasan/hina-bungalows-community-portal/blob/main/src/hinabungalowsportal/HinaBungalowsPortal.java"
click node_login "https://github.com/syedsuhaibhasan/hina-bungalows-community-portal/blob/main/src/form/adminView/login.java"
click node_admin_dash "https://github.com/syedsuhaibhasan/hina-bungalows-community-portal/blob/main/src/form/adminView/admindashboard.java"
click node_registration "https://github.com/syedsuhaibhasan/hina-bungalows-community-portal/blob/main/src/form/adminView/registrationPage.java"
click node_admin_payments "https://github.com/syedsuhaibhasan/hina-bungalows-community-portal/blob/main/src/form/adminView/payementRecords.java"
click node_bill_upload "https://github.com/syedsuhaibhasan/hina-bungalows-community-portal/blob/main/src/form/adminView/KEBillUpload.java"
click node_breakdown "https://github.com/syedsuhaibhasan/hina-bungalows-community-portal/blob/main/src/form/adminView/maintenanceBreakdown.java"
click node_complaint_mgmt "https://github.com/syedsuhaibhasan/hina-bungalows-community-portal/blob/main/src/form/adminView/viewComplain.java"
click node_notifications "https://github.com/syedsuhaibhasan/hina-bungalows-community-portal/blob/main/src/form/adminView/addNotification.java"
click node_resident_dash "https://github.com/syedsuhaibhasan/hina-bungalows-community-portal/blob/main/src/form/userView/userdashboard.java"
click node_resident_payments "https://github.com/syedsuhaibhasan/hina-bungalows-community-portal/blob/main/src/form/userView/viewpayementRecords.java"
click node_expenses_view "https://github.com/syedsuhaibhasan/hina-bungalows-community-portal/blob/main/src/form/userView/viewMonthlyExpense.java"
click node_bills_view "https://github.com/syedsuhaibhasan/hina-bungalows-community-portal/blob/main/src/form/userView/viewKEBill.java"
click node_complaint_submit "https://github.com/syedsuhaibhasan/hina-bungalows-community-portal/blob/main/src/form/userView/complain.java"
click node_connection "https://github.com/syedsuhaibhasan/hina-bungalows-community-portal/blob/main/src/dao/ConnectionProvider.java"
click node_tables "https://github.com/syedsuhaibhasan/hina-bungalows-community-portal/blob/main/src/dao/Tables.java"
click node_schema "https://github.com/syedsuhaibhasan/hina-bungalows-community-portal/blob/main/HBCP.sql"
click node_bcrypt "https://github.com/syedsuhaibhasan/hina-bungalows-community-portal/blob/main/src/org/mindrot/jbcrypt/BCrypt.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_portal,node_login toneBlue
class node_admin_dash,node_registration,node_admin_payments,node_bill_upload,node_breakdown,node_complaint_mgmt,node_notifications toneAmber
class node_resident_dash,node_resident_payments,node_expenses_view,node_bills_view,node_complaint_submit toneMint
class node_connection,node_tables,node_schema,node_mysql,node_bcrypt toneRose
class node_admin_actor,node_resident_actor toneIndigo
```

## Components

### Application Entry

- [Portal Launcher](https://github.com/syedsuhaibhasan/hina-bungalows-community-portal/blob/main/src/hinabungalowsportal/HinaBungalowsPortal.java): `src/hinabungalowsportal/HinaBungalowsPortal.java`
- [Role Login](https://github.com/syedsuhaibhasan/hina-bungalows-community-portal/blob/main/src/form/adminView/login.java): `src/form/adminView/login.java`

### Administration

- [Admin Dashboard](https://github.com/syedsuhaibhasan/hina-bungalows-community-portal/blob/main/src/form/adminView/admindashboard.java): `src/form/adminView/admindashboard.java`
- [Resident Registration](https://github.com/syedsuhaibhasan/hina-bungalows-community-portal/blob/main/src/form/adminView/registrationPage.java): `src/form/adminView/registrationPage.java`
- [Payment Management](https://github.com/syedsuhaibhasan/hina-bungalows-community-portal/blob/main/src/form/adminView/payementRecords.java): `src/form/adminView/payementRecords.java`
- [KE Bill Upload](https://github.com/syedsuhaibhasan/hina-bungalows-community-portal/blob/main/src/form/adminView/KEBillUpload.java): `src/form/adminView/KEBillUpload.java`
- [Expense Breakdown](https://github.com/syedsuhaibhasan/hina-bungalows-community-portal/blob/main/src/form/adminView/maintenanceBreakdown.java): `src/form/adminView/maintenanceBreakdown.java`
- [Complaint Management](https://github.com/syedsuhaibhasan/hina-bungalows-community-portal/blob/main/src/form/adminView/viewComplain.java): `src/form/adminView/viewComplain.java`
- [Community Notices](https://github.com/syedsuhaibhasan/hina-bungalows-community-portal/blob/main/src/form/adminView/addNotification.java): `src/form/adminView/addNotification.java`

### Resident Services

- [Resident Dashboard](https://github.com/syedsuhaibhasan/hina-bungalows-community-portal/blob/main/src/form/userView/userdashboard.java): `src/form/userView/userdashboard.java`
- [Payment History](https://github.com/syedsuhaibhasan/hina-bungalows-community-portal/blob/main/src/form/userView/viewpayementRecords.java): `src/form/userView/viewpayementRecords.java`
- [Monthly Expenses](https://github.com/syedsuhaibhasan/hina-bungalows-community-portal/blob/main/src/form/userView/viewMonthlyExpense.java): `src/form/userView/viewMonthlyExpense.java`
- [Utility Bills](https://github.com/syedsuhaibhasan/hina-bungalows-community-portal/blob/main/src/form/userView/viewKEBill.java): `src/form/userView/viewKEBill.java`
- [Submit Complaint](https://github.com/syedsuhaibhasan/hina-bungalows-community-portal/blob/main/src/form/userView/complain.java): `src/form/userView/complain.java`

### Data Access

- [JDBC Connection](https://github.com/syedsuhaibhasan/hina-bungalows-community-portal/blob/main/src/dao/ConnectionProvider.java): `src/dao/ConnectionProvider.java`
- [Table Initializer](https://github.com/syedsuhaibhasan/hina-bungalows-community-portal/blob/main/src/dao/Tables.java): `src/dao/Tables.java`
- [Database Schema](https://github.com/syedsuhaibhasan/hina-bungalows-community-portal/blob/main/HBCP.sql): `HBCP.sql`
- **Community Portal DB**
- [BCrypt Hashing](https://github.com/syedsuhaibhasan/hina-bungalows-community-portal/blob/main/src/org/mindrot/jbcrypt/BCrypt.java): `src/org/mindrot/jbcrypt/BCrypt.java`

### Other components

- **Administrator**
- **Resident**

## Connections

- Portal Launcher → Role Login: opens
- Administrator → Role Login: signs in
- Resident → Role Login: signs in
- Role Login → Admin Dashboard: admin role
- Role Login → Resident Dashboard: resident role
- Role Login → BCrypt Hashing: verifies passwords
- Admin Dashboard → Resident Registration: opens
- Admin Dashboard → Payment Management: opens
- Admin Dashboard → KE Bill Upload: opens
- Admin Dashboard → Expense Breakdown: opens
- Admin Dashboard → Complaint Management: opens
- Admin Dashboard → Community Notices: opens
- Resident Dashboard → Payment History: opens
- Resident Dashboard → Monthly Expenses: opens
- Resident Dashboard → Utility Bills: opens
- Resident Dashboard → Submit Complaint: opens
- Resident Dashboard → JDBC Connection: requests data
- Payment Management → JDBC Connection: queries records
- KE Bill Upload → JDBC Connection: stores bill
- Expense Breakdown → JDBC Connection: reads and saves
- Resident Registration → JDBC Connection: stores resident
- Complaint Management → JDBC Connection: manages complaints
- Community Notices → JDBC Connection: posts notices
- Payment History → JDBC Connection: reads history
- Monthly Expenses → JDBC Connection: reads expenses
- Utility Bills → JDBC Connection: reads bills
- Submit Complaint → JDBC Connection: submits complaint
- JDBC Connection → Community Portal DB: connects
- Table Initializer → JDBC Connection: obtains connection
- Table Initializer → Community Portal DB: creates tables
- Database Schema → Community Portal DB: defines schema
