Skip to content
This repository has been archived by the owner on Oct 27, 2018. It is now read-only.

Summer 2018 RCOS Roadmap #1

Open
3 tasks done
Bad-Science opened this issue May 30, 2018 · 5 comments
Open
3 tasks done

Summer 2018 RCOS Roadmap #1

Bad-Science opened this issue May 30, 2018 · 5 comments
Assignees

Comments

@Bad-Science
Copy link
Member

Bad-Science commented May 30, 2018

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

Please make suggestions and comments!

TODO:

  • List out the team and the systems to be worked on
  • Add milestones with deadlines
  • Everyone agree on the document and submit the proposal

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

  • Bryan Dieudonne
  • Raz Reed
  • Sydney Bahs
  • Minjia Huang
  • Ada Young

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

  • Start: Week 1
  • End: EO Week 2

Notification System API

  • Start: Week 3
  • End: EO Week 4

Notification System UI & Schedule Selection UI

  • Start: Week 1
  • End: EO Week 4

Subscription UI/UX

  • Start: Week 4
  • End: EO Week 5

Subscription Storage

  • Start: Week 4
  • End: EO Week 5

Course/Section List UI Updates

  • Start: Week 6
  • End: EO Week 6

Event Analytics Pipeline

  • Start: Week 6
  • End: Week 10

Schedule Time Constraints UI

  • Start: Week 7
  • End: EO Week 7

Schedule Preferences UI

  • Start: Week 8
  • End: EO Week 9

Schedule Algorithm Changes

  • Start: Week 8
  • End: EO Semester
@Bad-Science
Copy link
Member Author

@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
Copy link
Member Author

@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!

@Bad-Science Bad-Science changed the title Summer 2018 Roadmap Summer 2018 RCOS Roadmap May 30, 2018
@kburk1997
Copy link
Member

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

@Bad-Science
Copy link
Member Author

Bad-Science commented May 30, 2018

Also @wdturner, this is the draft of our proposal

@wdturner
Copy link

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.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

7 participants