Coder Social home page Coder Social logo

valentinoli / epfl-interactive-coursebook Goto Github PK

View Code? Open in Web Editor NEW
6.0 2.0 1.0 10.37 MB

EPFL Interactive Coursebook

Home Page: https://epfl-interactive-coursebook.herokuapp.com

License: Apache License 2.0

JavaScript 20.74% HTML 2.13% Vue 77.13%
epfl interactive coursebook courses network-graph graph visualization graph-visualization network-visualization interactive-visualization

epfl-interactive-coursebook's Introduction

Hi there ๐Ÿ‘‹

I currently work at Novo Nordisk where I create solutions to automate the generation of clinical trial documents required for submission to regulatory authorities.

I am also the author of the Icelandic Bahรกโ€™รญ Web Library.

Iโ€™m interested in...

  • data analysis
  • machine learning
  • natural language processing
  • information systems
  • information security and privacy
  • web development

epfl-interactive-coursebook's People

Contributors

dependabot[bot] avatar jbcdnr avatar mi-ka-git avatar plechoss avatar valentinoli avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Forkers

mi-ka-git

epfl-interactive-coursebook's Issues

Graph: Render ingoing and outgoing neighbors of current selection

Render ingoing and outgoing neighbours of the current set of nodes in a passive color (like gray), with lower opacity.

It might be helpful to add in- and outgoing neighbors to the course object

{
  ...
  ingoing: ["COM-480", ...],
  outgoing: ["COM-481", ...]
}

We need to add a method in the API to query outgoing and ingoing neighbors of the current selection.

Registrations Chart: Axes

Axes with tickmarks and descriptive labels

Content from Lecture 5.2 (Interactive D3) can help us to create the axes.
We need to use d3-scale to scale the axes according to the data. Do we want the scale of the y-axis to be same for all courses so that they are easily comparable? Downside of this is that it might be hard to read a chart with very few registrations per year.

Graph: Info tooltip

Add a tooltip info icon in the top corner, to notify the user about not obvious actions - such as double clicking a node

UI: CourseDetails component at a higher level

Currently, CourseDetails is a child of CourseList and CourseViz. It is preferable to not make it a child component, but rather keep it at the same level as the other. That way, it is possible to make a tab for a selected course and enable the user to close and open each tab, like in a browser.

Course tooltip disappears when hovering quickly between nodes

This bug has something to do with Vue/Vuetify and after much debugging I couldn't figure out why this is happening. The courseTooltip data property (which controls the tooltip's visibility) is set to false after the property has just been set to true when hovering from one node to another quickly.

UI: Course cherry-picking

This feature will make the tool more useful by allowing the user to explicitly select which courses he/she wants to see. This can be helpful in many instances. For example when a student only wants an overview of completed courses and its outgoing neighbors to see which courses depend on those courses and he/she is prepared to enroll in.

This could simply be in the form of a widget like an autocomplete input box.
https://vuetifyjs.com/en/components/autocompletes/

Something like:

<v-autocomplete
  v-model="courses"
  :items="filteredCourses"
  label="Search courses..."
  multiple
  chips
  cache-items
  hide-no-data
  hide-details
  ...
</v-autocomplete>

We would have to create a new data property filteredCourses to keep track of the courses that match the dropdown filters, and then only allow for these courses to be searched for in the autocomplete. This of course requires that we change the API and add function(s).

Slots will help us with customizing how the selected items appear vs. selectable items

Graph: Toggle neighborhood

Enable user to toggle the display of (ingoing/outgoing) neighborhood of the current selection (on by default), see #4

Registrations Chart: Title

Add a descriptive title, perhaps it might contain the course id so it will be dynamic and not always the same.

Bug: Fixed arrow tips

This revealed another problem though, the arrowtips have a fixed position, and that doesn't work well with the different node sizes. We need to figure out how to fix that

image

Originally posted by @valentinoli in #22 (comment)

Graph: Display course page on double click

Display page with detailed info about a course when selecting it on the graph (as in the list view)

We need to disable the drag functionality on click, and instead enable drag on CTRL + CLICK for instance, see #8

Graph: Display summary info about graph

Display meta info about the graph, such as total counts of nodes and edges, node degree or centrality summary. Where? Perhaps in the corner of the SVG in a fixed position.

Graph: Node coloring parameter

The default coloring is that entering nodes are colored green, updated orange and exiting red. We might want to enable the user to choose how nodes are colored.

This can be done in many ways.

One idea:
Allow customization of the entering, updating and exiting colors.

Second idea:
Allow coloring nodes by course properties, like
section, semester (qualitative color map)
credits, registrations (sequential color map)

UI: Detect touch interface earlier

Touch interface is detected only after the first touch. So if a user's first touch is clicking on a node in the graph, then the touch interface experience isn't triggered

Graph: Node size parameter

Enable user to select how node sizes are determined: number of credits (default), popularity, in-degree, out-degree, etc.

Note: Some nodes might disappear if the parameter value is zero (radius will be zero) so we should always apply a smoothing technique

Bug: Graph tooltip overflows

There is a bug with the graph tooltip positioning. It is always positioned on the right but it overflows the container if it is too far on the right. We should probably position in to the left if the node is on the right side of the screen.

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.