# jaidmulla33-tech/universitymanagement architecture

> Architecture diagram of the GitHub repository jaidmulla33-tech/universitymanagement, 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/jaidmulla33-tech/universitymanagement
- Repository: https://github.com/jaidmulla33-tech/universitymanagement

## Overview

This is a console-based university records manager. The user selects an entity and CRUD operation in the console; the application uses entity-specific DAOs to persist records in MySQL. The README documents the menu, five entity types, DAO separation, JDBC/MySQL storage, and database setup. No source excerpts were provided, so the graph reflects documented architecture only; specific method-level calls and data mappings are not inferred.

Main entry points: [`src/main/java/org/example/Main.java`](https://github.com/jaidmulla33-tech/universitymanagement/blob/main/src/main/java/org/example/Main.java) (Console menu), [`src/main/java/org/example/dao/DepartmentDAO.java`](https://github.com/jaidmulla33-tech/universitymanagement/blob/main/src/main/java/org/example/dao/DepartmentDAO.java) (Department DAO), [`src/main/java/org/example/dao/ProfessorDAO.java`](https://github.com/jaidmulla33-tech/universitymanagement/blob/main/src/main/java/org/example/dao/ProfessorDAO.java) (Professor DAO), [`src/main/java/org/example/dao/CourseDAO.java`](https://github.com/jaidmulla33-tech/universitymanagement/blob/main/src/main/java/org/example/dao/CourseDAO.java) (Course DAO)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_console["Console interface"]
  node_main["Console menu<br/>[Main.java]"]
end

subgraph group_domain["University entities"]
  node_department["Department<br/>[Department.java]"]
  node_professor["Professor<br/>[Professor.java]"]
  node_course["Course<br/>[Course.java]"]
  node_student["Student<br/>[Student.java]"]
  node_classroom["Classroom<br/>[Classroom.java]"]
end

subgraph group_persistence["Persistence"]
  node_department_dao["Department DAO<br/>[DepartmentDAO.java]"]
  node_professor_dao["Professor DAO<br/>[ProfessorDAO.java]"]
  node_course_dao["Course DAO<br/>[CourseDAO.java]"]
  node_student_dao["Student DAO<br/>[StudentDAO.java]"]
  node_classroom_dao["Classroom DAO<br/>[ClassroomDAO.java]"]
  node_db_setup["Database setup<br/>[CreateDB.java]"]
  node_jdbc["JDBC"]
  node_mysql[("MySQL database")]
end

node_user(("User"))

node_user -->|"selects options"| node_main
node_main -->|"dispatches CRUD"| node_department_dao
node_main -->|"dispatches CRUD"| node_professor_dao
node_main -->|"dispatches CRUD"| node_course_dao
node_main -->|"dispatches CRUD"| node_student_dao
node_main -->|"dispatches CRUD"| node_classroom_dao
node_department -->|"supports records"| node_department_dao
node_professor -->|"supports records"| node_professor_dao
node_course -->|"supports records"| node_course_dao
node_student -->|"supports records"| node_student_dao
node_classroom -->|"supports records"| node_classroom_dao
node_department_dao -->|"uses"| node_jdbc
node_professor_dao -->|"uses"| node_jdbc
node_course_dao -->|"uses"| node_jdbc
node_student_dao -->|"uses"| node_jdbc
node_classroom_dao -->|"uses"| node_jdbc
node_db_setup -->|"connects through"| node_jdbc
node_jdbc -->|"reads and writes"| node_mysql
node_db_setup -->|"sets up schema"| node_mysql

click node_main "https://github.com/jaidmulla33-tech/universitymanagement/blob/main/src/main/java/org/example/Main.java"
click node_department "https://github.com/jaidmulla33-tech/universitymanagement/blob/main/src/main/java/org/example/model/Department.java"
click node_professor "https://github.com/jaidmulla33-tech/universitymanagement/blob/main/src/main/java/org/example/model/Professor.java"
click node_course "https://github.com/jaidmulla33-tech/universitymanagement/blob/main/src/main/java/org/example/model/Course.java"
click node_student "https://github.com/jaidmulla33-tech/universitymanagement/blob/main/src/main/java/org/example/model/Student.java"
click node_classroom "https://github.com/jaidmulla33-tech/universitymanagement/blob/main/src/main/java/org/example/model/Classroom.java"
click node_department_dao "https://github.com/jaidmulla33-tech/universitymanagement/blob/main/src/main/java/org/example/dao/DepartmentDAO.java"
click node_professor_dao "https://github.com/jaidmulla33-tech/universitymanagement/blob/main/src/main/java/org/example/dao/ProfessorDAO.java"
click node_course_dao "https://github.com/jaidmulla33-tech/universitymanagement/blob/main/src/main/java/org/example/dao/CourseDAO.java"
click node_student_dao "https://github.com/jaidmulla33-tech/universitymanagement/blob/main/src/main/java/org/example/dao/StudentDAO.java"
click node_classroom_dao "https://github.com/jaidmulla33-tech/universitymanagement/blob/main/src/main/java/org/example/dao/ClassroomDAO.java"
click node_db_setup "https://github.com/jaidmulla33-tech/universitymanagement/blob/main/src/main/java/org/example/db/CreateDB.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_main,node_user toneBlue
class node_department,node_professor,node_course,node_student,node_classroom toneAmber
class node_department_dao,node_professor_dao,node_course_dao,node_student_dao,node_classroom_dao,node_db_setup,node_jdbc,node_mysql toneMint
```

## Components

### Console interface

- [Console menu](https://github.com/jaidmulla33-tech/universitymanagement/blob/main/src/main/java/org/example/Main.java): `src/main/java/org/example/Main.java`

### University entities

- [Department](https://github.com/jaidmulla33-tech/universitymanagement/blob/main/src/main/java/org/example/model/Department.java): `src/main/java/org/example/model/Department.java`
- [Professor](https://github.com/jaidmulla33-tech/universitymanagement/blob/main/src/main/java/org/example/model/Professor.java): `src/main/java/org/example/model/Professor.java`
- [Course](https://github.com/jaidmulla33-tech/universitymanagement/blob/main/src/main/java/org/example/model/Course.java): `src/main/java/org/example/model/Course.java`
- [Student](https://github.com/jaidmulla33-tech/universitymanagement/blob/main/src/main/java/org/example/model/Student.java): `src/main/java/org/example/model/Student.java`
- [Classroom](https://github.com/jaidmulla33-tech/universitymanagement/blob/main/src/main/java/org/example/model/Classroom.java): `src/main/java/org/example/model/Classroom.java`

### Persistence

- [Department DAO](https://github.com/jaidmulla33-tech/universitymanagement/blob/main/src/main/java/org/example/dao/DepartmentDAO.java): `src/main/java/org/example/dao/DepartmentDAO.java`
- [Professor DAO](https://github.com/jaidmulla33-tech/universitymanagement/blob/main/src/main/java/org/example/dao/ProfessorDAO.java): `src/main/java/org/example/dao/ProfessorDAO.java`
- [Course DAO](https://github.com/jaidmulla33-tech/universitymanagement/blob/main/src/main/java/org/example/dao/CourseDAO.java): `src/main/java/org/example/dao/CourseDAO.java`
- [Student DAO](https://github.com/jaidmulla33-tech/universitymanagement/blob/main/src/main/java/org/example/dao/StudentDAO.java): `src/main/java/org/example/dao/StudentDAO.java`
- [Classroom DAO](https://github.com/jaidmulla33-tech/universitymanagement/blob/main/src/main/java/org/example/dao/ClassroomDAO.java): `src/main/java/org/example/dao/ClassroomDAO.java`
- [Database setup](https://github.com/jaidmulla33-tech/universitymanagement/blob/main/src/main/java/org/example/db/CreateDB.java): `src/main/java/org/example/db/CreateDB.java`
- **JDBC**
- **MySQL database**

### Other components

- **User**

## Connections

- User → Console menu: selects options
- Console menu → Department DAO: dispatches CRUD
- Console menu → Professor DAO: dispatches CRUD
- Console menu → Course DAO: dispatches CRUD
- Console menu → Student DAO: dispatches CRUD
- Console menu → Classroom DAO: dispatches CRUD
- Department → Department DAO: supports records
- Professor → Professor DAO: supports records
- Course → Course DAO: supports records
- Student → Student DAO: supports records
- Classroom → Classroom DAO: supports records
- Department DAO → JDBC: uses
- Professor DAO → JDBC: uses
- Course DAO → JDBC: uses
- Student DAO → JDBC: uses
- Classroom DAO → JDBC: uses
- Database setup → JDBC: connects through
- JDBC → MySQL database: reads and writes
- Database setup → MySQL database: sets up schema
