# john88897/final_project_novelnest architecture

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

- Interactive diagram: https://gitdiagram.com/john88897/final_project_novelnest
- Repository: https://github.com/john88897/final_project_novelnest

## Overview

NovelNest is presented only as a sample command-line application, with an entrypoint under `bin/` and library code under `lib/`. The tree suggests novel, reading, library, and bookmark domain concepts, but the README and supplied excerpts do not document a user workflow or runtime calls. Components are grouped by their apparent domain role; relationships are omitted rather than inferred from filenames.

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_cli["Command-line"]
  node_entrypoint["Application entrypoint"]
end

subgraph group_services["Services"]
  node_bookmark_service["Bookmark service"]
  node_library_service["Library service"]
  node_reading_service["Reading service"]
  node_story_service["Story service<br/>[story_service.dart]"]
  node_service_exception["Service exceptions<br/>[exception.dart]"]
end

subgraph group_models["Domain models"]
  node_bookmark["Bookmark<br/>[bookmark.dart]"]
  node_chapter["Chapter<br/>[chapter.dart]"]
  node_library["Library<br/>[library.dart]"]
  node_novel["Novel<br/>[novel.dart]"]
  node_reader["Reader<br/>[reader.dart]"]
  node_reading_position["Reading position"]
  node_story["Story<br/>[story.dart]"]
end

node_user(("CLI user"))

click node_entrypoint "https://github.com/john88897/final_project_novelnest/blob/main/bin/final_project_novelnest.dart"
click node_bookmark_service "https://github.com/john88897/final_project_novelnest/blob/main/lib/service/bookmark_service.dart"
click node_library_service "https://github.com/john88897/final_project_novelnest/blob/main/lib/service/library_service.dart"
click node_reading_service "https://github.com/john88897/final_project_novelnest/blob/main/lib/service/reading_service.dart"
click node_story_service "https://github.com/john88897/final_project_novelnest/blob/main/lib/service/story_service.dart"
click node_service_exception "https://github.com/john88897/final_project_novelnest/blob/main/lib/service/exception.dart"
click node_bookmark "https://github.com/john88897/final_project_novelnest/blob/main/lib/model/bookmark.dart"
click node_chapter "https://github.com/john88897/final_project_novelnest/blob/main/lib/model/chapter.dart"
click node_library "https://github.com/john88897/final_project_novelnest/blob/main/lib/model/library.dart"
click node_novel "https://github.com/john88897/final_project_novelnest/blob/main/lib/model/novel.dart"
click node_reader "https://github.com/john88897/final_project_novelnest/blob/main/lib/model/reader.dart"
click node_reading_position "https://github.com/john88897/final_project_novelnest/blob/main/lib/model/reading_position.dart"
click node_story "https://github.com/john88897/final_project_novelnest/blob/main/lib/model/story.dart"

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_entrypoint,node_user toneBlue
class node_bookmark_service,node_library_service,node_reading_service,node_story_service,node_service_exception toneAmber
class node_bookmark,node_chapter,node_library,node_novel,node_reader,node_reading_position,node_story toneMint
```

## Components

### Command-line

- [Application entrypoint](https://github.com/john88897/final_project_novelnest/blob/main/bin/final_project_novelnest.dart): `bin/final_project_novelnest.dart`

### Services

- [Bookmark service](https://github.com/john88897/final_project_novelnest/blob/main/lib/service/bookmark_service.dart): `lib/service/bookmark_service.dart`
- [Library service](https://github.com/john88897/final_project_novelnest/blob/main/lib/service/library_service.dart): `lib/service/library_service.dart`
- [Reading service](https://github.com/john88897/final_project_novelnest/blob/main/lib/service/reading_service.dart): `lib/service/reading_service.dart`
- [Story service](https://github.com/john88897/final_project_novelnest/blob/main/lib/service/story_service.dart): `lib/service/story_service.dart`
- [Service exceptions](https://github.com/john88897/final_project_novelnest/blob/main/lib/service/exception.dart): `lib/service/exception.dart`

### Domain models

- [Bookmark](https://github.com/john88897/final_project_novelnest/blob/main/lib/model/bookmark.dart): `lib/model/bookmark.dart`
- [Chapter](https://github.com/john88897/final_project_novelnest/blob/main/lib/model/chapter.dart): `lib/model/chapter.dart`
- [Library](https://github.com/john88897/final_project_novelnest/blob/main/lib/model/library.dart): `lib/model/library.dart`
- [Novel](https://github.com/john88897/final_project_novelnest/blob/main/lib/model/novel.dart): `lib/model/novel.dart`
- [Reader](https://github.com/john88897/final_project_novelnest/blob/main/lib/model/reader.dart): `lib/model/reader.dart`
- [Reading position](https://github.com/john88897/final_project_novelnest/blob/main/lib/model/reading_position.dart): `lib/model/reading_position.dart`
- [Story](https://github.com/john88897/final_project_novelnest/blob/main/lib/model/story.dart): `lib/model/story.dart`

### Other components

- **CLI user**
