Skip to content

#86erqa08y Implement Comprehensive Leitner Box Spaced Repetition System with UI Enhancements and Board Activity Tracking#26

Merged
navidshad merged 33 commits intodevfrom
CU-86erqa08y_Implementing-a-Leitner-Box-Review-System_Navid-Shad
Jan 30, 2026
Merged

#86erqa08y Implement Comprehensive Leitner Box Spaced Repetition System with UI Enhancements and Board Activity Tracking#26
navidshad merged 33 commits intodevfrom
CU-86erqa08y_Implementing-a-Leitner-Box-Review-System_Navid-Shad

Conversation

@navidshad
Copy link
Contributor

@navidshad navidshad commented Jan 30, 2026

📋 Summary

This PR delivers a full implementation of the Leitner Box spaced repetition system, including backend architecture, frontend components, and user preferences. Key features include configurable review intervals, daily limits, persistent board activities, and an improved notification system. The board page and Leitner settings UI have been overhauled for better aesthetics and usability. Additional improvements cover phrase picker enhancements, toggle components for preferences, and fixing various rendering and layout issues. Documentation and tests have been added or updated to support these changes, along with an e2e testing guide and authentication middleware for the board page.

🔗 Related Tasks

#86erqa08y - Implement Leitner Box Spaced Repetition System, Board Activity Tracking, and related UI improvements
#86erqa08y - Add configurable review intervals and daily limits in Leitner settings
#86erqa08y - Fix UI issues on board and LeitnerSettings components, including toggle and overlap problems
#86erqa08y - Add comprehensive testing for Leitner box service and BoardService
#86erqa08y - Enhance phrase picker modal, prevent auto-close, and add empty trigger slot
#86erqa08y - Implement schedule service and refine user context in Leitner system
#86erqa08y - Add engineering plan and documentation updates for Leitner Box system
#86erqa08y - Add authentication middleware and e2e testing guide for board page

📝 Additional Details

  • Removed the "Add New Phrases" button from the board's empty state for a cleaner interface.
  • Created reusable Toggle component to standardize UI controls across preferences and filters.
  • Refactored FlashCard.vue template to improve code readability.
  • Added persistent meta.isActive flag for board activities to track Leitner box reviews effectively.
  • Improved UX flow by swapping bundle selector and toggle components.
  • Fixed various UI bugs including toggle active colors, hour selector overlaps, and layout centering.
  • Synchronized phrase removal with Leitner system to maintain consistency.
  • Setup documentation download and conversion scripts on the server side for streamlined doc management.

📜 Commit List

  • f8b59a1 Remove the 'Add New Phrases' button from the board's empty state
  • f2edab4 refactor: Reformat FlashCard.vue template for improved readability by breaking long lines
  • 24b67fe feat: add configurable review interval to Leitner settings
  • b93f1cf feat: overhaul board page aesthetics and fix rendering issues
  • 861c3ac style: polish LeitnerSettings UI and fix icon rendering
  • 018bd5d fix: resolved HourSelector overlap issue
  • 3152be9 feat: implement refined Leitner notification system
  • faf73fb fix: clear toasted activity card after session completion
  • e257177 feat: Implement persistent board activities with meta.isActive for Leitner box reviews and add BoardService tests
  • a61c6e1 feat: Add Daily Limit configuration and enforcement
  • 4ec56e6 test: add comprehensive timing tests for Leitner box service, covering review scheduling, demotion, and quota enforcement
  • e57672b feat: Bring back the Total box input on the Leitner box setting section
  • 9a4acf2 fix: verify and optimize Leitner auto-entry in phrase triggers
  • ab1940e feat: Add an empty trigger slot to the LeitnerPhrasePicker Modal
  • d3eeb1e feat: use custom Toggle component for Auto-Entry in Preferences
  • addfbd8 style: swap bundle selector and toggle for better UX flow
  • 14502c4 fix: fix toggle active color and persist bundle selection when box filtering
  • 3ac08f4 feat: create reusable Toggle component and fix empty box filtering logic
  • e585404 feat: fix search input spacing and add box-only filter toggle
  • 52f651d feat: prevent phrase picker auto-close and defer state refresh until modal closure
  • 94da625 feat: implement phrase-to-box tracking and refactor picker to dataProvider.list
  • 707651e fix: refactor to content/gap row pattern for correct centering
  • 2bbf1dc feat: implement leitner box user preferences and settings ui
  • 3e2c975 docs: remove agent skill documentation for ClickUp task handling
  • dcca8b2 feat: Reorganize agent documentation by introducing a development skill, integrating lib-vue-components docs, and updating doc download paths with conditional markdown conversion
  • 789f22a feat: Add e2e testing guide and apply authentication middleware to the board page
  • 8f8f7bf feat: set up documentation download and conversion script in server/scripts
  • dcb92c4 feat: sync phrase removal and refine user context in Leitner system
  • 63ef0af feat: Implement Leitner System and Board Activity
  • e877a15 docs: update leitner plans for dynamic board and refactor sidebar
  • 8a99fb8 feat(schedule): implement schedule service and tests CU-86erqa08y
  • b4a806a feat: Implement Leitner Box Spaced Repetition System
  • 31c35d7 docs: Add engineering plan for Leitner Box Review System implementation, detailing backend architecture, logic, and frontend components

…plementation, detailing backend architecture, logic, and frontend components.
Server:
- Implement LeitnerService for managing spaced repetition logic (box movement, scheduling).
- Add database schemas for `leitner_system` and `review_bundle`.
- Add API functions: `get-review-bundle`, `submit-review-result`, `get-stats`, `update-settings`.
- Implement `generate-daily-bundles` for daily review generation.
- Service: Initialize user Leitner system on login (Auth Router).
- Data: Centralize database and collection configuration in [config.ts](cci:7://file:///Users/navid-shad/Projects/CodeBridger/learn-by-subtitle/dashboard-app/server/src/config.ts:0:0-0:0).
- Schedule: Integrate `node-schedule` for managing background jobs.

Frontend:
- Feature: Add 'Review' page to sidebar with Leitner box stats and Recent AI Lectures.
- Feature: Add 'Preferences' page for Leitner settings (Daily Limit, Total Boxes).
- Update: Enhance Flashcards component to support 'Leitner' mode with Known/Unknown feedback.
- Config: Add localization keys for Review dashboard.
…ll, integrating lib-vue-components docs, and updating doc download paths with conditional markdown conversion.
…ce, covering review scheduling, demotion, and quota enforcement.
…ctive` for Leitner box reviews and add `BoardService` tests.
Refined the Leitner box notification system with the following:
- Added a professional HourSelector.vue component for intuitive session time selection.
- Enforced a default 1-day review interval and 9AM session hour across backend and frontend.
- Implemented proactive job syncing in LeitnerService (with in-memory cache) to ensure existing users are correctly scheduled.
- Added detailed unit tests in notification.test.ts with human-readable explanations to verify registration and conditional dashboard toasting.
- Optimized logging in ScheduleService to reduce console noise.
Accomplishments:
- Refactored icon rendering to use native @codebridger/lib-vue-components Icons (IconCalendar, IconBolt, etc.) and supported iconify syntax for Solar icons.
- Improved vertical alignment of icons and labels using items-center and leading-none.
- Refined Box title badges (Entrance/Mature) to be smaller and more professional.
- Fixed vertical progression line gaps in the Box timeline.
- Refactored Buttons to use #icon slots for guaranteed icon visibility and alignment.
- Redesigned board page with a professional 'Mission Control' theme.
- Improved card aesthetics with glassmorphism, gradients, and smoothed geometry.
- Fixed rendering bug caused by animation class conflicts.
- Enhanced reliability with better error handling and safety checks.
@navidshad
Copy link
Contributor Author

@navidshad navidshad changed the title Cu 86erqa08y implementing a leitner box review system navid shad Implement Comprehensive Leitner Box Spaced Repetition System with UI Enhancements and Board Activity Tracking Jan 30, 2026
@navidshad navidshad changed the title Implement Comprehensive Leitner Box Spaced Repetition System with UI Enhancements and Board Activity Tracking #86erqa08y Implement Comprehensive Leitner Box Spaced Repetition System with UI Enhancements and Board Activity Tracking Jan 30, 2026
@navidshad navidshad merged commit 01d6033 into dev Jan 30, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant