Skip to content

Feature Request: Add a User Profile System for Personalized Learning Experience #261

@weiwei-gitch

Description

@weiwei-gitch

Currently, openCSE has no user account or profile system. Features like Bookmarks and Quiz exist in the navbar, but without a profile, these are either stored locally or not persisted at all. Users have no way to:

  • Track their learning progress across subjects
  • Save and sync their bookmarks across devices
  • View their quiz history and scores
  • Personalize their experience on the platform

This is a significant gap for a platform aimed at CSE learners who return repeatedly to study different subjects over time.

Feature Description
Add a User Profile System that allows users to sign up, log in, and maintain a personal profile on openCSE — enabling persistent bookmarks, quiz tracking, progress monitoring, and a personalized dashboard.

Proposed Solution

1. 🔐 Authentication

  • Add Sign Up / Log In options to the navbar (replacing or alongside the current items)
  • Support:
    • Email & password registration
    • OAuth login via Google (most accessible for students)
  • Secure session management with JWT or cookie-based auth

2. 👤 Profile Page (/profile)

Each user should have a profile page containing:

  • Display Name and Avatar (upload or choose from defaults)
  • Branch / Semester — optional fields to personalize subject recommendations
  • Joined Date
  • Edit Profile option

3. 📚 Learning Progress Tracker

  • Show which subjects the user has visited or marked as studied
  • Progress bar per subject (e.g. "3 of 8 topics read")
  • A "Continue Learning" section on the profile showing recently visited subjects

4. 🔖 Synced Bookmarks

  • Currently the Bookmarks navbar item likely uses localStorage — tie it to the user's account so bookmarks persist across devices and sessions
  • Display all saved bookmarks on the profile page with quick-access links

5. 🧠 Quiz History

  • Store quiz attempts, scores, and dates per user
  • Show a Quiz Performance summary on the profile: total attempts, average score, best score
  • Allow users to retry quizzes and track improvement over time

6. 🎨 Design Consistency

  • Match openCSE's existing aesthetic — dark brown navbar, parchment/kraft paper background tones, bold serif-style typography
  • Profile page should feel warm and academic, consistent with the platform's open-textbook identity

Why This Matters

  • Makes Bookmarks and Quiz features truly useful by persisting data beyond a single session
  • Encourages long-term engagement — students are more likely to return if they can track progress
  • Gives contributors and sponsors a clearer picture of the platform's active user base
  • A profile system is a foundational feature expected on any serious learning platform
  • Aligns with platforms like Khan Academy, GeeksForGeeks, and freeCodeCamp which all offer user profiles with progress tracking

Acceptance Criteria

  • Users can sign up and log in via email/password or Google OAuth
  • A /profile page is accessible after login showing name, avatar, and stats
  • Bookmarks are tied to the user account and synced across devices
  • Quiz scores and history are stored and displayed on the profile
  • Subject progress is tracked and shown visually
  • Navbar updates to show profile avatar / name when logged in
  • Users can log out securely
  • All profile pages are fully responsive on mobile and desktop

I would like to add this enhancement
Could you please assign this issue to me
ThankYou

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions