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