nextcloud / nextcloud/academy

UX: continue where you left off

Open
#40 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
TypeScript
Stars
2
Forks
1
Avg merge
1d 2h
Merged PRs (30d)
7

Description

Part of the UX backlog. Raised on 2026-06-11 as "resume in progress" navigation.

Progress is already tracked well enough to support this — lib/progress.ts stores completedSections and lastSection per module, and as of 2026-07-29 lastSection records the section the reader is currently on, so a module reopens where they left off.

What is missing is the way in. Neither CatalogClient (homepage) nor LevelCatalogClient (level page) offers a "continue" affordance: grep for resume or continue in both returns nothing. A returning reader has to remember which track, which level and which module they were on, and click through three pages to get back.

Scope

  • Surface the most recently touched module as a direct link — "Continue: PHP Beginner, Module 4".
  • Decide where it lives: the homepage is the natural spot, since that is where people land.

Notes

getProgress() returns the whole store keyed by track/level/moduleId, so "most recent" needs either a timestamp per module (the store has no updatedAt today) or a single "last visited" pointer written on section change. The store is versioned (version: 2), so adding a field is a migration-friendly change.

Done when

A returning reader can get back to where they were in one click from the homepage.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with lib/progress.ts to understand completedSections, lastSection, getProgress(), and the versioned store, then inspect CatalogClient and LevelCatalogClient for the homepage and level navigation. Decide how the store records the most recently touched module and expose it on the homepage as a direct continue link. Done means a returning reader can reach their previous module from the homepage in one click.

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
Quiet
Clarity
Mostly clear
Newbie friendliness
55/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.