# iamjarryfeng/lims architecture

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

- Interactive diagram: https://gitdiagram.com/iamjarryfeng/lims
- Repository: https://github.com/iamjarryfeng/lims

## Overview

This is a small, Windows-oriented, console Library Information Management System. Users enter through the main menu, then perform catalog and borrowing tasks; administrators authenticate before managing books and other system functions. The program stores catalog, member, and borrowing information in text files. The README gives little feature detail, and the C excerpt is partial, so the graph keeps unsampled menu wiring broad and avoids asserting specific links for unseen operations.

Main entry points: [`fuujiro_LIMS.c`](https://github.com/iamjarryfeng/lims/blob/master/fuujiro_LIMS.c) (Menu and dispatch), [`library.txt`](https://github.com/iamjarryfeng/lims/blob/master/library.txt) (Catalog records), [`infomember.txt`](https://github.com/iamjarryfeng/lims/blob/master/infomember.txt) (Member records), [`memberbook.txt`](https://github.com/iamjarryfeng/lims/blob/master/memberbook.txt) (Borrow records)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_app["Console application"]
  node_main["Menu and dispatch<br/>[fuujiro_LIMS.c]"]
  node_admin_auth["Admin login<br/>[fuujiro_LIMS.c]"]
end

subgraph group_library["Library operations"]
  node_catalog["Catalog management<br/>[fuujiro_LIMS.c]"]
  node_discovery["Book discovery<br/>[fuujiro_LIMS.c]"]
  node_circulation["Borrowing and returns<br/>[fuujiro_LIMS.c]"]
  node_member["Member accounts<br/>[fuujiro_LIMS.c]"]
end

subgraph group_records["Text records"]
  node_bookdata[("Catalog records<br/>[library.txt]")]
  node_memberdata[("Member records<br/>[infomember.txt]")]
  node_borrowdata[("Borrow records<br/>[memberbook.txt]")]
end

node_user(("Library user"))

node_user -->|"uses"| node_main
node_main -->|"authenticates"| node_admin_auth
node_main -->|"dispatches"| node_catalog
node_main -->|"dispatches"| node_discovery
node_main -->|"dispatches"| node_circulation
node_main -->|"dispatches"| node_member
node_admin_auth -->|"reads"| node_memberdata
node_catalog -->|"reads and writes"| node_bookdata
node_discovery -->|"reads"| node_bookdata
node_circulation -->|"updates"| node_bookdata
node_circulation -->|"reads and writes"| node_borrowdata
node_member -->|"reads and writes"| node_memberdata

click node_main "https://github.com/iamjarryfeng/lims/blob/master/fuujiro_LIMS.c"
click node_admin_auth "https://github.com/iamjarryfeng/lims/blob/master/fuujiro_LIMS.c"
click node_catalog "https://github.com/iamjarryfeng/lims/blob/master/fuujiro_LIMS.c"
click node_discovery "https://github.com/iamjarryfeng/lims/blob/master/fuujiro_LIMS.c"
click node_circulation "https://github.com/iamjarryfeng/lims/blob/master/fuujiro_LIMS.c"
click node_member "https://github.com/iamjarryfeng/lims/blob/master/fuujiro_LIMS.c"
click node_bookdata "https://github.com/iamjarryfeng/lims/blob/master/library.txt"
click node_memberdata "https://github.com/iamjarryfeng/lims/blob/master/infomember.txt"
click node_borrowdata "https://github.com/iamjarryfeng/lims/blob/master/memberbook.txt"

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_admin_auth,node_user toneBlue
class node_catalog,node_discovery,node_circulation,node_member toneAmber
class node_bookdata,node_memberdata,node_borrowdata toneMint
```

## Components

### Console application

- [Menu and dispatch](https://github.com/iamjarryfeng/lims/blob/master/fuujiro_LIMS.c): `fuujiro_LIMS.c`
- [Admin login](https://github.com/iamjarryfeng/lims/blob/master/fuujiro_LIMS.c): `fuujiro_LIMS.c`

### Library operations

- [Catalog management](https://github.com/iamjarryfeng/lims/blob/master/fuujiro_LIMS.c): `fuujiro_LIMS.c`
- [Book discovery](https://github.com/iamjarryfeng/lims/blob/master/fuujiro_LIMS.c): `fuujiro_LIMS.c`
- [Borrowing and returns](https://github.com/iamjarryfeng/lims/blob/master/fuujiro_LIMS.c): `fuujiro_LIMS.c`
- [Member accounts](https://github.com/iamjarryfeng/lims/blob/master/fuujiro_LIMS.c): `fuujiro_LIMS.c`

### Text records

- [Catalog records](https://github.com/iamjarryfeng/lims/blob/master/library.txt): `library.txt`
- [Member records](https://github.com/iamjarryfeng/lims/blob/master/infomember.txt): `infomember.txt`
- [Borrow records](https://github.com/iamjarryfeng/lims/blob/master/memberbook.txt): `memberbook.txt`

### Other components

- **Library user**

## Connections

- Library user → Menu and dispatch: uses
- Menu and dispatch → Admin login: authenticates
- Menu and dispatch → Catalog management: dispatches
- Menu and dispatch → Book discovery: dispatches
- Menu and dispatch → Borrowing and returns: dispatches
- Menu and dispatch → Member accounts: dispatches
- Admin login → Member records: reads
- Catalog management → Catalog records: reads and writes
- Book discovery → Catalog records: reads
- Borrowing and returns → Catalog records: updates
- Borrowing and returns → Borrow records: reads and writes
- Member accounts → Member records: reads and writes
