Requirements overview¶
This section provides an overview of the requirements specification for Papyrus, including the structure, notation, and traceability between requirements, use cases, and entities.
Requirement notation¶
Identifiers¶
FR-X_Y - functional requirement (e.g., FR-2_1: format conversion)
NFR-X_Y - non-functional requirement (e.g., NFR-4_1: startup time)
UC-X_Y - use case (e.g., UC-2_1: import books).
Priority levels¶
P0 - critical (v0.x).
P1 - high (v1.0).
P2 - medium (v1.x).
P3 - low (v2.x+).
All requirements¶
ID |
Title |
Status |
Priority |
|---|---|---|---|
Account registration |
open |
P0 |
|
Email/password login |
open |
P0 |
|
OAuth login (Google) |
open |
P1 |
|
Offline mode |
open |
P0 |
|
Password recovery |
open |
P1 |
|
Account deletion |
open |
P1 |
|
Format conversion |
open |
P2 |
|
Book tagging |
open |
P0 |
|
Query language filters |
open |
P2 |
|
ISBN barcode scanning |
open |
P2 |
|
Metadata fetching |
open |
P1 |
|
Physical book tracking |
open |
P1 |
|
Manual metadata editing |
open |
P0 |
|
Custom metadata fields |
open |
P2 |
|
Book file export |
open |
P0 |
|
Library data export |
open |
P1 |
|
Book import |
open |
P0 |
|
Full-text search |
open |
P1 |
|
Advanced search |
open |
P0 |
|
Shelf organization |
open |
P0 |
|
E-book reading |
open |
P0 |
|
Viewer customization |
open |
P0 |
|
Reading profiles |
open |
P1 |
|
Bookmarks |
open |
P0 |
|
Text highlighting |
open |
P0 |
|
Book notes |
open |
P0 |
|
Annotation editing |
open |
P0 |
|
Annotation export |
open |
P1 |
|
Annotation search |
open |
P1 |
|
Reading statistics |
open |
P0 |
|
Statistics filtering |
open |
P1 |
|
Cross-device sync |
open |
P0 |
|
Reading goals |
open |
P1 |
|
Manual goal updates |
open |
P1 |
|
Automatic goal progress |
open |
P1 |
|
Goal notifications |
open |
P2 |
|
File storage backend selection |
open |
P0 |
|
Metadata server configuration |
open |
P0 |
|
File upload |
open |
P0 |
|
OCR processing |
open |
P2 |
|
Plugin system |
open |
P3 |
|
OPDS catalog support |
open |
P2 |
|
Maximum file size |
open |
P0 |
|
Storage backend support |
open |
P0 |
|
Multi-backend configuration |
open |
P1 |
|
File encryption |
open |
P2 |
|
Online/offline parity |
open |
P0 |
|
Offline change indicators |
open |
P0 |
|
Conflict resolution |
open |
P1 |
|
Sync performance |
open |
P0 |
|
Web browser support |
open |
P0 |
|
Desktop operating system support |
open |
P0 |
|
Mobile operating system support |
open |
P0 |
|
E-ink device support |
open |
P1 |
|
Application startup |
open |
P0 |
|
Book opening |
open |
P0 |
|
Search performance |
open |
P0 |
|
Library scalability |
open |
P1 |
|
E-ink performance |
open |
P1 |
|
Design system |
open |
P0 |
|
Accessibility |
open |
P0 |
|
RTL and internationalization |
open |
P1 |
|
Localization |
open |
P1 |
|
E-ink usability |
open |
P1 |
|
Password security |
open |
P0 |
|
Transport security |
open |
P0 |
|
Two-factor authentication |
open |
P2 |
|
Session management |
open |
P0 |
|
Privacy by default |
open |
P0 |
|
System uptime |
open |
P1 |
|
Data integrity |
open |
P0 |
|
Network resilience |
open |
P0 |
|
Backup and restore |
open |
P1 |
|
Plugin architecture |
open |
P3 |
|
Code quality |
open |
P1 |
|
Logging and monitoring |
open |
P1 |
|
Create user account |
open |
P0 |
|
Login with credentials |
open |
P0 |
|
Login with Google account |
open |
P1 |
|
Use application offline |
open |
P0 |
|
Recover password |
open |
P1 |
|
Delete account |
open |
P1 |
|
Import book files |
open |
P0 |
|
Convert book formats |
open |
P2 |
|
Edit book metadata |
open |
P0 |
|
Organize books into shelves |
open |
P0 |
|
Tag books |
open |
P0 |
|
Search books |
open |
P0 |
|
Export books and data |
open |
P0 |
|
Scan ISBN barcode |
open |
P2 |
|
Track physical book |
open |
P1 |
|
Read books with integrated viewer |
open |
P0 |
|
Customize reading experience |
open |
P0 |
|
Manage reading profiles |
open |
P1 |
|
Manage bookmarks |
open |
P0 |
|
Create text annotations |
open |
P0 |
|
Create book notes |
open |
P0 |
|
Manage annotations |
open |
P0 |
|
Export annotations |
open |
P1 |
|
Search annotations |
open |
P1 |
|
Track reading progress |
open |
P0 |
|
Filter progress statistics |
open |
P1 |
|
Create reading goals |
open |
P1 |
|
Manage goal progress |
open |
P1 |
|
Configure storage options |
open |
P0 |
|
Process scanned documents |
open |
P2 |
|
Synchronize data across devices |
open |
P0 |
|
Browse OPDS catalog |
open |
P2 |
Functional requirements by category¶
Category |
Scope |
Description |
|---|---|---|
User management |
FR-1.x |
Account, auth, offline mode |
Book management |
FR-2.x |
Import, organize, search |
Integrated viewer |
FR-3.x |
Reading, customization, profiles |
Annotations and notes |
FR-4.x |
Highlights, notes, export |
Progress tracking |
FR-5.x |
Statistics, sync |
Goal management |
FR-6.x |
Goals, progress, notifications |
Storage and sync |
FR-7.x |
Metadata server, file storage backends, OPDS |
Non-functional requirements by category¶
Category |
Scope |
Description |
|---|---|---|
Storage |
NFR-1.x |
File size, backends, encryption |
Synchronization |
NFR-2.x |
Offline, conflicts, performance |
Platform Support |
NFR-3.x |
Web, desktop, mobile, e-ink |
Performance |
NFR-4.x |
Startup, open, search, scale |
Usability |
NFR-5.x |
Design, accessibility, i18n |
Security |
NFR-6.x |
Auth, encryption, privacy |
Reliability |
NFR-7.x |
Uptime, integrity, backup |
Extensibility |
NFR-8.x |
Plugin architecture |
Maintainability |
NFR-9.x |
Code quality, logging |
Dependency graphs¶
User management¶
Book management¶
Integrated viewer¶
Annotations & notes¶
Progress & goals¶
Storage & sync¶
Core principles¶
User data ownership
All user data, such as books, notes, annotations, can be exported in open formats, avoiding vendor lock-in and enabling self-hosting options for those who prefer full control over their data.
Cross-platform accessibility
Consistent experience and a full set of features across all devices and platforms, with additional platform-specific features, such as themes suitable for e-ink screens.
Offline functionality
No account or internet connection is required to use application’s core. Non-essential features, such as data synchronization and cloud file storage is optional.
Privacy first
Local-first architecture with no analytics or tracking enabled by default. A user can avoid relying on cloud services and use the system offline or with a self-hosted server instance.
Developer friendly
The system is fully open source and makes it easy to self-host the server for file storage and data sync. Documented REST API allows users to easily build their own clients and book management solutions.