Repository navigation
Minimum Viable Product - v0.3.0 #302
Copy link
Copy link
Open
Milestone
Description
To facilitate a fast feedback loop, the project needs to provide a true to life preview of the notification system. It needs to be a functional system with a focus on the minimum features required to do the following:
MVP
-
Foundations
- Remove demo code of v0.2.0 #304
- Delete interface-notification.php and make the repository interface user-scoped #612 (has-pr, ready to merge fix: make notification repository user-scoped #626)
- Fix Framework\Factory sharing one singleton across subclasses #613 (has-pr Framework: Store one Factory instance per subclass #624)
- Fix Serde UTC deserialisation and remove column fields from Message::$meta_keys #614 (has-pr Model: Handle dates in UTC and keep column fields out of message meta #627)
-
Persistence and access control
- Database schema v2 #615 (has-pr fix(database): add schema v2 tables #637)
- Fix the database migration gate and add a v1 → v2 upgrade routine #616 (blocked by fix(database): add schema v2 tables #637)
- Implement the Notification Repository #42
- Instantiate the notification repository and inject it into REST controllers #617
- Add authentication to REST endpoints #382 (has-pr REST API: Enforce authentication checks on endpoints and add unit tests #606)
-
Notifications REST API - Basic CRUD actions
- Add PHP API to emit a notification #303
- Implement querying the database for notifications #307
- Add rest-api endpoint to dismiss a notification #176
- REST schema and response cleanup for the notifications controller #618
- MVP Notification Controller: POST /notifications/ #375 (has-pr Add POST endpoint to Notification Controller #635, depends on Add endpoint to update notification state by ID #611)
- Add endpoint to update notification state by ID #611
- MVP: Notification Controller: DELETE /notifications/{id} #363 (has-pr feat(rest): add DELETE /notifications/{id} #639)
- MVP: Notification Controller: GET /notifications/{id} #362 (has-pr feat(rest): add GET /notifications/{id} #640, depends on feat(rest): add DELETE /notifications/{id} #639)
Delete a notification - This may not be necessary initially. The dismiss action is most important.
-
Client
- Fix client store bugs and convert to thunks #619 (has-pr fix: convert notification store to thunks #633)
- The current user's notifications are displayed on page load.
- Implement notification polling on the client #306 (has-pr, ready to merge Feature: Notification polling on the client #397)
- Implement the user persisted dismissal of a notification #305
-
Seeding test data
To implement in a later iteration
- User configurable channel subscriptions. All users will receive all notifications in the MVP.
- Emit a notification from the client to persist in the database.
Branch management
Once the MVP is ready, we can merge everything into trunk, and make that the default branch.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels
Activity
Sephsekla commentedon Apr 25, 2023
Any objections to me creating a other project board to track issues and PRs related to this?
johnhooks commentedon Apr 25, 2023
@Sephsekla that would be perfect