# syed-md-abdud-dayan/ai-museum architecture

> Architecture diagram of the GitHub repository syed-md-abdud-dayan/ai-museum, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-25). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/syed-md-abdud-dayan/ai-museum
- Repository: https://github.com/syed-md-abdud-dayan/ai-museum

## Overview

The tree contains two overlapping Java Swing museum-management applications rather than one clearly unified product. The sampled code supports specimen and visitor entry/listing, a DAO-backed version with section management, and a separate admin-oriented GUI with login and specimen-detail screens. DAO calls and JDBC connection use are visible; unsampled screens are included only as documented by their filenames, without inferred wiring. The README is empty, so the graph reflects the available tree and sampled source.

Main entry points: [`Ai Museum/src/DatabaseConnection.java`](https://github.com/syed-md-abdud-dayan/ai-museum/blob/main/Ai%20Museum/src/DatabaseConnection.java) (JDBC connection), [`Ai Museum/src/AdminMenuGUI.java`](https://github.com/syed-md-abdud-dayan/ai-museum/blob/main/Ai%20Museum/src/AdminMenuGUI.java) (Admin menu), [`Museum Managemnet/src/DatabaseConnection.java`](https://github.com/syed-md-abdud-dayan/ai-museum/blob/main/Museum%20Managemnet/src/DatabaseConnection.java) (JDBC connection), [`Museum Managemnet/src/SpecimenPanel.java`](https://github.com/syed-md-abdud-dayan/ai-museum/blob/main/Museum%20Managemnet/src/SpecimenPanel.java) (Specimen panel)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_interfaces["Swing Interfaces"]
  node_legacy_admin["Admin screens"]
  node_admin_login["Admin login<br/>[AdminLoginGUI.java]"]
  node_admin_menu["Admin menu<br/>[AdminMenuGUI.java]"]
  node_ai_specimen["Specimen manager"]
  node_ai_details["Specimen details"]
  node_ai_visitor["Visitor manager"]
  node_main_app["Museum application<br/>[MainApp.java]"]
  node_museum_app["Museum application<br/>[MuseumApp.java]"]
  node_login_frame["Login screen<br/>[LoginFrame.java]"]
  node_specimen_panel["Specimen panel<br/>[SpecimenPanel.java]"]
  node_visitor_panel["Visitor panel<br/>[VisitorPanel.java]"]
  node_section_panel["Section panel<br/>[SectionPanel.java]"]
end

subgraph group_data["DAO Data Access"]
  node_specimen_dao["Specimen DAO<br/>[SpecimenDAO.java]"]
  node_visitor_dao["Visitor DAO<br/>[VisitorDAO.java]"]
  node_section_dao["Section DAO<br/>[SectionDAO.java]"]
end

subgraph group_domain["Museum Domain"]
  node_specimen_model["Specimen model<br/>[Specimen.java]"]
  node_visitor_model["Visitor model<br/>[Visitor.java]"]
  node_section_model["Section model<br/>[Section.java]"]
end

subgraph group_persistence["JDBC Persistence"]
  node_ai_db["JDBC connection"]
  node_museum_db["JDBC connection"]
end

node_operator(("Museum operator"))
node_mysql[("Museum MySQL")]

node_operator -->|"opens"| node_main_app
node_main_app -->|"authenticates via"| node_ai_db
node_operator -->|"signs in"| node_admin_login
node_admin_login -->|"checks username"| node_ai_db
node_operator -->|"uses"| node_admin_menu
node_admin_menu -->|"opens"| node_ai_visitor
node_admin_menu -->|"opens"| node_ai_specimen
node_admin_menu -->|"opens"| node_ai_details
node_ai_specimen -->|"reads and writes"| node_ai_db
node_ai_visitor -->|"reads and writes"| node_ai_db
node_operator -->|"uses"| node_specimen_panel
node_specimen_panel -->|"requests records"| node_specimen_dao
node_specimen_panel -->|"creates"| node_specimen_model
node_operator -->|"uses"| node_visitor_panel
node_visitor_panel -->|"requests records"| node_visitor_dao
node_visitor_panel -->|"creates"| node_visitor_model
node_operator -->|"uses"| node_section_panel
node_section_panel -->|"requests records"| node_section_dao
node_section_panel -->|"creates"| node_section_model
node_specimen_dao -->|"gets connection"| node_museum_db
node_visitor_dao -->|"gets connection"| node_museum_db
node_section_dao -->|"gets connection"| node_museum_db
node_museum_db -->|"connects to"| node_mysql
node_ai_db -->|"connects to"| node_mysql
node_museum_app -.-> node_login_frame

click node_legacy_admin "https://github.com/syed-md-abdud-dayan/ai-museum/blob/main/Ai%20Museum/src/AdminDashboard.java"
click node_admin_login "https://github.com/syed-md-abdud-dayan/ai-museum/blob/main/Ai%20Museum/src/AdminLoginGUI.java"
click node_admin_menu "https://github.com/syed-md-abdud-dayan/ai-museum/blob/main/Ai%20Museum/src/AdminMenuGUI.java"
click node_ai_specimen "https://github.com/syed-md-abdud-dayan/ai-museum/blob/main/Ai%20Museum/src/SpecimenManagementGUI.java"
click node_ai_details "https://github.com/syed-md-abdud-dayan/ai-museum/blob/main/Ai%20Museum/src/ViewSpecimenDetailsGUI.java"
click node_ai_visitor "https://github.com/syed-md-abdud-dayan/ai-museum/blob/main/Ai%20Museum/src/VisitorManagementGUI.java"
click node_main_app "https://github.com/syed-md-abdud-dayan/ai-museum/blob/main/Ai%20Museum/src/MainApp.java"
click node_museum_app "https://github.com/syed-md-abdud-dayan/ai-museum/blob/main/Museum%20Managemnet/src/MuseumApp.java"
click node_login_frame "https://github.com/syed-md-abdud-dayan/ai-museum/blob/main/Museum%20Managemnet/src/LoginFrame.java"
click node_specimen_panel "https://github.com/syed-md-abdud-dayan/ai-museum/blob/main/Museum%20Managemnet/src/SpecimenPanel.java"
click node_visitor_panel "https://github.com/syed-md-abdud-dayan/ai-museum/blob/main/Museum%20Managemnet/src/VisitorPanel.java"
click node_section_panel "https://github.com/syed-md-abdud-dayan/ai-museum/blob/main/Museum%20Managemnet/src/SectionPanel.java"
click node_specimen_dao "https://github.com/syed-md-abdud-dayan/ai-museum/blob/main/Museum%20Managemnet/src/SpecimenDAO.java"
click node_visitor_dao "https://github.com/syed-md-abdud-dayan/ai-museum/blob/main/Museum%20Managemnet/src/VisitorDAO.java"
click node_section_dao "https://github.com/syed-md-abdud-dayan/ai-museum/blob/main/Museum%20Managemnet/src/SectionDAO.java"
click node_specimen_model "https://github.com/syed-md-abdud-dayan/ai-museum/blob/main/Museum%20Managemnet/src/Specimen.java"
click node_visitor_model "https://github.com/syed-md-abdud-dayan/ai-museum/blob/main/Museum%20Managemnet/src/Visitor.java"
click node_section_model "https://github.com/syed-md-abdud-dayan/ai-museum/blob/main/Museum%20Managemnet/src/Section.java"
click node_ai_db "https://github.com/syed-md-abdud-dayan/ai-museum/blob/main/Ai%20Museum/src/DatabaseConnection.java"
click node_museum_db "https://github.com/syed-md-abdud-dayan/ai-museum/blob/main/Museum%20Managemnet/src/DatabaseConnection.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_legacy_admin,node_admin_login,node_admin_menu,node_ai_specimen,node_ai_details,node_ai_visitor,node_main_app,node_museum_app,node_login_frame,node_specimen_panel,node_visitor_panel,node_section_panel toneBlue
class node_specimen_dao,node_visitor_dao,node_section_dao,node_mysql toneAmber
class node_specimen_model,node_visitor_model,node_section_model toneMint
class node_ai_db,node_museum_db toneRose
class node_operator toneIndigo
```

## Components

### Swing Interfaces

- [Admin screens](https://github.com/syed-md-abdud-dayan/ai-museum/blob/main/Ai%20Museum/src/AdminDashboard.java): `Ai Museum/src/AdminDashboard.java`
- [Admin login](https://github.com/syed-md-abdud-dayan/ai-museum/blob/main/Ai%20Museum/src/AdminLoginGUI.java): `Ai Museum/src/AdminLoginGUI.java`
- [Admin menu](https://github.com/syed-md-abdud-dayan/ai-museum/blob/main/Ai%20Museum/src/AdminMenuGUI.java): `Ai Museum/src/AdminMenuGUI.java`
- [Specimen manager](https://github.com/syed-md-abdud-dayan/ai-museum/blob/main/Ai%20Museum/src/SpecimenManagementGUI.java): `Ai Museum/src/SpecimenManagementGUI.java`
- [Specimen details](https://github.com/syed-md-abdud-dayan/ai-museum/blob/main/Ai%20Museum/src/ViewSpecimenDetailsGUI.java): `Ai Museum/src/ViewSpecimenDetailsGUI.java`
- [Visitor manager](https://github.com/syed-md-abdud-dayan/ai-museum/blob/main/Ai%20Museum/src/VisitorManagementGUI.java): `Ai Museum/src/VisitorManagementGUI.java`
- [Museum application](https://github.com/syed-md-abdud-dayan/ai-museum/blob/main/Ai%20Museum/src/MainApp.java): `Ai Museum/src/MainApp.java`
- [Museum application](https://github.com/syed-md-abdud-dayan/ai-museum/blob/main/Museum%20Managemnet/src/MuseumApp.java): `Museum Managemnet/src/MuseumApp.java`
- [Login screen](https://github.com/syed-md-abdud-dayan/ai-museum/blob/main/Museum%20Managemnet/src/LoginFrame.java): `Museum Managemnet/src/LoginFrame.java`
- [Specimen panel](https://github.com/syed-md-abdud-dayan/ai-museum/blob/main/Museum%20Managemnet/src/SpecimenPanel.java): `Museum Managemnet/src/SpecimenPanel.java`
- [Visitor panel](https://github.com/syed-md-abdud-dayan/ai-museum/blob/main/Museum%20Managemnet/src/VisitorPanel.java): `Museum Managemnet/src/VisitorPanel.java`
- [Section panel](https://github.com/syed-md-abdud-dayan/ai-museum/blob/main/Museum%20Managemnet/src/SectionPanel.java): `Museum Managemnet/src/SectionPanel.java`

### DAO Data Access

- [Specimen DAO](https://github.com/syed-md-abdud-dayan/ai-museum/blob/main/Museum%20Managemnet/src/SpecimenDAO.java): `Museum Managemnet/src/SpecimenDAO.java`
- [Visitor DAO](https://github.com/syed-md-abdud-dayan/ai-museum/blob/main/Museum%20Managemnet/src/VisitorDAO.java): `Museum Managemnet/src/VisitorDAO.java`
- [Section DAO](https://github.com/syed-md-abdud-dayan/ai-museum/blob/main/Museum%20Managemnet/src/SectionDAO.java): `Museum Managemnet/src/SectionDAO.java`

### Museum Domain

- [Specimen model](https://github.com/syed-md-abdud-dayan/ai-museum/blob/main/Museum%20Managemnet/src/Specimen.java): `Museum Managemnet/src/Specimen.java`
- [Visitor model](https://github.com/syed-md-abdud-dayan/ai-museum/blob/main/Museum%20Managemnet/src/Visitor.java): `Museum Managemnet/src/Visitor.java`
- [Section model](https://github.com/syed-md-abdud-dayan/ai-museum/blob/main/Museum%20Managemnet/src/Section.java): `Museum Managemnet/src/Section.java`

### JDBC Persistence

- [JDBC connection](https://github.com/syed-md-abdud-dayan/ai-museum/blob/main/Ai%20Museum/src/DatabaseConnection.java): `Ai Museum/src/DatabaseConnection.java`
- [JDBC connection](https://github.com/syed-md-abdud-dayan/ai-museum/blob/main/Museum%20Managemnet/src/DatabaseConnection.java): `Museum Managemnet/src/DatabaseConnection.java`

### Other components

- **Museum operator**
- **Museum MySQL**

## Connections

- Museum operator → Museum application: opens
- Museum application → JDBC connection: authenticates via
- Museum operator → Admin login: signs in
- Admin login → JDBC connection: checks username
- Museum operator → Admin menu: uses
- Admin menu → Visitor manager: opens
- Admin menu → Specimen manager: opens
- Admin menu → Specimen details: opens
- Specimen manager → JDBC connection: reads and writes
- Visitor manager → JDBC connection: reads and writes
- Museum operator → Specimen panel: uses
- Specimen panel → Specimen DAO: requests records
- Specimen panel → Specimen model: creates
- Museum operator → Visitor panel: uses
- Visitor panel → Visitor DAO: requests records
- Visitor panel → Visitor model: creates
- Museum operator → Section panel: uses
- Section panel → Section DAO: requests records
- Section panel → Section model: creates
- Specimen DAO → JDBC connection: gets connection
- Visitor DAO → JDBC connection: gets connection
- Section DAO → JDBC connection: gets connection
- JDBC connection → Museum MySQL: connects to
- JDBC connection → Museum MySQL: connects to
- Museum application → Login screen
