Skip to content

A single page full stack web application that can used as a feedback system for any group/organisation

Notifications You must be signed in to change notification settings

himanshukumar660/Course-Feedback-System

Repository files navigation

Feedback System

This is a single page web application that can used as a feedback system for any group/organisation. All the user actions are performed via the REST API at the client side using AJAX.

Features

  1. Students and Professors are able to create an account and log in. Password authentication is done through passport npm module.
  2. 3 roles are implemented with different administrative rights
    • Regular Student: Can rate and leave a comment for a course
    • Teacher/Professor: Can create his own courses and reply comments about owned courses
    • Admin: Can edit/delete all users, courses, comments, and reviews
  3. Reviews have:
    • A 5 star based rate
    • Date on which the review was made
    • Comment
  4. When a Student logs in he will see the course list ordered by rate average
  5. When an Teacher/Professor logs in he will see a course list of only the ones owned by him, and the reviews pending to reply (Teachers/Professors can reply the review once).
  6. Courses detailed view should have:
    • The overall average rating
    • The highest rated review
    • The lowest rated review
    • Last reviews with rate, comment, and reply
  7. Course list can be filtered by Rating
  8. Regex Search for all the courses available. Available to all the students, Teacher/Professsors and Admin.
  9. All the APIs are RESTful in nature.

Screenshots/GIFs

Student/Professor Registration

Student/Teacher Registration

Professor Dashboard

Student/Teacher Registration

Student Dashboard

Student/Teacher Registration

Admin Dashboard

Student/Teacher Registration

Security Features

  1. Each access to API is protected by several middleware layer that if the client should be made access to the resource.
  2. Each input by the user is protected from common Security vulnerabilities.
  3. Each input is sanitized both at the client side and server side to provide required level of protection from XSS, Cross-site scripting etc.

APIS list

The Following APIs can be called for registrations and login purposes. No Authentication is required to call these APIs.

  1. POST /user/register
  2. POST /user/login

The Following APIs can only be called once the user is authenticated. The APIS are secured through a channel of middlewares which check for all the requirements that must be satisfied before one can access the resource of the API.

  1. GET /
  2. GET /userInfo
  3. GET /outlet
  4. GET /outlet/outletId/:outletId
  5. GET /outlet/to_reply/:outletId
  6. GET /outlet/:userId
  7. GET /outlet/reviews/:outletId
  8. GET /users/
  9. GET /outlet/regex/:pattern
  10. GET /outlet/regex/user/:pattern
  11. POST /outlet/
  12. PUT /outlet/review/:outletId
  13. PUT /outlet/reply/:outletId/:reviewId
  14. PUT /users/change/:priority/:userId
  15. DELETE /outlet/:outletId
  16. DELETE /outlet/review/:outletId/:reviewId
  17. DELETE /users/:userId
  18. GET /user/logout

SetUp

To set up the development environment, you need to follow the following steps

  1. Download npm and nodeJs. Installation guide can be found here
  2. Download and install MongoDB on your system.

Running the Project

To run the project on local server, first navigate to the project directory in your filesystem.

  1. Now create a directory /data/db in the location where your project folder resides.
  2. Now run mongod --dbpath=./data/db from the current directory.
  3. Now run cd reviewsys, or go inside the project folder.
  4. Now run nodemon start in the terminal.
  5. Open localhost:3000 from your favourite browser.

About

A single page full stack web application that can used as a feedback system for any group/organisation

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published