A full-stack web application for managing and collecting feedback on courses, with role-based access for students, professors, and admins.
- User authentication (JWT-based)
- Role-based dashboards (Admin, Professor, Student)
- Course listing, detail, and feedback submission
- Professors can reply to feedback
- Admins can manage users and courses
feedback-system/
client/ # React frontend
src/
components/
auth/ # Login, Register
courses/ # CourseList, CourseDetail
dashboard/ # AdminDashboard, ProfessorDashboard
Navbar.js
contexts/ # AuthContext.js
utils/ # axios.js
App.js
index.js
theme.js
public/
package.json
server/ # Node.js/Express backend
config/ # passport.js
middleware/ # auth.js
models/ # User.js, Course.js
routes/ # users.js, outlets.js
server.js
package.json
README.md
- Frontend: React, Material-UI, Axios, React Router
- Backend: Node.js, Express, MongoDB, Mongoose, Passport.js, JWT
- Node.js (v14+ recommended)
- MongoDB (local or Atlas)
git clone https://github.com/lankasreenaina/Course-Feedback-System.git
cd Course-Feedback-Systemcd client
npm installcd ../server
npm install- Create a
.envfile inserver/with:MONGODB_URI=mongodb://localhost:27017/feedback-system JWT_SECRET=your-secret-key
cd server
npm run devcd ../client
npm start- Visit
http://localhost:3000for the frontend. - Backend runs on
http://localhost:5000by default. - Register as a student, professor, or admin.
- Students can view courses and submit feedback.
- Professors can view their courses and reply to feedback.
- Admins can manage users and courses.
POST /user/register— Register a new user (student, professor, admin)POST /user/login— Login and receive JWT
GET /outlet— Get all courses (sorted by rating)GET /outlet/:userId— Get courses by professorGET /outlet/outletId/:outletId— Get course by IDGET /outlet/to_reply/:outletId— Get reviews pending reply (professor only)GET /outlet/regex/:pattern— Search courses by pattern
This project is licensed under the MIT License.