feat: add interactive progress tracking dashboard and time logs (#202)#203
Open
0rbiT-ai wants to merge 1 commit into
Open
feat: add interactive progress tracking dashboard and time logs (#202)#2030rbiT-ai wants to merge 1 commit into
0rbiT-ai wants to merge 1 commit into
Conversation
…karscripts#202) - Add progressTracker.ts utility to manage local storage progress data, calculate levels/XP, and track weekly/monthly study duration. - Add UserTracker client component that records page visits and counts active study time using focus-detection (tab focus). - Add floating study assistant widget on semester pages for toggling chapter completions and checking subject progress. - Add /dashboard route with user profile levels, an SVG-based weekly study duration bar chart, dynamic checklists, and gamified badges. - Connect quiz completions in QuizClient.tsx to automatically mark topics completed and award achievements. - Integrate dashboard navigation links into desktop and mobile menus in navbar.tsx.
Contributor
|
@0rbiT-ai is attempting to deploy a commit to the PushkarScripts Team on Vercel. A member of the Team first needs to authorize it. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Related Issue
Fixes #202
Description
This PR implements an interactive progress-tracking dashboard for openCSE. Since the platform operates as a static client-side resources hub, the tracking system runs entirely client-side using
localStorage.Key additions include:
lib/progressTracker.ts: The state engine mapping the 12 available subjects/chapters, logging page view history, tracking cumulative study duration, managing leveling/XP systems, and checking rewards/badges.UserTracker.tsx: A client listener that records page views and counts study duration (usingvisibilityStateto avoid tracking idle tab time). It renders a collapsible floating widget in the bottom-left of study pages showing course progress and a quick checkbox to toggle completion./dashboard): A premium UI styled in the openCSE brown/tan scheme containing user profile level info, custom SVG-based weekly study analytics logs, recently opened shortcuts, collapsible subject checklists, and a badges shelf.layout.tsx, adds the dashboard to mobile/desktop navigation menus innavbar.tsx, and links chapter quiz completions to record final grades.Type of Change
Screenshots / Demo
How Has This Been Tested?
npx tsc --noEmit.npm run build.Checklist
AI Usage
I have not used AI tools for this contribution
I have used AI tools (ChatGPT, Copilot, Claude, etc.) and I have reviewed, verified, and understood all generated code/content before submitting this PR
If AI tools were used, briefly explain how:
Used the Antigravity developer agent to draft the state engine in
lib/progressTracker.ts, write code for the custom SVG stats chart and checklist trees in the dashboard page, build the floating controller widget, and hook up layout and quiz file integrations.Additional Notes
All tracking data is scoped strictly to the client's local storage namespace (
opencse_progress_v1), which keeps user study stats private and offline.