Giter Site home page Giter Site logo

mariebexte / e3_selector Goto Github PK

View Code? Open in Web Editor NEW
1.0 3.0 1.0 23.28 MB

An application to manage E3 courses offered by the University of Duisburg-Essen

Home Page: https://mariebexte.github.io/E3_Selector

Java 16.56% HTML 16.25% JavaScript 62.21% CSS 4.97%
visualizations students filter university courses course-management

e3_selector's Introduction

E3 Selector

This project was developed as part of the Learning Analytics and Visual Analytics (LAVA) lab at the University of Duisburg-Essen lead by Prof. Dr. Mohamed Amine Chatti and Dr. Arham Muslim.

It presents a solution for a more easy selection of E3 courses, which are a special course catalog of the University of Duisburg-Essen from which every Bachelor student has to complete some. Before this project these courses could only be viewed as a list and it was not possible to filter them. This shall be fixed by offering the application developed here. It aims to improve course selection in three steps:

  • First, the user has to provide some basic information, which allows for all courses irrelevant to him/her to be filtered out.
  • Second, the user can browse the remaining courses, filter and select those that seem interesting.
  • Third, a concise table view of the selected courses is combined with a visual representation of the student's timetable as wells as a radar chart displaying course ratings.

Screenshots of the visualizations are provided below. As of now, the application only includes Bachelor programs of the Faculty of Engineering.

Data Collection

The course data used within this project was crawled from https://campus.uni-due.de/lsf using a maven project included in this repository. It uses jsoup (v1.12.1) to crawl the data. The project also includes code to process the .csv-file resulting from the crawling process into a JSON file, which is simplified by including Apache Commons CSV (v.1.7). The resulting course data was combined with course ratings manually collected from https://www.meinprof.de.

Libraries

The application uses HTML, JavaScript and CSS and makes use of the following libraries:

Some D3 elements were inspired by other projects:

  • The tree layout used in the course-tree-page of this project was derived from this project (released under the MIT License)
  • The filtering slider used in the course-tree-page is based on this project (released under BSD-3-Clause)
  • The radar chart used in the selection-page is based on this project (released under the MIT License)

A downloaded version of all required libraries is included in the project.

Project Architecture

.
├── Application                       # E3 Selector aplication
    ├── 0-landing-page                  # .html and .css file for landing page
      └── ...
    ├── 1-personal-information-page     # .html, .css and .js file for personal information page
      └── ...
    ├── 2-course-tree-page              # .html, .css, and .js file for course tree page
      └── ...
    ├── 3-selection-page                # .html, .css, and .js file for selection page
      └── ...
    ├── scripts                         # Scripts used by all pages
      └── ...           
    ├── E3_icon.ico                     # Icon to be displayed in browser tab
    ├── Logo.png                        # Logo for navbar
    ├── E3_courses.json                 # Course data
├── course-crawling                   # Maven project used to crawl course data
    ├── ...                             # Java classes for crawling
    └── pom.xml                         # Handling project dependencies
├── images                            # Images included in this readme
    └── ...
├── README.md                         # What you are reading right now
└── index.html                        # For deployment to github pages

The image below illustrates the architecture of the application. It consists of four pages, with the horizontal arrows indicating the navigation path between these. A navigation bar allows navigation deviating from this expected path, as data consistency is ensured by including a local storage. This local storage holds the information input into the personal information page as well as the output of the personal information page, which is a filtered set of course data. The course tree and selection pages access this set of relevant courses. The selection page additionaly requires the saved availabilities. The lists below the lines of the boxes repesenting the pages represent the main visualization elements present in the respective pages.

Project Architecture

Visualizations and How to Use the Application

  1. Assessing basic information

Collection of some hard constraints regarding the user, according to which the full course set will be filtered. The user selects study program, which languages he/she is comfortable with and when they are available. Availabilities are input using a visual timetable representation: clicking a cell means that they are available during the respecive timeslot. Information Page

  1. Browsing, filtering and selecting

A tree layout allows browsing through courses relevant to the user. Only courses that fit the data collected in the previous page are included: they are open to the respective study program, take place in one of the selected languages and at a time where the user said he/she was available. The left panel provides a set of filtering options. Courses can be selected by clicking on their title and will then be visible in the panel of selected courses on the right. Tree Page

  1. Narrowing down the selection

A table layout concisely displays the courses selected by the user. It is enriched with rating information representing the popularity of a course, if available. The user can interact with the table by hovering over a row, which will cause the detailed ratings of the respective course to be overlayed over the average ratings in the radar chart. Hovering will also highlight the corresponding timetable cells. The timetable includes a repetition of the times the user said he/she was available to visually communicate where the course would fit into the timetable and to confirm that they will be free when the couse takes place. Selection Page

How to run the project

After cloning this repository, the project can be run locally. This requires starting a local server, e.g. using the Node.js http-server package. Running http-server in the project folder should start the project at http://localhost:8080.

Deployed Version

The master branch of this project was deployed to https://mariebexte.github.io/E3_Selector using GitHub Pages.

Contributors

  • Marie Bexte
  • Aynaz Khoshkhoo
  • Yuewei Ma

e3_selector's People

Contributors

aynoo90 avatar mariebexte avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar

Forkers

aynoo90

e3_selector's Issues

Duplicate courses

The five catalogs of courses are not disjunct: we have to ensure that there are no duplicates.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.