# emirhanbayrak/kitapl-k-kay-t-listeleme architecture

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

- Interactive diagram: https://gitdiagram.com/emirhanbayrak/kitapl-k-kay-t-listeleme
- Repository: https://github.com/emirhanbayrak/kitapl-k-kay-t-listeleme

## Overview

Bookscanner Pro is a browser-based book cataloging app. A user starts or resumes a list, scans a barcode with a camera or enters an ISBN, and the app looks up book details through Google Books before adding them to the catalog. The user can review or delete entries, and export the list as CSV or XML. App.tsx also persists the catalog in browser local storage. Scanner behavior and lookup are supported by sampled source; other internal implementation details were not inferred.

Main entry points: [`App.tsx`](https://github.com/emirhanbayrak/kitapl-k-kay-t-listeleme/blob/main/App.tsx) (Catalog app), [`services/bookService.ts`](https://github.com/emirhanbayrak/kitapl-k-kay-t-listeleme/blob/main/services/bookService.ts) (ISBN lookup), [`components/Scanner.tsx`](https://github.com/emirhanbayrak/kitapl-k-kay-t-listeleme/blob/main/components/Scanner.tsx) (Barcode scanner), [`components/BookRow.tsx`](https://github.com/emirhanbayrak/kitapl-k-kay-t-listeleme/blob/main/components/BookRow.tsx) (Book display)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_workflow["Catalog workflow"]
  node_app["Catalog app<br/>[App.tsx]"]
  node_bookservice["ISBN lookup<br/>[bookService.ts]"]
  node_booktypes["Book data types<br/>[types.ts]"]
end

subgraph group_components["UI components"]
  node_scanner["Barcode scanner<br/>[Scanner.tsx]"]
  node_bookrow["Book display<br/>[BookRow.tsx]"]
end

subgraph group_integrations["Browser and services"]
  node_localstorage[("Browser storage")]
  node_camera["Device camera"]
  node_googlebooks["Google Books API"]
  node_browserdownload["Browser download"]
end

node_user(("User"))

node_user -->|"uses"| node_app
node_app -->|"loads and saves"| node_localstorage
node_app -->|"opens scanner"| node_scanner
node_scanner -->|"uses camera"| node_camera
node_scanner -->|"returns ISBN"| node_app
node_app -->|"looks up ISBN"| node_bookservice
node_bookservice -->|"fetches metadata"| node_googlebooks
node_bookservice -->|"returns book"| node_app
node_app -->|"renders entries"| node_bookrow
node_bookrow -->|"requests deletion"| node_app
node_app -->|"downloads CSV or XML"| node_browserdownload

click node_app "https://github.com/emirhanbayrak/kitapl-k-kay-t-listeleme/blob/main/App.tsx"
click node_scanner "https://github.com/emirhanbayrak/kitapl-k-kay-t-listeleme/blob/main/components/Scanner.tsx"
click node_bookrow "https://github.com/emirhanbayrak/kitapl-k-kay-t-listeleme/blob/main/components/BookRow.tsx"
click node_bookservice "https://github.com/emirhanbayrak/kitapl-k-kay-t-listeleme/blob/main/services/bookService.ts"
click node_booktypes "https://github.com/emirhanbayrak/kitapl-k-kay-t-listeleme/blob/main/types.ts"

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_app,node_bookservice,node_booktypes,node_user toneBlue
class node_scanner,node_bookrow toneAmber
class node_localstorage,node_camera,node_googlebooks,node_browserdownload toneMint
```

## Components

### Catalog workflow

- [Catalog app](https://github.com/emirhanbayrak/kitapl-k-kay-t-listeleme/blob/main/App.tsx): `App.tsx`
- [ISBN lookup](https://github.com/emirhanbayrak/kitapl-k-kay-t-listeleme/blob/main/services/bookService.ts): `services/bookService.ts`
- [Book data types](https://github.com/emirhanbayrak/kitapl-k-kay-t-listeleme/blob/main/types.ts): `types.ts`

### UI components

- [Barcode scanner](https://github.com/emirhanbayrak/kitapl-k-kay-t-listeleme/blob/main/components/Scanner.tsx): `components/Scanner.tsx`
- [Book display](https://github.com/emirhanbayrak/kitapl-k-kay-t-listeleme/blob/main/components/BookRow.tsx): `components/BookRow.tsx`

### Browser and services

- **Browser storage**
- **Device camera**
- **Google Books API**
- **Browser download**

### Other components

- **User**

## Connections

- User → Catalog app: uses
- Catalog app → Browser storage: loads and saves
- Catalog app → Barcode scanner: opens scanner
- Barcode scanner → Device camera: uses camera
- Barcode scanner → Catalog app: returns ISBN
- Catalog app → ISBN lookup: looks up ISBN
- ISBN lookup → Google Books API: fetches metadata
- ISBN lookup → Catalog app: returns book
- Catalog app → Book display: renders entries
- Book display → Catalog app: requests deletion
- Catalog app → Browser download: downloads CSV or XML
