A React web app where students register, enroll in courses, watch module videos and submit feedback. Admins track registered users, course enrolments and feedback reviews from a dashboard.
Built during my internship (2024).
Live Demo: feedback-management-systems.netlify.app
- Course catalogue with course detail pages
- Registration and login with live form validation
- Smart enrol flow:
- Logged-in user clicks Enroll Now and goes straight to the course videos
- New visitor gets a modal to Register or Login first
- Duplicate email check, wrong password and "not registered" messages
- Video learning module with Previous / Next navigation
- Emoji-based feedback form (Worst / Better / Best), 10 questions
- Admin dashboard: registered users, feedback reviews, course enrolment count
- Data saved in the browser with localStorage (stays after refresh)
| Area | Tools |
|---|---|
| Frontend | React (Create React App), JavaScript |
| Routing | React Router v6 |
| State | Redux (users, login, enrolments), Context API (feedback) |
| UI | React-Bootstrap, Bootstrap, Material UI, Font Awesome, CSS |
git clone https://github.com/<your-username>/Course-Feedback-Management-System.git
cd Course-Feedback-Management-System
npm install
npm startRuns at http://localhost:3000.
If a package is missing:
npm i react-router-dom react-redux redux react-bootstrap bootstrap @mui/material @mui/icons-material @emotion/react @emotion/styled @fortawesome/react-fontawesome @fortawesome/fontawesome-svg-core @fortawesome/free-solid-svg-icons @fortawesome/fontawesome-free react-modalProduction build:
npm run build| Role | Password | |
|---|---|---|
| Admin | joel@admin.in | Admin1234 |
| Student | Register a new account in the app | your own password |
Course-Feedback-Management-System/
├── public/
│ └── _redirects # Netlify: fixes 404 on page refresh
├── src/
│ ├── Image/ # Logos, course and profile images
│ ├── Videos/ # Module videos
│ │
│ ├── index.js # Entry point (Redux + Context providers)
│ ├── App.js # All routes
│ │
│ ├── New.js # Home page: header, about, feedback cards, footer
│ ├── Header_Course.js # Navbar + login modal
│ ├── Card.js # Course cards
│ ├── Course.js # Course details + Enroll Now
│ ├── Register.js # Registration form
│ ├── LoginForm.js # Login form (used in enrol modal)
│ ├── Module.js # Video learning module
│ ├── Student_Feedback.js # Feedback form
│ ├── questions.js # Feedback questions
│ │
│ ├── Admin.js # Admin dashboard
│ ├── StaticFeedbackReviews.js# Feedback reviews table (admin)
│ │
│ ├── store.js # Redux store (saved to localStorage)
│ ├── actions.js # Redux actions
│ ├── userReducer.js # Redux reducer
│ ├── FeedbackContext.js # Context API for feedback
│ │
│ ├── User.css, Course.css, index.css, StudentFeedback.css
│ └── reportWebVitals.js, setupTests.js, App.test.js # CRA defaults
└── package.json
- Register: user is saved in Redux and localStorage
- Login: email and password are checked against saved users
- Enroll Now: logged-in goes to
/module, otherwise Register/Login modal opens - After the module, the student submits feedback
- Admin logs in and sees users, enrolments and feedback
- Frontend-only: no backend or database, data lives in localStorage
- Login is demo level (checked on the client, passwords not encrypted)
- Not fully optimised for mobile screens
- All course pages show the Python course content
- Backend with Node.js, Express and MongoDB
- Secure authentication (JWT + password hashing)
- Responsive design
- Separate content for each course
- Feedback charts in the admin dashboard
Joel Franklin J