guardian / guardian/notifications-tooling

US-43 — Present the latest published articles on the landing page

Open
#577 0 comments 0 reactions 0 assignees View on GitHub
. landing page feature should
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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.