An app to help students choose suitable courses for them. Users can browse and search for courses, view detailed information on courses (scraped from the university website), rate courses and read the feedback on those courses given by other users.
We are using the MERN stack as our main architecture:
- Frontend : React + Material UI
- Backend : Node.js (Express.js)
- Database : MongoDB
- Deployment : Heroku
- Data: Scraping Tool from ELAS (https://github.com/ude-soco/ELAS)
Name of team: SmartFinder
- William Kana Tsoplefack
- Fan Ouyang
- Yasmine Taha Mokhtar
- Julius Tietenberg
- Lukas Holtbrink
In the current version, when registering the email it has to be the an email address of the University of Duisburg-Essen. That means, the email suffix must contain "uni-due.de", such as in course-guide@uni-due.de
- Search for courses based on course name and professor name
- Sort courses by average rating score
- Add course to your dashboard
- View detailed course information
- View other students' ratings and comments on the courses
- Add ratings and comments to the courses
- Link to the university website
- Edit your personal information
- Access your course selection
- Remove added courses
- Rate courses based on four dimensions
- Add a short comment
-
Install NodeJS on your machine.
-
Open the Frontend Folder in your Terminal and run the commands:
yarn install yarn start
-
Open the local development server (http://localhost:3000/).
-
You can now test the app, the backend is fully deployed (https://course-guide-ude-server.herokuapp.com/).
-
(Opt.) Use Ctrl+C to terminate the server.
Use the following link to view the deployed project on Heroku: https://course-guide-ude-frontend.herokuapp.com/
- Make sure you have created the file ".env" and fill up with the variable "ATLAS_URI" and also the "TOKEN_SECRET". Put this file inside backend folder
- Run the command: node server.js
- XXX/user/login
- XXX/user/register
- XXX/course/course_detail?id=x
- XXX/course/search (to get all the course)
- XXX/course/search?page=0&size=5&course_name=x&prof_name=y&sort=desc (filter by courses)
- XXX/ratings/add?id_course=x (to rating)
- XXX/ratings/ratings_by_ic_course?id_course=x&page=y&size=z (to get all ratings by one course_id, y: page number and z: the number of items)
- XXX/user/dashboard/account (to get user profile infos)
- XXX/user/dashboard/account_update (to update user profile)
- XXX/dashboard/add?course_id=x (to a selected course from home page to your dashboard: with x the course id)
- XXX/dashboard/remove?course_id=x (remove a selected course from your dashboard: with x the course id)
- XXX/dashboard/my-courses (to get courses related to the user logged)