Todo app written with with domain driven design service-esque layering.
ActiveTodoService represents a hybrid service that encapsulates both backend (DTOs) and frontend state (prioritizing) for active todos. Prioritizing is an ephemeral feature for now until the backend team can implement it to fully persist.
SavedForLaterTodoService represents a backend-only service that encapsulates backend state for CRUD operations on SavedForLaterTodos, and converting a SavedForLaterTodo into an ActiveTodo.
ReviewRepository represents a frontend-only interface that encapsulates the Review domain model.
ReviewedTodoRepository represents a frontend-only interface that encapsulates the ReviewedTodo domain model.
- Refactor current TodoService to hybrid-style
ActiveTodoServiceincluding ability to prioritize ActiveTodos. - Implement
TodoReviewServicewith ability to focus/unfocus, and maintain alastReviewedAttimestamp via somereviewmethod. - Implement
SavedForLaterTodoServicewith ability to save an ActiveTodo for later, and turn a SavedForLaterTodo back into an ActiveTodo. - Implement Application Event Bus that deletes TodoUnderReview records from the TodoReviewService
- Command Use Case for starting the review process
- Command Use Case for review and proceed
- Query Use Case for getting list of todos to review (wrap with
Chimerictype) - Implement
ChimericPromisethat wraps mutative use cases - Possibly do dependency injection for MakeChimericQuery, MakeChimericQueryWithManagedStore, MakeMutativeQuery so queryClient doesn't need to be passed
- Tests for MakeChimericQuery, MakeChimericQueryWithManagedStore, MakeMutativeQuery
- Refactor folder structure in domain
- Tests for services