I want to design an online book reader system as a programming exercise. I wrote down the following requirements:
- Searching a book by title.
- Bookmarking a book.
- Mark a book as favorite.
- Give rating.
- Manage users.
The constraints are that only one user can read a particular book at a time.
I follow Clean architecture. Which advocates that:
- Defer implementation details like DB and delivery mechanisms.
- Start with the use case first which guides Interactors / Service Objects.
- In designing use cases you will come across different Entities.
- Don't pass objects between boundaries.
I know that question seems too broad hence but I wanted to proper context first, I will proceed from first step. I would like to know to pick up which use case first? Second, should I formulate all Service Objects and then move on to Entities?