Design: Modular Online Bookstore
Focus on backend code design applying SOLID principles. UI and database implementation details are out of scope.
Functional Requirements
FR1: Users can browse books by category and search by title or author
FR2: Users can add books to a shopping cart and place orders
FR3: Admin can add, update, or remove books
FR4: System should allow easy addition of new payment methods without changing existing code
FR5: System should support multiple types of notifications (email, SMS) for order status updates
Non-Functional Requirements
NFR1: Codebase must be easy to maintain and extend
NFR2: Changes to one feature should not affect unrelated features
NFR3: System should handle up to 1000 concurrent users
NFR4: Response time for browsing and searching should be under 300ms