Skip to content

localhost-legend/procode-edu-pulse-lms

Β 
Β 

Repository files navigation

ProCode EduPulse

ProCode EduPulse

A Professional Learning Management System for Coding Education

HTML5 CSS3 JavaScript CodeMirror

License Status PRs Welcome


🎯 Overview

ProCode EduPulse transforms passive YouTube viewers into active students by providing a structured, interactive learning environment. Built entirely with Vanilla JavaScript β€” no frameworks, no build tools, just pure web fundamentals.

Why ProCode?

YouTube Alone ProCode EduPulse
Linear video playback Structured courses with progress tracking
No interactivity In-browser code editor with live preview
No assessment Quizzes + automated coding challenges
No personalization AI-powered hints & timestamped notes
No portfolio Auto-compiled project portfolio

Features

Core Features

  • YouTube Integration β€” Videos embedded alongside lesson notes, cheat sheets, and resources
  • Interactive Code Playground β€” CodeMirror 6 editor with syntax highlighting and live preview
  • Progress Tracking β€” Persistent progress bars, completion status, and quiz scores
  • Quizzes β€” Multiple-choice assessments with explanations and scoring
  • Coding Challenges β€” Automated DOM-based validation for hands-on practice

Elite Features

  • AI-Powered Hints β€” Context-aware clues via Gemini API (configurable)
  • Project Portfolio β€” Auto-compiled from completed challenges, downloadable as ZIP
  • Timestamped Notes β€” Personal notes linked to video timestamps, click to seek
  • Dark/Light Mode β€” Dev-friendly UI optimized for long coding sessions

Tech Stack

Layer Technology
Structure HTML5, Semantic Elements
Styling CSS3, Custom Properties, Glassmorphism
Logic Vanilla JavaScript (ES Modules)
Code Editor CodeMirror 6 (via ESM CDN)
Video YouTube IFrame API
AI Hints Google Gemini API
ZIP Download JSZip (via ESM CDN)
Persistence localStorage

Project Structure

procode-edu-pulse-lms/
β”œβ”€β”€ index.html                    # Main entry point (SPA)
β”œβ”€β”€ README.md
β”œβ”€β”€ .gitignore
β”œβ”€β”€ logo.png                      # Brand logo
β”œβ”€β”€ html.png                      # Course thumbnail
β”‚
β”œβ”€β”€ css/
β”‚   β”œβ”€β”€ variables.css             # Design tokens & themes
β”‚   β”œβ”€β”€ global.css                # Reset, typography, utilities
β”‚   β”œβ”€β”€ components.css            # Buttons, cards, modals, badges
β”‚   β”œβ”€β”€ navbar.css                # Navigation bar
β”‚   β”œβ”€β”€ landing.css               # Landing page styles
β”‚   └── lesson.css                # Lesson page styles
β”‚
β”œβ”€β”€ js/
β”‚   β”œβ”€β”€ app.js                    # Router, page renderers, bootstrap
β”‚   β”œβ”€β”€ components/
β”‚   β”‚   β”œβ”€β”€ navbar.js             # Navigation component
β”‚   β”‚   β”œβ”€β”€ sidebar.js            # Course sidebar
β”‚   β”‚   β”œβ”€β”€ video-player.js       # YouTube embed controller
β”‚   β”‚   β”œβ”€β”€ code-editor.js        # CodeMirror integration
β”‚   β”‚   β”œβ”€β”€ quiz.js               # Quiz engine
β”‚   β”‚   β”œβ”€β”€ challenge.js          # Coding challenge validator
β”‚   β”‚   β”œβ”€β”€ notes.js              # Timestamped notes
β”‚   β”‚   β”œβ”€β”€ portfolio.js          # Portfolio builder
β”‚   β”‚   β”œβ”€β”€ progress-bar.js       # Progress bar
β”‚   β”‚   └── theme-toggle.js       # Dark/light mode
β”‚   β”œβ”€β”€ services/
β”‚   β”‚   β”œβ”€β”€ storage.js            # localStorage persistence
β”‚   β”‚   β”œβ”€β”€ validation.js         # Code validation engine
β”‚   β”‚   └── ai-service.js         # Gemini AI integration
β”‚   └── utils/
β”‚       β”œβ”€β”€ dom.js                # DOM helpers, toast, animations
β”‚       └── router.js             # Hash-based SPA router
β”‚
└── data/
    β”œβ”€β”€ courses.json              # Course catalog
    β”œβ”€β”€ lessons.json              # Lesson content & metadata
    β”œβ”€β”€ quizzes.json              # Quiz questions
    └── challenges.json           # Coding challenges & validators

πŸš€ Getting Started

Prerequisites

  • A modern web browser (Chrome, Firefox, Edge, Safari)
  • A local dev server (e.g., VS Code Live Server extension)

Installation

# Clone the repository
git clone https://github.com/soghayarmahmoud/procode-edu-pulse-lms.git

# Navigate to the project
cd procode-edu-pulse-lms

# Open with Live Server (VS Code)
# Right-click index.html β†’ "Open with Live Server"

# Or use any static server
npx serve .

AI Hints Setup (Optional)

  1. Get a Google Gemini API key
  2. Go to Profile β†’ Settings β†’ AI Hints
  3. Paste your API key and save

πŸ—ΊοΈ Roadmap

Phase 1: MVP βœ…

  • Landing page with course catalog
  • Lesson page with video + code editor
  • Quiz system with scoring
  • Coding challenges with validation
  • Progress tracking (localStorage)
  • Dark/Light mode

Phase 2: Enhanced Features βœ…

  • AI-powered hint system
  • Timestamped note-taking
  • Project portfolio with ZIP download
  • Cheat sheets and resources
  • Mobile responsive design

Phase 3: Future Enhancements

  • User authentication (Supabase/Firebase)
  • Cloud-based progress sync
  • Discussion forums per lesson
  • Leaderboard & achievements
  • More courses (React, Node.js, Python)
  • Instructor dashboard
  • Certificate generation

πŸ“ Database Schema (localStorage)

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”     β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚   procode_profile    β”‚     β”‚  procode_progress    β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€     β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ name: string         β”‚     β”‚ [courseId]: {         β”‚
β”‚ avatar: string       β”‚     β”‚   completedLessons[] β”‚
β”‚ joinDate: ISO date   β”‚     β”‚   quizScores: {}     β”‚
β”‚ theme: dark|light    β”‚     β”‚   lastAccessed: date β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜     β”‚ }                    β”‚
                            β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”     β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚   procode_notes      β”‚     β”‚ procode_submissions  β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€     β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ [lessonId]: [{       β”‚     β”‚ [challengeId]: {     β”‚
β”‚   id, timestamp,     β”‚     β”‚   code: string       β”‚
β”‚   text, createdAt    β”‚     β”‚   passed: boolean    β”‚
β”‚ }]                   β”‚     β”‚   submittedAt: date  β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜     β”‚ }                    β”‚
                            β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

πŸ§ͺ Code Validation Logic

The validation engine supports multiple rule types:

Rule Type Description Example
dom-query Check if a CSS selector exists in DOM "selector": "h1"
dom-count Count elements matching selector "selector": "ul > li", "count": 3
text-contains Check if code contains text "text": "Hello World"
regex Pattern match with regex "pattern": "<h1>.*</h1>"
css-property Verify CSS property value "property": "color", "value": "red"
attribute Check element attributes "selector": "a", "attribute": "href"

🀝 Contributing

Contributions are welcome! Here's how:

  1. Fork the repository
  2. Create a feature branch: git checkout -b feature/amazing-feature
  3. Commit your changes: git commit -m 'Add amazing feature'
  4. Push to the branch: git push origin feature/amazing-feature
  5. Open a Pull Request

Adding New Courses

  1. Add course entry to data/courses.json
  2. Add lessons to data/lessons.json
  3. Add quizzes to data/quizzes.json
  4. Add challenges to data/challenges.json

πŸ“„ License

This project is licensed under the MIT License β€” see the LICENSE file for details.


Built with ❀️ by soghayarmahmoud

About

A full-stack interactive learning platform designed for tech YouTubers. Features include an integrated code playground, automated quizzes, and student progress tracking

Resources

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages

  • JavaScript 73.2%
  • CSS 24.0%
  • TypeScript 1.3%
  • Other 1.5%