# jagannathkotagiri2006/java-project architecture

> Architecture diagram of the GitHub repository jagannathkotagiri2006/java-project, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-13). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/jagannathkotagiri2006/java-project
- Repository: https://github.com/jagannathkotagiri2006/java-project

## Overview

This is a hotel management system with a command-line workflow and a servlet-based room API backed by MySQL. The CLI initializes the schema, then lets staff manage rooms, book stays, list reservations, and check guests out through the DAO. The web API separately reads and adds rooms. The excerpts show the DAO’s database operations and model construction; the HTML frontend is present but its implementation was not sampled, so its connection to the API is unverified.

Main entry points: [`src/HotelDAO.java`](https://github.com/jagannathkotagiri2006/java-project/blob/master/src/HotelDAO.java) (Hotel DAO), [`src/Main.java`](https://github.com/jagannathkotagiri2006/java-project/blob/master/src/Main.java) (CLI Workflow), [`src/DatabaseConnection.java`](https://github.com/jagannathkotagiri2006/java-project/blob/master/src/DatabaseConnection.java) (JDBC Connection), [`src/RoomServlet.java`](https://github.com/jagannathkotagiri2006/java-project/blob/master/src/RoomServlet.java) (Room API)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_entry["User Interfaces"]
  node_cli["CLI Workflow<br/>[Main.java]"]
  node_web["Room Web Page<br/>[index.html]"]
  node_api["Room API<br/>[RoomServlet.java]"]
end

subgraph group_domain["Hotel Operations"]
  node_dao["Hotel DAO<br/>[HotelDAO.java]"]
  node_room["Room Model<br/>[Room.java]"]
  node_guest["Guest Model<br/>[Guest.java]"]
  node_reservation["Reservation Model<br/>[Reservation.java]"]
end

subgraph group_persistence["Persistence"]
  node_dbconn["JDBC Connection"]
  node_mysql[("MySQL Database")]
end

node_staff(("Staff"))

node_staff -->|"uses"| node_cli
node_cli -->|"initializes schema"| node_dbconn
node_cli -->|"dispatches operations"| node_dao
node_dao -->|"opens connections"| node_dbconn
node_dbconn -->|"connects to"| node_mysql
node_dao -->|"constructs rooms"| node_room
node_dao -->|"constructs reservations"| node_reservation
node_api -->|"reads and adds rooms"| node_dao
node_web -.->|"requests rooms"| node_api

click node_cli "https://github.com/jagannathkotagiri2006/java-project/blob/master/src/Main.java"
click node_web "https://github.com/jagannathkotagiri2006/java-project/blob/master/index.html"
click node_api "https://github.com/jagannathkotagiri2006/java-project/blob/master/src/RoomServlet.java"
click node_dao "https://github.com/jagannathkotagiri2006/java-project/blob/master/src/HotelDAO.java"
click node_room "https://github.com/jagannathkotagiri2006/java-project/blob/master/src/Room.java"
click node_guest "https://github.com/jagannathkotagiri2006/java-project/blob/master/src/Guest.java"
click node_reservation "https://github.com/jagannathkotagiri2006/java-project/blob/master/src/Reservation.java"
click node_dbconn "https://github.com/jagannathkotagiri2006/java-project/blob/master/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_cli,node_web,node_api toneBlue
class node_dao,node_room,node_guest,node_reservation toneAmber
class node_dbconn,node_mysql toneMint
class node_staff toneIndigo
```

## Components

### User Interfaces

- [CLI Workflow](https://github.com/jagannathkotagiri2006/java-project/blob/master/src/Main.java): `src/Main.java`
- [Room Web Page](https://github.com/jagannathkotagiri2006/java-project/blob/master/index.html): `index.html`
- [Room API](https://github.com/jagannathkotagiri2006/java-project/blob/master/src/RoomServlet.java): `src/RoomServlet.java`

### Hotel Operations

- [Hotel DAO](https://github.com/jagannathkotagiri2006/java-project/blob/master/src/HotelDAO.java): `src/HotelDAO.java`
- [Room Model](https://github.com/jagannathkotagiri2006/java-project/blob/master/src/Room.java): `src/Room.java`
- [Guest Model](https://github.com/jagannathkotagiri2006/java-project/blob/master/src/Guest.java): `src/Guest.java`
- [Reservation Model](https://github.com/jagannathkotagiri2006/java-project/blob/master/src/Reservation.java): `src/Reservation.java`

### Persistence

- [JDBC Connection](https://github.com/jagannathkotagiri2006/java-project/blob/master/src/DatabaseConnection.java): `src/DatabaseConnection.java`
- **MySQL Database**

### Other components

- **Staff**

## Connections

- Staff → CLI Workflow: uses (evidence: `src/Main.java`)
- CLI Workflow → JDBC Connection: initializes schema (evidence: `src/Main.java`)
- CLI Workflow → Hotel DAO: dispatches operations (evidence: `src/Main.java`)
- Hotel DAO → JDBC Connection: opens connections (evidence: `src/HotelDAO.java`)
- JDBC Connection → MySQL Database: connects to (evidence: `src/DatabaseConnection.java`)
- Hotel DAO → Room Model: constructs rooms (evidence: `src/HotelDAO.java`)
- Hotel DAO → Reservation Model: constructs reservations (evidence: `src/HotelDAO.java`)
- Room API → Hotel DAO: reads and adds rooms (evidence: `src/RoomServlet.java`)
- Room Web Page → Room API: requests rooms
