Giter VIP home page Giter VIP logo

classes.wtf's People

Contributors

colefrench avatar ekzhang avatar jeffreygwang avatar raphaelrk avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

classes.wtf's Issues

Queries restricted to specific terms return more courses from my.harvard than expected

In order to get all courses offered in an academic year, we query the fall and spring term. However, we currently encode the term specification using the incorrect key, Term, instead of STRM.

Our mistake is using the "localized" name rather than the "unlocalized" one. For example, each course has a Course Level that indicates for which group of students a course is intended, and this localized name is displayed in my.harvard's search input for readability. However, the key actually sent in the HTTP request is the unlocalized name, CRSE_ATTR_VALUE_HU_LEVL_ATTR.

my.harvard's frontend supports either version of the key, transparently translating from localized to unlocalized. We do not do this, and the REST API only supports unlocalized keys; unrecognized search components are silently ignored. For example, the query, anime (Course Level:"PRIMUGRD") (STRM:"2238" | Term:"2242"), is the same as just anime (STRM:"2238").

my.harvard queries with multiple ORs do not work as expected

Queries of the form, ("A":"1" | "B":"2") ("C":"3" | "D":"4"), do not yield the same results as the union of the queries, ("A":"1") ("C":"3" | "D":"4") and ("B":"2") ("C":"3" | "D":"4"). I'm hoping this issue can lay out systematically how they differ.

Local my.harvard course list has duplicates

We send concurrent requests to my.harvard and aggregate the results, removing duplicates. (The key to uniquely identify courses is aptly named, Key.)

However, I don't believe we should be seeing duplicates; when I manually search for allegedly duplicate courses, only one result shows up. Also, each time the course download script is run, a different number of duplicates are removed.

Errors out when I include dashes in specific text search

Hi, I love the website and you obviously did an incredible job of engineering it. Just one quip that I thought you might want to look into -- it seems to error out when my query includes a dash (attached screenshot below as an example)

Screen Shot 2022-08-15 at 3 39 36 PM

AY 22-23 course meeting times in noon hour displayed incorrectly

For example, FRSEMR 60r which meets from 12:00-2:45pm is displayed as 24:00-14:45.

Courses which meet off the hour also have this issue. For example, PORTUG 220.

I am unsure if courses which end in the noon hour also have the end time affected.

Some course entries on my.harvard are incorrect such as ECON 2909 which meets from 10:30-11:45am but is listed as 10:30am-11:45pm. As such, it is correctly displayed as 10:30-23:45.

This bug only applies to courses in AY 2022-2023.

Spams the browser history

The title is quite self explanatory - The website spams the browser history, adding a new entry every time the user types a character.

Missing courses without a course level

We incorrectly assume that every course has a Course Level, when in fact some don't. This is confirmed by exhausting all course levels—(Course Level:"UGRDGRAD" | Course Level:"GRADCOURSE" | Course Level:"INTRO" | Course Level:"NOLEVEL" | Course Level:"PRIMGRAD" | Course Level:"PRIMUGRD")—and then doing a wildcard search within FAS. The difference is about 50 courses.

The fix specific to our use case of excluding graduate-level courses is to query all courses that do not match (Course Level:"GRADCOURSE"). This can be done efficiently for my.harvard by setting the Exclude300 flag and in GraphQL by using a filter.

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.