Skip to content

Sasha-Malik/course-search

Repository files navigation

Course Search

Link : https://course-search-project.glitch.me/

Description

Course search is a real time web application that helps users pick the best courses suited for them. It does so by visualizing the courses based on diferent criteria such as workload, difficulty of exams, grading, content and professor reviews. Users can also post their own text reviews/ post queries as well as submit polls to alter the graphical visualizations. Users also have an added option of joining course specific study focus rooms.


Screen Shot 2022-11-13 at 8 58 20 PM

Design

The color palattes is composed of shades of purple which matches with the theme of NYU Abu Dhabi, to create a modern minimalistic design that eases the user to navigate and explore the website


Screen Shot 2022-11-13 at 9 01 58 PM

User Interaction

All mjors are displayed initially so better filter the courses. By clicking on the major, the courses under that mojor will be displayed.


Screen Shot 2022-12-17 at 7 41 57 PM

Users can rate the course based on difficulty, workload, exams, grading and the professor by submitting a poll. Poll Slider is a tool that allows the user to vote on different aspects of the courseb by moving the slider to vote with more precision. This vote gets reflected on the bar graph in real time.


Screen Shot 2022-11-13 at 9 04 48 PM

They can see the graphical visualization get altered as soon as the poll is submitted with the updated number of students who submitted the poll.


Screen Shot 2022-11-13 at 9 05 00 PM

Along with this users can also leave an anonymous text review of thier experience with the course / post their queries. Each review also contains the name of the professor specified by the user to reduce confusion.


Screen Shot 2022-12-17 at 7 38 27 PM

Tools and Technologies

  1. HTML,CSS and JS for front-end development
  2. NodeJS to create our server and glitch to host the server.
  3. Chart.js to draw charts and bar graph in the application.
  4. Socket.io for real time data exchange between server and clients.
  5. Nedb database to store and retrieve the data.
  6. P5LiveMedia for the creation of study rooms (audio & video).

Socket.io was used so that the comments are displayed in real time, making it streamlined for other users to reply to queries by other users. Meanwhile, get requests are used to fetch the data from the Nedb database when a user initially connects.

Idea and Motivation

  1. Tired of scrolling through facebook groups to find reviews for specific courses.
  2. Needed a way to visualize course statistics for streamlined decision making.
  3. Anynomous comments/reviews so that the users can openly share thier views about the courses/professors.
  4. A way to meet with classmates from various courses to collaborate together.

Key Challenges

  1. Working with a single page web application, this made it harder as the previous button on the browser would not return the user to the home page instead it would take them outside the application.
  2. There was an issue while setting up multiple pages, when a user goes to a different page their socket connection disconnects and they were just able to reconnect under a different connection.
  3. When the users are allowed to add courses, the user can add anything as a course even if it isn't one. This was done so that the admin does not have to keep checking if new courses have opened.

Next Steps

  1. A verification process for logging in.
  2. A way to moderate the comments and the process of addition of new courses.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published