# prathik-jain/carrel-librarymanagmentsystem architecture

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

- Interactive diagram: https://gitdiagram.com/prathik-jain/carrel-librarymanagmentsystem
- Repository: https://github.com/prathik-jain/carrel-librarymanagmentsystem

## Overview

Carrel is a WPF library-management application for staff. The documented workflow begins with scanning a QR code to log in; scanning an admin QR opens admin options, where staff can create admins and print cards. Its documented library capabilities include adding books and tracking issues and returns, with QR codes easing the process. The tree also shows service, model, and SQL-schema layers, but no source excerpts establish their runtime calls or data flow. Accordingly, the graph uses README-supported relationships and leaves internal wiring out.

Main entry points: [`LibraryManagement/AdminForm.xaml.vb`](https://github.com/prathik-jain/carrel-librarymanagmentsystem/blob/master/LibraryManagement/AdminForm.xaml.vb) (Admin options), [`LibraryManagement/Sevices/BookService.vb`](https://github.com/prathik-jain/carrel-librarymanagmentsystem/blob/master/LibraryManagement/Sevices/BookService.vb) (Book service), [`LibraryManagement/StartUp.xaml.vb`](https://github.com/prathik-jain/carrel-librarymanagmentsystem/blob/master/LibraryManagement/StartUp.xaml.vb) (Application startup), [`LibraryManagement/Sevices/MemberService.vb`](https://github.com/prathik-jain/carrel-librarymanagmentsystem/blob/master/LibraryManagement/Sevices/MemberService.vb) (Member service)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_access["Staff access"]
  node_startup["Application startup<br/>[StartUp.xaml.vb]"]
  node_login["QR login<br/>[Login.xaml.vb]"]
end

subgraph group_admin["Administration"]
  node_admin_ui["Admin options<br/>[AdminForm.xaml.vb]"]
  node_admin_service["Admin service<br/>[AdminService.vb]"]
  node_admin_card["Admin card printing<br/>[PrintPopup.xaml.vb]"]
end

subgraph group_library["Library operations"]
  node_book_ui["Book management<br/>[BookForm.xaml.vb]"]
  node_book_view["Book information<br/>[ViewBook.xaml.vb]"]
  node_book_service["Book service<br/>[BookService.vb]"]
  node_member_ui["Member management<br/>[MemberForm.xaml.vb]"]
  node_member_service["Member service<br/>[MemberService.vb]"]
  node_book_model["Book model<br/>[Book.vb]"]
end

subgraph group_data["Data layer"]
  node_schema[("SQL schema<br/>[CARREL.sql]")]
end

subgraph group_qr["QR support"]
  node_camera["Camera capture<br/>[Camera.vb]"]
  node_decoder["QR decoder<br/>[QRDecoder.vb]"]
  node_generator["QR generator<br/>[QrGenerator.vb]"]
end

node_staff(("Library staff"))

node_staff -->|"starts app"| node_startup
node_startup -->|"requests QR login"| node_login
node_staff -->|"scans admin QR"| node_admin_ui
node_admin_ui -.-> node_admin_service
node_admin_ui -->|"prints card"| node_admin_card
node_book_ui -.-> node_book_service
node_book_view -.-> node_book_service
node_member_ui -.-> node_member_service
node_book_service -.-> node_schema
node_member_service -.-> node_schema
node_camera -.-> node_decoder
node_generator -.-> node_admin_card

click node_startup "https://github.com/prathik-jain/carrel-librarymanagmentsystem/blob/master/LibraryManagement/StartUp.xaml.vb"
click node_login "https://github.com/prathik-jain/carrel-librarymanagmentsystem/blob/master/LibraryManagement/Login.xaml.vb"
click node_admin_ui "https://github.com/prathik-jain/carrel-librarymanagmentsystem/blob/master/LibraryManagement/AdminForm.xaml.vb"
click node_admin_service "https://github.com/prathik-jain/carrel-librarymanagmentsystem/blob/master/LibraryManagement/Sevices/AdminService.vb"
click node_admin_card "https://github.com/prathik-jain/carrel-librarymanagmentsystem/blob/master/LibraryManagement/PrintPopup.xaml.vb"
click node_book_ui "https://github.com/prathik-jain/carrel-librarymanagmentsystem/blob/master/LibraryManagement/BookForm.xaml.vb"
click node_book_view "https://github.com/prathik-jain/carrel-librarymanagmentsystem/blob/master/LibraryManagement/ViewBook.xaml.vb"
click node_book_service "https://github.com/prathik-jain/carrel-librarymanagmentsystem/blob/master/LibraryManagement/Sevices/BookService.vb"
click node_member_ui "https://github.com/prathik-jain/carrel-librarymanagmentsystem/blob/master/LibraryManagement/MemberForm.xaml.vb"
click node_member_service "https://github.com/prathik-jain/carrel-librarymanagmentsystem/blob/master/LibraryManagement/Sevices/MemberService.vb"
click node_book_model "https://github.com/prathik-jain/carrel-librarymanagmentsystem/blob/master/LibraryManagement/Class/Book.vb"
click node_schema "https://github.com/prathik-jain/carrel-librarymanagmentsystem/blob/master/Database/CARREL.sql"
click node_camera "https://github.com/prathik-jain/carrel-librarymanagmentsystem/blob/master/LibraryManagement/Class/Camera.vb"
click node_decoder "https://github.com/prathik-jain/carrel-librarymanagmentsystem/blob/master/LibraryManagement/Class/QRDecoder.vb"
click node_generator "https://github.com/prathik-jain/carrel-librarymanagmentsystem/blob/master/LibraryManagement/Class/QrGenerator.vb"

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_startup,node_login toneBlue
class node_admin_ui,node_admin_service,node_admin_card toneAmber
class node_book_ui,node_book_view,node_book_service,node_member_ui,node_member_service,node_book_model toneMint
class node_schema toneRose
class node_camera,node_decoder,node_generator,node_staff toneIndigo
```

## Components

### Staff access

- [Application startup](https://github.com/prathik-jain/carrel-librarymanagmentsystem/blob/master/LibraryManagement/StartUp.xaml.vb): `LibraryManagement/StartUp.xaml.vb`
- [QR login](https://github.com/prathik-jain/carrel-librarymanagmentsystem/blob/master/LibraryManagement/Login.xaml.vb): `LibraryManagement/Login.xaml.vb`

### Administration

- [Admin options](https://github.com/prathik-jain/carrel-librarymanagmentsystem/blob/master/LibraryManagement/AdminForm.xaml.vb): `LibraryManagement/AdminForm.xaml.vb`
- [Admin service](https://github.com/prathik-jain/carrel-librarymanagmentsystem/blob/master/LibraryManagement/Sevices/AdminService.vb): `LibraryManagement/Sevices/AdminService.vb`
- [Admin card printing](https://github.com/prathik-jain/carrel-librarymanagmentsystem/blob/master/LibraryManagement/PrintPopup.xaml.vb): `LibraryManagement/PrintPopup.xaml.vb`

### Library operations

- [Book management](https://github.com/prathik-jain/carrel-librarymanagmentsystem/blob/master/LibraryManagement/BookForm.xaml.vb): `LibraryManagement/BookForm.xaml.vb`
- [Book information](https://github.com/prathik-jain/carrel-librarymanagmentsystem/blob/master/LibraryManagement/ViewBook.xaml.vb): `LibraryManagement/ViewBook.xaml.vb`
- [Book service](https://github.com/prathik-jain/carrel-librarymanagmentsystem/blob/master/LibraryManagement/Sevices/BookService.vb): `LibraryManagement/Sevices/BookService.vb`
- [Member management](https://github.com/prathik-jain/carrel-librarymanagmentsystem/blob/master/LibraryManagement/MemberForm.xaml.vb): `LibraryManagement/MemberForm.xaml.vb`
- [Member service](https://github.com/prathik-jain/carrel-librarymanagmentsystem/blob/master/LibraryManagement/Sevices/MemberService.vb): `LibraryManagement/Sevices/MemberService.vb`
- [Book model](https://github.com/prathik-jain/carrel-librarymanagmentsystem/blob/master/LibraryManagement/Class/Book.vb): `LibraryManagement/Class/Book.vb`

### Data layer

- [SQL schema](https://github.com/prathik-jain/carrel-librarymanagmentsystem/blob/master/Database/CARREL.sql): `Database/CARREL.sql`

### QR support

- [Camera capture](https://github.com/prathik-jain/carrel-librarymanagmentsystem/blob/master/LibraryManagement/Class/Camera.vb): `LibraryManagement/Class/Camera.vb`
- [QR decoder](https://github.com/prathik-jain/carrel-librarymanagmentsystem/blob/master/LibraryManagement/Class/QRDecoder.vb): `LibraryManagement/Class/QRDecoder.vb`
- [QR generator](https://github.com/prathik-jain/carrel-librarymanagmentsystem/blob/master/LibraryManagement/Class/QrGenerator.vb): `LibraryManagement/Class/QrGenerator.vb`

### Other components

- **Library staff**

## Connections

- Library staff → Application startup: starts app (evidence: `ReadMe.md`)
- Application startup → QR login: requests QR login (evidence: `ReadMe.md`)
- Library staff → Admin options: scans admin QR (evidence: `ReadMe.md`)
- Admin options → Admin service
- Admin options → Admin card printing: prints card (evidence: `ReadMe.md`)
- Book management → Book service
- Book information → Book service
- Member management → Member service
- Book service → SQL schema
- Member service → SQL schema
- Camera capture → QR decoder
- QR generator → Admin card printing
