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.
Document structure
Requirement notation
Identifiers
| Pattern |
Meaning |
Example |
| FR-X.Y |
Functional Requirement |
FR-2.1 (Format Conversion) |
| NFR-X.Y |
Non-Functional Requirement |
NFR-4.1 (Startup Time) |
| UC-X.Y |
Use case |
UC-2.1 (Import Books) |
Priority levels
| Priority |
Label |
MVP Target |
Description |
| P0 |
Critical |
v1.0 |
Must have - core functionality |
| P1 |
High |
v1.0 |
Should have - important for launch |
| P2 |
Medium |
v1.x |
Nice to have - post-MVP planned |
| P3 |
Low |
v2.x+ |
Future - not yet planned |
Requirement categories
Functional requirements (FR)
| Category |
ID Range |
Count |
Description |
| User Management |
FR-1.x |
6 |
Account, auth, offline mode |
| Book Management |
FR-2.x |
14 |
Import, organize, search |
| Integrated Viewer |
FR-3.x |
4 |
Reading, customization, profiles |
| Annotations & Notes |
FR-4.x |
5 |
Highlights, notes, export |
| Progress Tracking |
FR-5.x |
3 |
Statistics, sync |
| Goal Management |
FR-6.x |
4 |
Goals, progress, notifications |
| Storage & Sync |
FR-7.x |
6 |
Metadata server, file storage backends, OPDS |
| Total |
|
42 |
|
Non-functional requirements (NFR)
| Category |
ID Range |
Count |
Description |
| Storage |
NFR-1.x |
4 |
File size, backends, encryption |
| Synchronization |
NFR-2.x |
4 |
Offline, conflicts, performance |
| Platform Support |
NFR-3.x |
4 |
Web, desktop, mobile, e-ink |
| Performance |
NFR-4.x |
5 |
Startup, open, search, scale |
| Usability |
NFR-5.x |
5 |
Design, accessibility, i18n |
| Security |
NFR-6.x |
5 |
Auth, encryption, privacy |
| Reliability |
NFR-7.x |
4 |
Uptime, integrity, backup |
| Extensibility |
NFR-8.x |
1 |
Plugin architecture |
| Maintainability |
NFR-9.x |
2 |
Code quality, logging |
| Total |
|
34 |
|
MVP scope summary
P0 requirements (must have)
| Category |
Requirements |
| User Management |
FR-1.1, FR-1.2, FR-1.4 |
| Book Management |
FR-2.2, FR-2.4, FR-2.6, FR-2.8, FR-2.9, FR-2.10 |
| Viewer |
FR-3.1, FR-3.2, FR-3.4 |
| Annotations |
FR-4.1, FR-4.2, FR-4.3 |
| Progress |
FR-5.1, FR-5.3 |
| Storage |
FR-7.1, FR-7.1.1, FR-7.2 |
| Platform |
NFR-3.1, NFR-3.2, NFR-3.3 |
| Performance |
NFR-4.1, NFR-4.2, NFR-4.3 |
| Sync |
NFR-2.1, NFR-2.2, NFR-2.4 |
| Security |
NFR-6.1, NFR-6.2, NFR-6.4, NFR-6.5 |
| Reliability |
NFR-7.2, NFR-7.3 |
| Usability |
NFR-5.1, NFR-5.2 |
Total P0: 18 FR + 17 NFR = 35 requirements
P1 requirements (should have)
| Category |
Requirements |
| User Management |
FR-1.3, FR-1.5, FR-1.6 |
| Book Management |
FR-2.5, FR-2.7, FR-2.13, FR-2.14 |
| Viewer |
FR-3.3 |
| Annotations |
FR-4.4, FR-4.5 |
| Progress |
FR-5.2 |
| Goals |
FR-6.1, FR-6.2, FR-6.3 |
| Platform |
NFR-3.4 |
| Performance |
NFR-4.4, NFR-4.5 |
| Sync |
NFR-2.3 |
| Storage |
NFR-1.3 |
| Usability |
NFR-5.3, NFR-5.4, NFR-5.5 |
| Reliability |
NFR-7.1, NFR-7.4 |
| Maintainability |
NFR-9.1, NFR-9.2 |
Total P1: 16 FR + 12 NFR = 28 requirements
Traceability matrix
Requirements to use cases
| FR |
Use case |
Description |
| FR-1.1 |
UC-1.1 |
Account registration |
| FR-1.2 |
UC-1.2 |
Login with credentials |
| FR-1.3 |
UC-1.3 |
OAuth login |
| FR-1.4 |
UC-1.4 |
Offline mode |
| FR-1.5 |
UC-1.5 |
Password recovery |
| FR-1.6 |
UC-1.6 |
Account deletion |
| FR-2.1 |
UC-2.2 |
Format conversion |
| FR-2.2, FR-2.13 |
UC-2.3 |
Metadata editing |
| FR-2.4, FR-2.5 |
UC-2.7 |
Export |
| FR-2.6, FR-7.2 |
UC-2.1 |
Import |
| FR-2.7, FR-2.8, FR-2.11 |
UC-2.6 |
Search |
| FR-2.9 |
UC-2.4 |
Shelves |
| FR-2.10 |
UC-2.5 |
Tags |
| FR-2.12 |
UC-2.8 |
ISBN scanning |
| FR-2.14 |
UC-2.9 |
Physical books |
| FR-3.1 |
UC-3.1 |
Reading |
| FR-3.2 |
UC-3.2 |
Reader customization |
| FR-3.3 |
UC-3.3 |
Reading profiles |
| FR-3.4 |
UC-3.4 |
Bookmarks |
| FR-4.1 |
UC-4.1 |
Annotations |
| FR-4.2 |
UC-4.2 |
Notes |
| FR-4.3 |
UC-4.3 |
Annotation management |
| FR-4.4 |
UC-4.4 |
Annotation export |
| FR-4.5 |
UC-4.5 |
Annotation search |
| FR-5.1 |
UC-5.1 |
Progress tracking |
| FR-5.2 |
UC-5.2 |
Statistics filtering |
| FR-5.3 |
UC-7.3 |
Cross-device sync |
| FR-6.1 |
UC-6.1 |
Create goals |
| FR-6.2, FR-6.3 |
UC-6.2 |
Goal progress |
| FR-7.1 |
UC-7.1 |
File storage backend selection |
| FR-7.1.1 |
UC-7.1 |
Metadata server configuration |
| FR-7.3 |
UC-7.2 |
OCR processing |
| FR-7.5 |
UC-7.4 |
OPDS browsing |
Requirements to entities
| FR |
Primary Entities |
| FR-1.x |
User |
| FR-2.x |
Book, Shelf, Tag, Series |
| FR-3.x |
Book, ReadingProfile, Bookmark |
| FR-4.x |
Annotation, Note |
| FR-5.x |
ReadingSession, Book |
| FR-6.x |
ReadingGoal |
| FR-7.x |
StorageConfig, FileStorageBackend, SavedFilter |
Core principles
The requirements reflect these core principles:
1. User data ownership
- All data exportable in open formats
- No vendor lock-in
- Self-hosting option available
- Consistent experience across all devices
- E-ink devices as first-class citizens
- Progressive Web App support
3. Offline functionality
- Full feature parity offline
- Sync when connected
- No account required for basic use
4. Privacy first
- No default analytics
- Opt-in telemetry only
- Local-first architecture
5. Developer friendly
- Open source
- Public REST API
- Plugin extensibility