Skip to content

mariamaged/Bachelor-Helper

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 

Repository files navigation

GUC Bachelor Thesis Helper

enter image description here

Motivation

  • I thought about creating this website for combining data related to the bachelor project from the different websites (the Student intranet and the MET Website) since the Student Intranet contains all the valid thesis list but without their respective descriptions, and to organize this data in several ways in order to help me get a full idea about all the thesis.
     
  • The data is collected using web scraping using the Puppeteer and Cheerio libraries in Node.js.

Note: Authentication credentials will only be inserted inside the environmental variables file (.env) and will be used by the htmnl and Puppeteer libraries for authentication.

  • Therefore, they only reside on your local machine and are not sent anywhere.
  • No data will be fetched unless authentication is successful.

Usage

  1. Step 1: Clone the repository.
  2. Step 2: Open the backend folder > then open the .env file and insert your username and password beside their respective variables that are already there. This is how the latter part of the file should look like.
    • Note: I tried to echo these two lines, and it didn't really work, so I do it manually.
USER_NAME=<insert_your_username>
PASSWORD=<insert_your_password>
  1. Step 3: Open a new terminal.
  2. Step 4: Navigate into the backend directory.
cd backend
  1. Step 5: Install the necessary dependencies found inside the package.json file.
npm install
  1. Step 6: Start the server, which scrapes the data and stores it on your machine as .json files.
    • Note: The console will print Done! when all data is fetched.
npm start
  1. Step 7: Open a new terminal (without closing the first one).
  2. Step 8: Navigate into the frontend directory.
cd frontend
  1. Step 9: Install the necessary dependencies found inside the package.json file.
npm install
  1. Step 10: Start the react app where the page will automatically open on your browser on port 3000. If it doesn't, type localhost:3000 on the url bar.
npm start

Functionalities

1. View list of thesis.
  • The thesis list contains information about the:
    1. Thesis name and supervisor as indicated in the Student Intranet.
    2. As well as the category, supervisor name (as written in MET, since some thesis topics have multiple supervisors) and assistant supervisor names as indicated in the MET website.
  • Any thesis that is not found in the MET website is highlighted in gray.

enter image description here


2. View thesis description by clicking on each expandable/collapsable table row.

enter image description here


3. View a separate list for all thesis that are not currently found in MET.

enter image description here


4. Sort both thesis list according to different criteria.
  1. Category Ascending.
  2. Category Descending.
  3. Supervisor Ascending.
  4. Supervisor Descending.
  5. Thesis Name Ascending.
  6. Thesis Name Descending.
  7. ID Ascending.
  8. ID Descending.

enter image description here


5. View thesis per category.

enter image description here


6. View thesis per supervisor.

enter image description here


7. View general statistics.
  1. Number of thesis per category.
  2. Number of thesis per supervisor.
  3. Total number of thesis.
  4. Number of thesis not found in MET.

enter image description here

enter image description here

enter image description here

About

Bachelor Thesis Helper Website

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published