Buzzbook

Course Platform
Intro

BuzzBook is a project team developing a one-stop course planning platform to aggregate various resources into an accessible form. This encompasses a course catalog, a requirements planner, visualized grading distributions, enrollment histories, a schedule optimizer, a ratings system, a course recommender, and an exam/syllabi database. Downstream goals include developing a mobile app and exploring expandability to other universities. Current activity is focused on developing a dynamic and expandable database system to store all collected data and polishing the initial feature set, consisting of the catalog, ratings, and statistic visualizations.

BuzzBook is developed with a JS/HTML/CSS based stack, primarily around a React-based frontend and a NodeJS & ExpressJS based backend. Styling is preprocessed through Sass and intersperses components from Bootstrap and Tailwind. Data collection and scrapers are primarily done in Python and Java using BS4 and JSoup respectively, with select sources further requiring a headless browser. Database management is handled through MySQLv8 and data processing is offloaded within Julia. Design is primarily handled in Figma and prototyped using StorybookJS.

Developed by Ed Chen, Jeffrey Tram, Jadon Grossberg, James Narayanan, Simon Zhang, Michael Wechsler, Vishal Malla

Features

Georgia Tech's current course scheduling and explorer systems are spread across multiple aging platforms, which have not seen an update in several years. The advent of new JS frameworks in the recent years provides a good opportunity to introduce a new one-stop course platform that combines many of the resources from other platforms. Ultimately, the end goal is to have a single platform which can handle everything from course exploration to peraparation. Hence, the primary data sources drawn from are OSCAR, for course schedules and basic historical offering trends, SmartEvals, for course ratings and efficacy analysis, Lite, for grade distributions, Department Websites, for course specifics and policies, Catalog & DegreeWorks, for degree requirements, and the general internet for course resource aggregation.

Catalog constitutes, quite straightforwardly, a course catalog. Pipelined data from grade averages and ratings will be displayed and used to calculate a recommendation rate, for instance, denoting that some course or professor falls at which percentile of the grade and rating distributions over the last five years. Our intention is to include all the aformentioned data sources within this page, providing hotlinks to further breakdowns on other pages. Offering history is also shown, to implicate when courses may be offered in future semesters. Comprehensive filtering and degree requirements along with implemented fuzzy search. A Dashboard lists all saved courses in a concise format, along with the relevant statistics to easily rank by whichever factors are deemed most important.

Grades Visualizations and Enrollment Histories serve to provide visual representations and comparison information on more obscure data points, and will help more directly visualize the nature of certain courses. For instance, perhaps a certain course has historically been dropped a lot in Phase 2, then a student can anticipate they may be able to get into the course off the waitlist based on their position number. For these statistics, it will also be possible to provide a more exploratory view on courses not strictly related to registration, for instance, have grade distributions in Math 4000 courses been trending upwards over the past few years?

Degree Planning will provide a handy alternative to DegreeWorks and mesh nicely with the other features in the application. To that end, we can give options to filter by courses that will count towards my degree, or satisfy a certain requirement. The design of a degree planner itself is still quite a task, courseroad seems to be a nice implementation of what could be possible. Ratings will initially start off as an easier way to lookup and interpret CIOS data, and will slowly phase into a full fledged rating system, similar to what OMSCentral has implemented. Resources will be a directory of course resources that have been gathered from public resources to expedite preparation, for instance providing syllabi on demand. More details on these specifics can be found on this document, available to GT logins. Downstream features are outlined within.

Development

Naturally, in the course of development the two most important tasks to finish first concern data aggregation and a base frontend wireframe to build off of. Data sourcing through a variety of methods have been solidified and finished for OSCAR, CIOS, Grade Distributions, and course resources. On the sourcing side, current efforts are focused on implementing a reliable method to obtain degree programs maintaining the logic stipulated by their conditions. For instance, the most obvious method of scraping the catalog presents many footnotes that do not always provide a consistent format which we directly pipeline into an user-facing system.

On the frontend side, building the user interface and implementing the filters and functions has required work in figuring out how best to display data sources in a easily interpretable way. To that end, the catalog, grade distribution, and enrollment history interfaces have been finished and are all linked to the appropriate data sources with the exception of enrollment visualization which is only useful after some registraiton periods have elapsed. Current efforts are focused on developing the ratings and degree requirement features.

On the backend side, immediate goals are to standardize a database structure that is forgiving for dynamic data setting. In other words, we are designing a slimmed down Student Information System which takes into account all the data sources we have on hand and matches them appropriately, as to make API design easier and more lightweight. This also requires failsafes as many portions of this will be dynamically updated on a regular basis, so there needs to be some SOP for regularly updating and matching subsets of this system. The images shown in this section are of the application at its current stable version, though various updates have been made on several directions regarding the listed current work.

A major redesign of the platform's look is currently underway. Besides simply improving upon the interactivity and user experience of the platform, we are also using it as an opportunity to hone down on a design system which was neglected before as previous efforts had mostly been centered around getting data in and making sure it'd be pipelined in correctly. This will be first designed within Figma and then implemented in SCSS which can then be used to update the rest of the platform's look. Tangentially, this will also lead into the design of a mobile iteration, which needs to be reoriented in order to work within a limited screen size. Please note the designs shown are still a work in progress.

We're actively recruiting new members over the summer months for the coming year. If any of this sounds interesting, please apply here. We're open for all members, though experience in design implementation, dynamic database design, cloud development, and APIs are several key areas at the moment. Feel free to send any questions the team's way, contact information can be found on the team page; general questions can be directed to the lead.