A full-stack Learning Management System built with React.js, Node.js, Express.js, MySQL, and Sequelize.
This platform supports Admin, Instructor, and Student roles with a dynamic permission system, course management, quizzes, enrollments, certificates and progress tracking.
- User Registration (Student / Instructor)
- Login with JWT Authentication
- Protected Routes (Frontend + Backend)
- Pending Approval System
- Admin Approval / Rejection with Remarks
- Suspended / Active User Control
- Permanent Super Admin Account
- Total Users
- Total Courses
- Total Enrollments
- Pending Registration Count
- Search Users
- Filter by Role / Status
- Approve / Reject Users
- Suspend / Reactivate Users
- Edit User Details
- Assign Roles
- View All Courses
- Approve / Reject Instructor Courses
- Unpublish Courses
- Delete Courses
- Total Courses
- Total Students
- Average Quiz Scores
- Create Course
- Edit Course
- Delete Course
- Submit for Review
- Pricing (Free / Paid)
- Add Multiple Lessons
- Lesson Ordering
- Free Preview Support
- Video URL Support
- Resource Attachments
- One Quiz per Course
- MCQ Questions
- Add / Edit / Delete Questions
- View Student Attempts
- Enrolled Courses
- Progress Tracking
- Resume Learning
- Browse Published Courses
- Search Courses
- Filter by Category / Difficulty
- Instant Enrollment (Free Courses)
- Track Lesson Completion
- Progress Bar
- Countdown Timer
- Auto Submit
- Score + Pass/Fail Result
- Attempt History
- Auto Generated After Passing Quiz
- Download as PDF
- Printable Certificate
- React.js
- React Router DOM
- Axios
- CSS
- Lucide React Icons
- Node.js
- Express.js
- Sequelize ORM
- MySQL
- JWT Authentication
- bcryptjs
Quix/
│── quix_frontend/
│ ├── src/
│ ├── public/
│
│── quix_backend/
│ ├── controllers/
│ ├── db/
│ ├── models/
│ ├── routes/
│ ├── middleware/
│ ├── scripts/
│
│── README.md
https://drive.google.com/file/d/1vsHAYakrSNM_TKSw7O4VL7eRG5UfKlHY/view?usp=sharing
git clone https://github.com/sanik4144/quix.git
cd quix
cd quix_backend
npm installCreate .env
PORT=3000
SQL_DATABASE=quix
SQL_USERNAME=anik
SQL_PASSWORD=4922
SQL_HOST=localhost
SQL_DIALECT=mysql
JWT_SECRET=quix_secret_key_123npm run devcd frontend
npm installCreate .env
VITE_API_URL=http://localhost:3000/apinpm run devEmail: admin@quix.com
Password: admin123Email: instructor1@quix.com
Password: instructor123Email: student1@quix.com
Password: student123Saifullah Anik