YACS-RCOS / issue-triage

Create issues here when you don't know where else to put them!
MIT License
0 stars 0 forks source link

Summer 2018 RCOS Roadmap #1

Open Bad-Science opened 6 years ago

Bad-Science commented 6 years ago

This is the master issue thread for the Summer 2018 Yacs @ RCOS Roadmap.

Please make suggestions and comments!

TODO:

Yacs Summer 2018 Roadmap

This document serves as the roadmap and development plan for Yacs for the Summer of 2018, beginning Monday, May 21st and ending Friday, August 17th. This document is intended to be used internally by RCOS. A modified public-facing blog post will be created.

Team

Overview

We aim to begin and/or complete work on several systems over the course of the summer. These systems include: the Notification System, the Event Analytics System. We will also make improvements to the Schedule System, and the Core Data Model and APIs. These systems and their goals are described below.

Notification System

The notification system is a user-facing feature that will provide users with live notifications regarding updates to courses and sections they are interested in. Notifications will be presented to the user in a list view, and selectively as desktop notifications. Users will be able to specify, either implicitly or explicitly which courses and sections they are interested in. Implementing the notification system will require creating a new event stream (Kafka topic(s)) originating from yacs core, creating a Websocket API service to read from said stream and provide an web API (yacs-notification-service), and adding an event stream UI to yacs-web.

Event Analytics System

After the Notification System has been completed, we will begin work on the Event Analytics system. The Event Analytics System leverages the data pipeline created in the Notification System phase. We will create a new consumer of the event stream topic, which will aggregate and eventually provide a platform for analytics on the streamed data. For the purposes of the Summer 2018 roadmap, we will attempt to aggregate the changes in section seat availability over time, and time permitting, attempt to visualize this data. Ultimately, we would like to be able to present this data to students and faculty.

Schedule System

After the frontend components of the notification system have been implemented, we will be able to make significant improvements to the schedule view. First, we will implement a new design and layout for the selections view that After the new selections view is implemented. After the selections view is complete, we will apply the new designs to the general courses view as well.

Schedule System Stretch Goals

There are many other improvements that can be made to the schedule system. For example, adding drag-and-drop functionality, highlighting, and the ability to save multiple different schedules or combinations of courses.

Core Data Model and APIs

In parallel to the rest of the work, we will be implementing our new data model and corresponding schema. This new data model will support storing data from multiple semesters and will support a higher level of granularity in general. Once the new data model is implemented, we will create a new API version. This API will be version 6 and will follow the JSON:API specification. Last, we will also design and implement a new schedule API that is denormalized and supports arbitrary events. While building API version 6, we will also need to extend yacs-web to support multiple semesters, and view data from different semesters.

Timeline

Notification System Data Pipeline

Notification System API

Notification System UI & Schedule Selection UI

Subscription UI/UX

Subscription Storage

Course/Section List UI Updates

Event Analytics Pipeline

Schedule Time Constraints UI

Schedule Preferences UI

Schedule Algorithm Changes

Bad-Science commented 6 years ago

@YACS-RCOS/summer-squad Can you all please comment, edit, and approve the proposal? We will set dates for each part of these systems tomorrow in class.

Bad-Science commented 6 years ago

@sydtaylo We've discussed improving the search system but have not worked out exactly what we want to do. Could you post what you were thinking so we can define that in the proposal? thanks!

kburk1997 commented 6 years ago

Found a typo: "This document is intended to be internally by RCOS."

Bad-Science commented 6 years ago

Also @wdturner, this is the draft of our proposal

wdturner commented 6 years ago

Looks good. Just get some dates in. Any progress on NYU? I will be talking with a professor there Sunday-Tuesday of next week, so if you have a name or contact information it might be useful.