# weebonweed/attendanceqrproject- architecture

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

- Interactive diagram: https://gitdiagram.com/weebonweed/attendanceqrproject-
- Repository: https://github.com/weebonweed/attendanceqrproject-

## Overview

AttendanceQrProject is a Spring-based attendance application whose stated purpose is to verify attendance through QR-code scanning. The tree also indicates authentication, session, and student features, plus repositories and JWT/Supabase security components. Source excerpts were not provided, so the graph identifies these components but omits internal call and data-flow edges that cannot be verified.

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_api["API endpoints"]
  node_attendance_controller["Attendance API"]
  node_auth_controller["Auth API"]
  node_session_controller["Session API"]
  node_student_controller["Student API"]
end

subgraph group_workflows["Attendance workflows"]
  node_attendance_service["Attendance handling"]
  node_qr_service["QR service<br/>[QRCodeService.java]"]
  node_qr_generator["QR generation"]
  node_session_service["Session handling"]
  node_student_service["Student handling"]
end

subgraph group_data["Domain and persistence"]
  node_attendance_repo["Attendance repository"]
  node_session_repo["Session repository"]
  node_student_repo["Student repository"]
  node_user_repo["User repository"]
  node_attendance_model["Attendance record<br/>[Attendance.java]"]
  node_session_model["Session<br/>[Session.java]"]
  node_student_model["Student<br/>[Student.java]"]
  node_user_model["User<br/>[User.java]"]
end

subgraph group_security["Authentication and security"]
  node_auth_service["Authentication logic<br/>[AuthService.java]"]
  node_jwt_filter["JWT filter"]
  node_jwt_util["JWT utilities<br/>[JwtUtil.java]"]
  node_security_config["Security configuration"]
  node_supabase_decoder["Supabase JWT decoder"]
end

node_user(("User / scanner"))

click node_attendance_controller "https://github.com/weebonweed/attendanceqrproject-/blob/main/attendenceQR/src/main/java/com/example/controller/AttendanceController.java"
click node_auth_controller "https://github.com/weebonweed/attendanceqrproject-/blob/main/attendenceQR/src/main/java/com/example/controller/AuthController.java"
click node_session_controller "https://github.com/weebonweed/attendanceqrproject-/blob/main/attendenceQR/src/main/java/com/example/controller/SessionController.java"
click node_student_controller "https://github.com/weebonweed/attendanceqrproject-/blob/main/attendenceQR/src/main/java/com/example/controller/StudentController.java"
click node_attendance_service "https://github.com/weebonweed/attendanceqrproject-/blob/main/attendenceQR/src/main/java/com/example/service/AttendanceService.java"
click node_qr_service "https://github.com/weebonweed/attendanceqrproject-/blob/main/attendenceQR/src/main/java/com/example/service/QRCodeService.java"
click node_qr_generator "https://github.com/weebonweed/attendanceqrproject-/blob/main/attendenceQR/src/main/java/com/example/util/QRCodeGenerator.java"
click node_session_service "https://github.com/weebonweed/attendanceqrproject-/blob/main/attendenceQR/src/main/java/com/example/service/SessionService.java"
click node_student_service "https://github.com/weebonweed/attendanceqrproject-/blob/main/attendenceQR/src/main/java/com/example/service/StudentService.java"
click node_auth_service "https://github.com/weebonweed/attendanceqrproject-/blob/main/attendenceQR/src/main/java/com/example/service/AuthService.java"
click node_jwt_filter "https://github.com/weebonweed/attendanceqrproject-/blob/main/attendenceQR/src/main/java/com/example/config/JwtAuthenticationFilter.java"
click node_jwt_util "https://github.com/weebonweed/attendanceqrproject-/blob/main/attendenceQR/src/main/java/com/example/config/JwtUtil.java"
click node_security_config "https://github.com/weebonweed/attendanceqrproject-/blob/main/attendenceQR/src/main/java/com/example/config/SecurityConfig.java"
click node_supabase_decoder "https://github.com/weebonweed/attendanceqrproject-/blob/main/attendenceQR/src/main/java/com/example/config/SupabaseJwtDecoderConfig.java"
click node_attendance_repo "https://github.com/weebonweed/attendanceqrproject-/blob/main/attendenceQR/src/main/java/com/example/repository/AttendanceRepository.java"
click node_session_repo "https://github.com/weebonweed/attendanceqrproject-/blob/main/attendenceQR/src/main/java/com/example/repository/SessionRepository.java"
click node_student_repo "https://github.com/weebonweed/attendanceqrproject-/blob/main/attendenceQR/src/main/java/com/example/repository/StudentRepository.java"
click node_user_repo "https://github.com/weebonweed/attendanceqrproject-/blob/main/attendenceQR/src/main/java/com/example/repository/UserRepository.java"
click node_attendance_model "https://github.com/weebonweed/attendanceqrproject-/blob/main/attendenceQR/src/main/java/com/example/model/Attendance.java"
click node_session_model "https://github.com/weebonweed/attendanceqrproject-/blob/main/attendenceQR/src/main/java/com/example/model/Session.java"
click node_student_model "https://github.com/weebonweed/attendanceqrproject-/blob/main/attendenceQR/src/main/java/com/example/model/Student.java"
click node_user_model "https://github.com/weebonweed/attendanceqrproject-/blob/main/attendenceQR/src/main/java/com/example/model/User.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_attendance_controller,node_auth_controller,node_session_controller,node_student_controller,node_user toneBlue
class node_attendance_service,node_qr_service,node_qr_generator,node_session_service,node_student_service toneAmber
class node_attendance_repo,node_session_repo,node_student_repo,node_user_repo,node_attendance_model,node_session_model,node_student_model,node_user_model toneMint
class node_auth_service,node_jwt_filter,node_jwt_util,node_security_config,node_supabase_decoder toneRose
```

## Components

### API endpoints

- [Attendance API](https://github.com/weebonweed/attendanceqrproject-/blob/main/attendenceQR/src/main/java/com/example/controller/AttendanceController.java): `attendenceQR/src/main/java/com/example/controller/AttendanceController.java`
- [Auth API](https://github.com/weebonweed/attendanceqrproject-/blob/main/attendenceQR/src/main/java/com/example/controller/AuthController.java): `attendenceQR/src/main/java/com/example/controller/AuthController.java`
- [Session API](https://github.com/weebonweed/attendanceqrproject-/blob/main/attendenceQR/src/main/java/com/example/controller/SessionController.java): `attendenceQR/src/main/java/com/example/controller/SessionController.java`
- [Student API](https://github.com/weebonweed/attendanceqrproject-/blob/main/attendenceQR/src/main/java/com/example/controller/StudentController.java): `attendenceQR/src/main/java/com/example/controller/StudentController.java`

### Attendance workflows

- [Attendance handling](https://github.com/weebonweed/attendanceqrproject-/blob/main/attendenceQR/src/main/java/com/example/service/AttendanceService.java): `attendenceQR/src/main/java/com/example/service/AttendanceService.java`
- [QR service](https://github.com/weebonweed/attendanceqrproject-/blob/main/attendenceQR/src/main/java/com/example/service/QRCodeService.java): `attendenceQR/src/main/java/com/example/service/QRCodeService.java`
- [QR generation](https://github.com/weebonweed/attendanceqrproject-/blob/main/attendenceQR/src/main/java/com/example/util/QRCodeGenerator.java): `attendenceQR/src/main/java/com/example/util/QRCodeGenerator.java`
- [Session handling](https://github.com/weebonweed/attendanceqrproject-/blob/main/attendenceQR/src/main/java/com/example/service/SessionService.java): `attendenceQR/src/main/java/com/example/service/SessionService.java`
- [Student handling](https://github.com/weebonweed/attendanceqrproject-/blob/main/attendenceQR/src/main/java/com/example/service/StudentService.java): `attendenceQR/src/main/java/com/example/service/StudentService.java`

### Domain and persistence

- [Attendance repository](https://github.com/weebonweed/attendanceqrproject-/blob/main/attendenceQR/src/main/java/com/example/repository/AttendanceRepository.java): `attendenceQR/src/main/java/com/example/repository/AttendanceRepository.java`
- [Session repository](https://github.com/weebonweed/attendanceqrproject-/blob/main/attendenceQR/src/main/java/com/example/repository/SessionRepository.java): `attendenceQR/src/main/java/com/example/repository/SessionRepository.java`
- [Student repository](https://github.com/weebonweed/attendanceqrproject-/blob/main/attendenceQR/src/main/java/com/example/repository/StudentRepository.java): `attendenceQR/src/main/java/com/example/repository/StudentRepository.java`
- [User repository](https://github.com/weebonweed/attendanceqrproject-/blob/main/attendenceQR/src/main/java/com/example/repository/UserRepository.java): `attendenceQR/src/main/java/com/example/repository/UserRepository.java`
- [Attendance record](https://github.com/weebonweed/attendanceqrproject-/blob/main/attendenceQR/src/main/java/com/example/model/Attendance.java): `attendenceQR/src/main/java/com/example/model/Attendance.java`
- [Session](https://github.com/weebonweed/attendanceqrproject-/blob/main/attendenceQR/src/main/java/com/example/model/Session.java): `attendenceQR/src/main/java/com/example/model/Session.java`
- [Student](https://github.com/weebonweed/attendanceqrproject-/blob/main/attendenceQR/src/main/java/com/example/model/Student.java): `attendenceQR/src/main/java/com/example/model/Student.java`
- [User](https://github.com/weebonweed/attendanceqrproject-/blob/main/attendenceQR/src/main/java/com/example/model/User.java): `attendenceQR/src/main/java/com/example/model/User.java`

### Authentication and security

- [Authentication logic](https://github.com/weebonweed/attendanceqrproject-/blob/main/attendenceQR/src/main/java/com/example/service/AuthService.java): `attendenceQR/src/main/java/com/example/service/AuthService.java`
- [JWT filter](https://github.com/weebonweed/attendanceqrproject-/blob/main/attendenceQR/src/main/java/com/example/config/JwtAuthenticationFilter.java): `attendenceQR/src/main/java/com/example/config/JwtAuthenticationFilter.java`
- [JWT utilities](https://github.com/weebonweed/attendanceqrproject-/blob/main/attendenceQR/src/main/java/com/example/config/JwtUtil.java): `attendenceQR/src/main/java/com/example/config/JwtUtil.java`
- [Security configuration](https://github.com/weebonweed/attendanceqrproject-/blob/main/attendenceQR/src/main/java/com/example/config/SecurityConfig.java): `attendenceQR/src/main/java/com/example/config/SecurityConfig.java`
- [Supabase JWT decoder](https://github.com/weebonweed/attendanceqrproject-/blob/main/attendenceQR/src/main/java/com/example/config/SupabaseJwtDecoderConfig.java): `attendenceQR/src/main/java/com/example/config/SupabaseJwtDecoderConfig.java`

### Other components

- **User / scanner**
