guardian / guardian/notifications-tooling
US-43 — Present the latest published articles on the landing page
- Dominant language
- TypeScript
- Stars
- 3
- Forks
- 0
- Avg merge
- 1d 6h
- Merged PRs (30d)
- 108
Description
Figma designs: https://www.figma.com/design/nlTRBsbrjta7EbmsNzAVdh/Notifications-mission--Dispatch-?node-id=2601-34970&t=fLyUyWzLVEHkPIKs-0
## User story
_As a Dispatcher user, I want to see the latest published Guardian articles on the landing page so that I can quickly select recent content and start creating an App Alert._
## Acceptance scenarios
```gherkin
Feature: Present the latest published articles on the Dispatcher landing page
Background:
Given the user has access to Dispatcher
Scenario: Display the latest published content
Given recently published Guardian articles are available
When the user opens the Dispatcher landing page
Then a "Latest published content" section should be displayed
And the section should explain that a recent article can be selected to create an alert
And the latest published articles should be listed
Scenario: Display article information
Given recently published Guardian articles are available
When the latest published content is displayed
Then each article should show its headline
And each article should show its section or content classification
And each article should show when it was published
And each article should show its thumbnail image where one is available
And each article should provide a "Create" action
And each article should show its intended audience signifier: "Domestic for domestic", "Domestic for global", "Global", or "Not set"
Scenario: Order articles by publication time
Given multiple recently published articles are available
When the latest published content is displayed
Then the most recently published article should appear first
And older articles should follow in descending publication-time order
Scenario: Open the creation options modal
Given a recently published article is displayed
When the user selects "Create" for that article
Then a creation options modal should be displayed
And the selected article should remain associated with the creation action
And the user should be offered an option to create a Newsletter Email
And the user should be offered an option to create an App Alert
Scenario: Cancel the creation options modal
Given the creation options modal is displayed
When the user closes or cancels the modal
Then the modal should close
And the user should remain on the Dispatcher landing page
And no notification creation workflow should be started
Scenario: Create a Newsletter Email from a published article
Given the creation options modal is displayed for a selected article
When the user selects "Create newsletter email"
Then the Create Newsletter Email workflow should be opened
And the selected Guardian article should be imported into the Newsletter Email workflow
And the user should not need to manually copy and paste the article URL
Scenario: Create an App Alert from a published article
Given the creation options modal is displayed for a selected article
When the user selects "Create app alert"
Then the Create App Alert workflow should be opened
And the selected Guardian article should be imported into the App Alert workflow
And the user should not need to manually copy and paste the article URL
Scenario: Display an article without a thumbnail
Given a recently published article does not have an available thumbnail image
When the article is displayed
Then an appropriate no-image state should be shown
And the article should remain selectable for notification creation
Scenario: Display when the article list was last updated
Given the latest published content has been loaded
When the landing page is displayed
Then the time the article list was last updated should be shown
Scenario: Refresh the latest published content
Given the latest published content is displayed
When the user selects "Refresh"
Then the latest published articles should be retrieved
And the article list should be refreshed
And the articles should remain ordered by publication time
And the "Last updated" value should reflect the latest successful refresh
Scenario: Display an empty state
Given no recently published articles are available
When the latest published content section is displayed
Then an appropriate empty state should be shown
And the absence of articles should not prevent the rest of the landing page from being used
Scenario: Display the latest published content responsively
Given the user opens Dispatcher on a supported screen size
When the landing page is displayed
Then the latest published content should remain usable on large, medium and small layouts
And the article information and Create action should remain accessible
```
```gherkin
Feature: Handle errors when loading the latest published articles
Background:
Given the user has access to Dispatcher
Scenario: Latest published content cannot be loaded
Given the published-content service is unavailable
When the user opens the Dispatcher landing page
Then an error state should be displayed within the latest published content section
And the error should not prevent the rest of the landing page from being used
And the error state should not be presented as an empty article list
And the user should be able to retry loading the content
Scenario: Refreshing latest published content fails
Given published articles are already displayed
And the latest content cannot be retrieved
When the user selects "Refresh"
Then the user should be informed that the latest content could not be refreshed
And the previously loaded articles should not be replaced with misleading empty data
Scenario: One article contains incomplete information
Given one published article cannot provide all expected display information
When the latest published content is displayed
Then the incomplete article should not prevent other valid articles from being displayed
And missing information should not be presented in a misleading way
```
## Checklist
**Display latest published content**
- [ ] Show recent Guardian articles in most-recent-first order.
- [ ] Display headline, classification, published time and thumbnail/no-image state.
- [ ] Provide a Create action for each article.
**Add the creation options modal**
- [ ] Open the modal from an article's Create action.
- [ ] Offer Create newsletter email and Create app alert.
- [ ] Allow the modal to be cancelled without starting a workflow.
**Create notifications from the selected article**
- [ ] Carry the selected article into the Newsletter Email workflow.
- [ ] Carry the selected article into the App Alert workflow.
- [ ] Avoid requiring the editor to re-enter the article URL.
**Support refresh and status information**
- [ ] Display Last updated information.
- [ ] Refresh the published-content list on demand.
**Handle responsive, empty and error states**
- [ ] Support the large, medium and small layouts shown in the designs.
- [ ] Provide appropriate empty/error states without blocking the rest of Dispatcher.
## Out of scope
- Searching or filtering the latest published article list.
- Browsing older content beyond the latest content supplied to the landing page.
- Pagination of the latest published article list.
Contributor guide
No contributing guide indexed for this repository
Research direction
Start by locating the Dispatcher landing page and the published-content service, then compare the implementation with the linked Figma designs and acceptance scenarios. Trace the existing Newsletter Email and App Alert entry points to understand how a selected article should be carried into each workflow. Done means the latest-content section supports listing, ordering, creation actions, refresh, empty/error states, and responsive layouts without blocking the rest of the page.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- frontend
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 55/100