Skip to content

Add an all-exercises-complete celebration screen #16

Description

@abhiksark

Part of the 0.3.0 adoption roadmap — Motivation/retention.

Why (adoption impact)

A payoff moment at the finish line makes the experience feel rewarding and shareable — a small but real driver of word-of-mouth (Rustlings' completion message is fondly remembered).

Current state

  • There's a per-topic "Topic 'X' complete." message (pylings/screens/track.py ~line 61).
  • There is no all-exercises-complete celebration when the learner finishes the entire curriculum.

Scope / acceptance criteria

  • When the last pending exercise is completed (overall completed == total), show a celebratory screen/message (ASCII art / congrats / next-steps: "star us, share, contribute").
  • Trigger only once at true 100% (use next_pending(...) is None across all exercises, pylings/core/state.py).
  • Keep it skippable; don't block quitting.
  • Optional: include a one-line shareable summary ("I finished all 292 pylings exercises 🎉").

Where to look

  • pylings/screens/track.py (completion handling), pylings/core/state.py (next_pending, completed), pylings/app.py, pylings/pylings.tcss.

Out of scope

  • Social-share image generation; a text line is enough.

Verify

  • With a near-complete state fixture, completing the final exercise shows the celebration exactly once.

Difficulty

enhancement · good first issue — contained; can mirror the existing topic-complete pattern.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions