# 666bears/absence architecture

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

- Interactive diagram: https://gitdiagram.com/666bears/absence
- Repository: https://github.com/666bears/absence

## Overview

This is a role-based student leave-management system. The documented workflow covers leave information, dean and principal approvals, leave cancellation (销假), and overdue reminders, alongside role and account administration. The README describes a Vue frontend and Spring Boot/MyBatis-Plus backend, but the tree contains no implementation files, so component paths and internal call relationships cannot be verified; the graph shows only documented capabilities and access.

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_application["Application"]
  node_vue["Vue interface"]
  node_spring["Spring Boot service"]
  node_mysql[("MySQL database")]
end

subgraph group_leave["Leave workflow"]
  node_leave_info["Leave information"]
  node_dean_review["Dean approval"]
  node_principal_review["Principal approval"]
  node_checkout["Leave cancellation"]
  node_reminders["Overdue reminders"]
end

subgraph group_administration["Administration"]
  node_profiles["Personal profiles"]
  node_role_records["Role records"]
end

node_admin(("Administrator"))
node_student(("Student"))
node_counselor(("Counselor"))
node_parent(("Parent"))
node_dean(("Dean"))
node_principal(("Principal"))

node_student -->|"uses"| node_vue
node_counselor -->|"uses"| node_vue
node_parent -->|"uses"| node_vue
node_dean -->|"uses"| node_vue
node_principal -->|"uses"| node_vue
node_admin -->|"uses"| node_vue
node_vue -.->|"frontend for"| node_spring
node_spring -.->|"uses"| node_mysql
node_student -->|"manages"| node_leave_info
node_student -->|"accesses"| node_dean_review
node_student -->|"accesses"| node_principal_review
node_student -->|"manages"| node_checkout
node_student -->|"accesses"| node_reminders
node_counselor -->|"manages"| node_leave_info
node_counselor -->|"accesses"| node_dean_review
node_counselor -->|"accesses"| node_principal_review
node_counselor -->|"manages"| node_checkout
node_counselor -->|"accesses"| node_reminders
node_parent -->|"accesses"| node_leave_info
node_parent -->|"accesses"| node_checkout
node_parent -->|"accesses"| node_reminders
node_dean -->|"accesses"| node_leave_info
node_dean -->|"manages"| node_dean_review
node_dean -->|"accesses"| node_principal_review
node_dean -->|"accesses"| node_checkout
node_principal -->|"accesses"| node_leave_info
node_principal -->|"accesses"| node_dean_review
node_principal -->|"manages"| node_principal_review
node_principal -->|"accesses"| node_checkout
node_admin -->|"manages"| node_role_records
node_admin -->|"manages"| node_leave_info
node_admin -->|"manages"| node_dean_review
node_admin -->|"manages"| node_principal_review
node_admin -->|"manages"| node_checkout
node_admin -->|"manages"| node_reminders
node_student -->|"manages"| node_profiles
node_counselor -->|"manages"| node_profiles
node_parent -->|"manages"| node_profiles
node_dean -->|"manages"| node_profiles
node_principal -->|"manages"| node_profiles
node_admin -->|"manages"| node_profiles

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_vue,node_spring,node_mysql toneBlue
class node_leave_info,node_dean_review,node_principal_review,node_checkout,node_reminders toneAmber
class node_profiles,node_role_records toneMint
class node_admin,node_student,node_counselor,node_parent,node_dean,node_principal toneIndigo
```

## Components

### Application

- **Vue interface**
- **Spring Boot service**
- **MySQL database**

### Leave workflow

- **Leave information**
- **Dean approval**
- **Principal approval**
- **Leave cancellation**
- **Overdue reminders**

### Administration

- **Personal profiles**
- **Role records**

### Other components

- **Administrator**
- **Student**
- **Counselor**
- **Parent**
- **Dean**
- **Principal**

## Connections

- Student → Vue interface: uses (evidence: `README.md`)
- Counselor → Vue interface: uses (evidence: `README.md`)
- Parent → Vue interface: uses (evidence: `README.md`)
- Dean → Vue interface: uses (evidence: `README.md`)
- Principal → Vue interface: uses (evidence: `README.md`)
- Administrator → Vue interface: uses (evidence: `README.md`)
- Vue interface → Spring Boot service: frontend for (evidence: `README.md`)
- Spring Boot service → MySQL database: uses (evidence: `README.md`)
- Student → Leave information: manages (evidence: `README.md`)
- Student → Dean approval: accesses (evidence: `README.md`)
- Student → Principal approval: accesses (evidence: `README.md`)
- Student → Leave cancellation: manages (evidence: `README.md`)
- Student → Overdue reminders: accesses (evidence: `README.md`)
- Counselor → Leave information: manages (evidence: `README.md`)
- Counselor → Dean approval: accesses (evidence: `README.md`)
- Counselor → Principal approval: accesses (evidence: `README.md`)
- Counselor → Leave cancellation: manages (evidence: `README.md`)
- Counselor → Overdue reminders: accesses (evidence: `README.md`)
- Parent → Leave information: accesses (evidence: `README.md`)
- Parent → Leave cancellation: accesses (evidence: `README.md`)
- Parent → Overdue reminders: accesses (evidence: `README.md`)
- Dean → Leave information: accesses (evidence: `README.md`)
- Dean → Dean approval: manages (evidence: `README.md`)
- Dean → Principal approval: accesses (evidence: `README.md`)
- Dean → Leave cancellation: accesses (evidence: `README.md`)
- Principal → Leave information: accesses (evidence: `README.md`)
- Principal → Dean approval: accesses (evidence: `README.md`)
- Principal → Principal approval: manages (evidence: `README.md`)
- Principal → Leave cancellation: accesses (evidence: `README.md`)
- Administrator → Role records: manages (evidence: `README.md`)
- Administrator → Leave information: manages (evidence: `README.md`)
- Administrator → Dean approval: manages (evidence: `README.md`)
- Administrator → Principal approval: manages (evidence: `README.md`)
- Administrator → Leave cancellation: manages (evidence: `README.md`)
- Administrator → Overdue reminders: manages (evidence: `README.md`)
- Student → Personal profiles: manages (evidence: `README.md`)
- Counselor → Personal profiles: manages (evidence: `README.md`)
- Parent → Personal profiles: manages (evidence: `README.md`)
- Dean → Personal profiles: manages (evidence: `README.md`)
- Principal → Personal profiles: manages (evidence: `README.md`)
- Administrator → Personal profiles: manages (evidence: `README.md`)
