Skip to content

feat: add interactive progress tracking dashboard and time logs (#202)#203

Open
0rbiT-ai wants to merge 1 commit into
pushkarscripts:mainfrom
0rbiT-ai:feature/track-progress-dashboard
Open

feat: add interactive progress tracking dashboard and time logs (#202)#203
0rbiT-ai wants to merge 1 commit into
pushkarscripts:mainfrom
0rbiT-ai:feature/track-progress-dashboard

Conversation

@0rbiT-ai
Copy link
Copy Markdown

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 (using visibilityState to 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 Page (/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.
  • Integrations: Mounts the tracker globally in layout.tsx, adds the dashboard to mobile/desktop navigation menus in navbar.tsx, and links chapter quiz completions to record final grades.

Type of Change

  • Bug fix
  • New feature
  • Documentation update
  • UI/UX improvement
  • Refactor

Screenshots / Demo

localhost_3000_dashboard

How Has This Been Tested?

  • Verified complete TypeScript type safety with no compiler issues by running npx tsc --noEmit.
  • Successfully compiled the Next.js production bundle using npm run build.
  • Manually tested route visitor logs, background active heartbeat tracking, chapter checkboxes toggling, and quiz completion score updates.

Checklist

  • My code follows the project structure and conventions
  • I have tested the changes locally
  • I have linked the related issue properly
  • I have added screenshots where applicable
  • No existing functionality was broken

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.

…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.
@vercel
Copy link
Copy Markdown
Contributor

vercel Bot commented May 28, 2026

@0rbiT-ai is attempting to deploy a commit to the PushkarScripts Team on Vercel.

A member of the Team first needs to authorize it.

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.

Unique dashboard to track progress

1 participant