Problem statement
Design the object model and core APIs for an e-book bookmark and annotation manager that keeps one reader's bookmarks, highlights, notes, and last-read position consistent across the several devices they read on.
Operating context. One user, several devices, an in-process library plus a sync boundary. A book is addressed by stable canonical locators (for example a chapter plus offset) that are independent of font size, screen, or pagination. The reader creates bookmarks (a locator), highlights (a locator range with a color), and notes (attached to a highlight or a locator). A furthest-read position advances as they read. Each device edits offline and later syncs, so the manager must merge concurrent edits and reconcile conflicting last-read positions deterministically.
Out of scope. The rendering engine and pagination, the actual network transport, encryption and DRM, full-text search, and multi-user sharing.
What to produce. The class hierarchy (book, locator value object, bookmark / highlight / note, per-device reading state, merge and sync service), the annotation model, and the conflict-resolution rule. Be explicit about: why the locator is a device-independent immutable value object, how highlights and notes relate, how last-read is reconciled across devices (for example furthest-wins with a deterministic tie-break), and how a concurrent add and delete of the same annotation merges without losing data.
Requirements
This assessment is a Premium feature.
The statement above is free to read. The functional and non-functional requirements, and the graded canvas that scores your design against them, come with Premium.
Topics
- System Design LLD
- Media Ebook
- Patterns Value-Object
- Concurrency Merge
- Oop Solid