Sprint 1 — Timeline Route & Chronological Layout #11

Closed
opened 2026-05-19 05:04:49 +00:00 by foravo_admin · 0 comments
Owner

Imported from GitHub issue conorgregson/worldbuilding-codex#16.

Source: https://github.com/conorgregson/worldbuilding-codex/issues/16
Original author: @conorgregson
Original state: closed


Goal

Create the foundation for the v1.2 Timeline Explorer by adding a dedicated world timeline route and rendering existing timeline events in a focused chronological layout.

This sprint should make timeline events easier to access and browse without introducing search/filter controls yet.


Context

Worldbuilding Codex already supports timeline events as part of the core worldbuilding workflow.

For v1.2, timeline events need a dedicated browsing experience so users can view a world’s history, lore events, and chronology in one focused place.

Sprint 1 should establish the route, page structure, data loading behavior, and chronological display foundation that later sprints can build on.


Scope

Add dedicated world timeline route

  • Add a focused timeline page for a single world.
  • Route should be world-specific.
  • Route should be protected behind authentication.
  • Route should remain safe after browser refresh.
  • Add navigation from the world detail area to the timeline page.

Suggested route shape:

/worlds/:worldId/timeline

Fetch and display timeline events

  • Load timeline events for the selected world.
  • Display existing event data in a readable page layout.
  • Keep event creation/editing workflows unchanged unless small navigation updates are needed.

Suggested displayed fields:

  • Event title
  • Date label
  • Sort year, if useful
  • Summary
  • Description preview or full description
  • Basic participant count or placeholder, if participant display is deferred to Sprint 3

Improve chronological event layout

  • Sort events consistently.
  • Prioritize sort year, then sort index, then date label where available.
  • Ensure events with incomplete date data still render gracefully.

Suggested ordering:

sortYear asc
sortIndex asc
dateLabel asc
createdAt or updatedAt fallback

Add base page states

Include basic states for:

  • Loading
  • Error
  • Empty world timeline
  • Missing, invalid, or unauthorized world access

Acceptance Criteria

  • Users can open a dedicated timeline page for a world.
  • Timeline route is protected behind authentication.
  • Timeline route loads correctly after browser refresh.
  • Timeline page only shows events for the selected world.
  • Missing, invalid, or unauthorized world IDs are handled safely.
  • Existing timeline events render on the dedicated page.
  • Events are ordered by sort year, sort index, and date label where available.
  • Events with incomplete date data still render gracefully.
  • Loading state appears while data is being fetched.
  • Error state appears when timeline data cannot load.
  • Empty state appears when the world has no timeline events.
  • Layout is readable on desktop and mobile.

Final Verification Checklist

  • Log in successfully.
  • Open a world with timeline events.
  • Navigate to the dedicated timeline page.
  • Confirm timeline events render.
  • Confirm timeline events belong to the selected world.
  • Confirm events are ordered chronologically.
  • Refresh the timeline route directly.
  • Confirm the page still loads correctly after refresh.
  • Open a world with no events.
  • Confirm the empty timeline state appears.
  • Test an invalid or inaccessible world route.
  • Confirm route protection still works.
  • Test desktop layout.
  • Test mobile/narrow layout.
  • Confirm no major console errors appear.

Out of Scope

  • Timeline event search.
  • Timeline event filters.
  • URL query state for timeline controls.
  • Full participant chip/list rendering.
  • Participant role label polish.
  • Relationship graph work.
  • Import/export work.
  • Public sharing work.
  • Advanced fictional calendar logic.
Imported from GitHub issue `conorgregson/worldbuilding-codex#16`. Source: https://github.com/conorgregson/worldbuilding-codex/issues/16 Original author: @conorgregson Original state: closed <!-- foravo:github-issue:conorgregson/worldbuilding-codex#16 --> --- ## Goal Create the foundation for the v1.2 Timeline Explorer by adding a dedicated world timeline route and rendering existing timeline events in a focused chronological layout. This sprint should make timeline events easier to access and browse without introducing search/filter controls yet. --- ## Context Worldbuilding Codex already supports timeline events as part of the core worldbuilding workflow. For v1.2, timeline events need a dedicated browsing experience so users can view a world’s history, lore events, and chronology in one focused place. Sprint 1 should establish the route, page structure, data loading behavior, and chronological display foundation that later sprints can build on. --- ## Scope ### Add dedicated world timeline route - Add a focused timeline page for a single world. - Route should be world-specific. - Route should be protected behind authentication. - Route should remain safe after browser refresh. - Add navigation from the world detail area to the timeline page. Suggested route shape: ```txt /worlds/:worldId/timeline ``` ### Fetch and display timeline events - Load timeline events for the selected world. - Display existing event data in a readable page layout. - Keep event creation/editing workflows unchanged unless small navigation updates are needed. Suggested displayed fields: - Event title - Date label - Sort year, if useful - Summary - Description preview or full description - Basic participant count or placeholder, if participant display is deferred to Sprint 3 ### Improve chronological event layout - Sort events consistently. - Prioritize sort year, then sort index, then date label where available. - Ensure events with incomplete date data still render gracefully. Suggested ordering: ```txt sortYear asc sortIndex asc dateLabel asc createdAt or updatedAt fallback ``` ### Add base page states Include basic states for: - Loading - Error - Empty world timeline - Missing, invalid, or unauthorized world access --- ## Acceptance Criteria - [x] Users can open a dedicated timeline page for a world. - [x] Timeline route is protected behind authentication. - [x] Timeline route loads correctly after browser refresh. - [x] Timeline page only shows events for the selected world. - [x] Missing, invalid, or unauthorized world IDs are handled safely. - [x] Existing timeline events render on the dedicated page. - [x] Events are ordered by sort year, sort index, and date label where available. - [x] Events with incomplete date data still render gracefully. - [x] Loading state appears while data is being fetched. - [x] Error state appears when timeline data cannot load. - [x] Empty state appears when the world has no timeline events. - [x] Layout is readable on desktop and mobile. --- ## Final Verification Checklist - [x] Log in successfully. - [x] Open a world with timeline events. - [x] Navigate to the dedicated timeline page. - [x] Confirm timeline events render. - [x] Confirm timeline events belong to the selected world. - [x] Confirm events are ordered chronologically. - [x] Refresh the timeline route directly. - [x] Confirm the page still loads correctly after refresh. - [x] Open a world with no events. - [x] Confirm the empty timeline state appears. - [x] Test an invalid or inaccessible world route. - [x] Confirm route protection still works. - [x] Test desktop layout. - [x] Test mobile/narrow layout. - [x] Confirm no major console errors appear. --- Out of Scope - Timeline event search. - Timeline event filters. - URL query state for timeline controls. - Full participant chip/list rendering. - Participant role label polish. - Relationship graph work. - Import/export work. - Public sharing work. - Advanced fictional calendar logic.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
foravo/milestone-proof-2-20260519050439#11
No description provided.