CourseRoad

[Ongoing Project]
Github

Degree Planner App

The goal of this project is to create an updated version of Courseroad, the student-created degree-planner app for MIT, that is more user-friendly, more maintainable, and integrated with the mobile app Fireroad. I worked with a small team to build the Minimum Viable Product in Spring 2019, and there is an ongoing effort to add features and maintain functionality.

Features

Degree Plan

CourseRoad plans your degree

At the core of courseroad is the degree plan that allows users to choose classes to take in each semester.

Main features:

  • Ability to add classes to specific semesters
  • View total units and hours for each semester
  • Click on any class to remove or open additional information
  • Collapse any semesters not relevant
  • View warnings on classes with unmet prereqs or that may not be offered

My Contributions

I created functionality to add courses from other parts of the website, including dragging them in from the search menu, dragging them in from the requirements audit, and adding them from the class information card.

Class Information Card

The information card displays detailed class information

The class information card displays additional information about a class, including general information about the class, the difficulty of the class, and related class information.

View information about a class

  • Units and hours
  • When the class is offered (and warnings if discontinued/likely not offered)
  • Enrollment and rating
  • Instructor(s)
  • Course Description

Links to sources of information

  • Course catalog
  • Course evaluations

Related Subjects

  • Equivalent subjects
  • Related subjects
  • Prerequisites
  • Corequisites
  • Classes with this class as a prerequisite

My Contributions

I created the initial UI for the class information card, and the functionality for seeing previously viewed classes. I also created the prerequisite tree in the class info card, which allows the user to collapse and expand complicated prerequisites.

Audit

The audit displays degree progress

The left-hand side of the courseroad website displays your progress towards majors, minors and other requirements in a tree of expandable progress bars. Each road starts with the GIR requirements, and majors, minors and other requirements can be added.

Audit Information

  • Progress towards majors
  • Collapsible tree of requirement sections
  • View progress towards multiple majors/minors at once

You can also view additional information about each requirement:

  • Requirement description
  • List of classes currently counting towards requirement
  • Set progress manually for complex requirements

My Contributions

Style

I cleaned up the inital UI design for the audit and finalized it based on group discussions. I created the UI for manually updating progress for complex requirements by inputting the number of units completed towards the requirement.

Computation

I translated the logic for generating degree progress reports from the FireRoad iOS (Swift) and Android (Java) apps into python for the FireRoad API. I modified the audit to work with the the FireRoad format of progress reports.

Class Search

The search menu finds classes

The search menu allows a user to search for classes using their course number or keywords in the course title, as well as through a series of filters.

Text search

Searches the titles and course numbers for matching classes, sorted in the following order:

  • The search term, from the beginning of the course number/title
  • The search term, anywhere in the course number or title
  • The search term as a regex, from the beginning of the course number/title
  • The search term as a regex, anywhere in the course number or title
Filter search

Filters, which can be used without or in combination with a text search, narrow the classes shown

  • GIR filter: filter classes that count towards the LAB, REST, or any GIR requirements
  • HASS filter: filter classes that count towards the arts, humanities, and/or social sciences requirements
  • CI filter: filter classes that count towards the communication requirement
  • Level filter: filter classes by undergraduate or graduate
  • Units filter: filter classes by number of units

My Contributions

I created the filtering logic and search order sorting for the class search menu. I also did significant UI work. I made the menu shrink if the info card is open, open which the searchbar is clicked, resize when the window is resized. I also created the base UI for the menu itself, but many improvements have been made since then.