Draft
feat: implement EduScale online learning platform MVP#1
Conversation
- Backend: Node.js + Express + SQLite (better-sqlite3) - JWT auth with bcryptjs (register, login, /me) - Courses CRUD with search/category filter - Video upload and Range-request streaming - Enrollment management with progress tracking - Assignments with file submission and grading - Discussion threads with replies - Announcements per course - Quizzes with auto-grading - PDF certificate generation (pdfkit + uuid) - Admin dashboard (user management, stats) - Multer for file uploads (videos + files) - Frontend: React 18 + Vite + React Router v6 - AuthContext with localStorage JWT persistence - Axios instance with auth interceptor - Home: course catalog with search/filter - Login & Register (with role selection) - CourseDetail: sections, videos, discussions, announcements tabs - VideoPlayer: HTML5 video, Range streaming, progress tracking, speed control - StudentDashboard: enrollments + progress bars + upcoming assignments - InstructorDashboard: course/section/video/assignment/quiz management - AdminDashboard: user table with role changes + stats - Certificates: list and download PDF certificates - Responsive CSS with CSS variables (indigo theme) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Co-authored-by: Gabru44 <150784667+Gabru44@users.noreply.github.com>
- Auth endpoints (login/register): 30 req/15min - All other API endpoints: 300 req/15min - Uses express-rate-limit with standardHeaders Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Co-authored-by: Gabru44 <150784667+Gabru44@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Co-authored-by: Gabru44 <150784667+Gabru44@users.noreply.github.com>
- Remove hardcoded JWT_SECRET fallback; require env var in both auth.js and middleware/auth.js - Fix potential ReDoS in email validation; replace regex with safe indexOf-based check - Add named constants MAX_VIDEO_SIZE_BYTES and MAX_ASSIGNMENT_FILE_SIZE_BYTES - Add error logging in VideoPlayer saveProgress catch block - Add error logging in InstructorDashboard fetchCourses catch block Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Co-authored-by: Gabru44 <150784667+Gabru44@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Co-authored-by: Gabru44 <150784667+Gabru44@users.noreply.github.com>
Agent-Logs-Url: https://github.com/Gabru44/Edus/sessions/3cc0ab1b-7a12-4358-8e13-9bc049280552 Co-authored-by: Gabru44 <150784667+Gabru44@users.noreply.github.com>
Agent-Logs-Url: https://github.com/Gabru44/Edus/sessions/3cc0ab1b-7a12-4358-8e13-9bc049280552 Co-authored-by: Gabru44 <150784667+Gabru44@users.noreply.github.com>
Agent-Logs-Url: https://github.com/Gabru44/Edus/sessions/3cc0ab1b-7a12-4358-8e13-9bc049280552 Co-authored-by: Gabru44 <150784667+Gabru44@users.noreply.github.com>
Copilot
AI
changed the title
[WIP] Add user management features for EduScale project
feat: implement EduScale online learning platform MVP
Apr 16, 2026
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.
Builds the EduScale full-stack online learning platform from scratch — the repo previously contained only a blank README. Covers all three phases: user auth + course CRUD + video streaming (Phase 1), assignments/grading + discussions + progress tracking (Phase 2), and PDF certificates + quiz auto-grading (Phase 3).
Backend — Node.js + Express + SQLite (
/backend)courses— CRUD + sections, search/category filter, draft/published lifecyclevideos— multipart upload via multer, HTTP Range streaming, per-user progress trackingassignments— create/submit/grade with file attachment supportquizzes— question bank, auto-graded attempt scoringcertificates— PDF generation (pdfkit) gated on 100% course completionadmin— user list, role management, platform statsFrontend — React 18 + Vite (
/frontend)Authorizationheader globallySecurity
multerpinned to2.1.1(was1.4.5-lts.2) — resolves 7 DoS CVEs (uncontrolled recursion, resource exhaustion, unclosed stream leaks, malformed request handling)JWT_SECRETenv var is absentScreenshots
Course Catalog
Instructor Dashboard
Course Detail
Student Dashboard
Original prompt