layuplist / layup-list Goto Github PK
View Code? Open in Web Editor NEWDartmouth Course Reviews, Rankings, and Recommendations
Home Page: https://layuplist.com
License: GNU General Public License v3.0
Dartmouth Course Reviews, Rankings, and Recommendations
Home Page: https://layuplist.com
License: GNU General Public License v3.0
Sometimes users receive recommendations that they will never take. For example, someone who has taken COSC001 will probably not take ENGS020. It would be nice to have the capability to hide recommendations from surfacing on the Recommendations tab.
I think a common use of LL is not only to browse specific course reviews, but to browse reviews for certain professors across courses. Currently, I know most students simply google a professor's last name followed by "layup list." This usually does the job, but it is far from efficient. The current search feature for courses is very well executed, but I think searching by professor would be a great addition. Glancing at the Course
and CourseOffering
models, I think I see why the original LL team may not have implemented it, but I think you guys (or we) could figure it out.
Obviously, we first have to fix #17 to consolidate the professor data, but that seems doable.
Also, thank you guys (@jaismith @ziruihao) so much for picking up this project again! It's amazing how long the code has been dormant given the crazy amount of usage.
Python 2 reached end of life in 2020. Maintaining a Python 2 codebase for any significant project is and will be increasingly difficult--bugs are not fixed, support is not offered, and new resources will not support this version.
Migrating Layup List away from Python 2 would likely be beneficial for its longevity and maintainability as well as increase development speed for new features and bug fixes.
There are a number of options for languages to which the LL backend could migrate, but Python 3 is the most obvious (and likely best/most frictionless) choice.
It would be nice to be able to hover over the median charts on the course detail page to see detailed data such as number of sections that term, enrollment, and median for each section.
Dartmouth has added additional data fields (Period Code
) to the courses in the timetable, increasing the column size of the response data. This change also adds new search parameters when querying the timetable: deliveryradio
and deliverymode
. These fields are not in our HTTPS POST request to the timetable and thus throws incomplete search parameter error.
Scraper throws assertion error on num_columns == 18
.
Currently we have two sources for professors:
professor
StringField
on Review
, populated by review writers.Instructor
, which has a ManyToMany
relationship to CourseOffering
and is crawled through the timetable.We would like to consolidate these two sources by changing professor
on Review
from StringField
to ForeignKey
. This will require a data migration.
This will consolidate the queries on the course_detail
and course_professors
views. ReviewForm
will have to be modified as well.
As a new column on https://www.layuplist.com/departments
Try to minimize database queries.
The main LL site is down. Going to https://www.layuplist.com/ returns a 503 error and redirects to a page saying there is an error with the Heroku application.
Registrar only starts listing course subnumbers 14W
Currently we only have support for filtering by distributive requirements. We could add more controls such as filtering by hour, department, etc...
Ensure browsing flow does not span across application use sessions. For example, if I searched for COSC 1
at 1 pm, and then later search COSC 10
at 3 pm, these searches should not be correlated in the entries in BigQuery.
Rather than the somewhat arcane setup instructions, it would be convenient and more stable to have a Docker container configured for testing layup list locally. This could also be configured to work with Gitpod, which students get for free for some time with the Github student dev pack.
layup-list/apps/spider/tasks.py
Line 34 in 83073ff
This line asserts that crawling the medians from the ORC should return results from the last ten terms. Looking at the medians page from March in the Wayback machine, the previous ten terms worth of medians were listed.
Looking at the current page, however, there are only eight medians listed, so the check is throwing an error based on a false negative (it is written to expect the median crawling function to return ten terms, there are only eight this term). I don't know if this reduction in the number of terms with medians available is unique to summer, a permanent change going forward, or specific to 22X. Either way,
After a filter is selected on the current_term (Layups and Best Classes tabs), the UI does not indicate that there is any filter active. For example, if the filter is set to ART, the dropdown should be set to ART and the title could be 16F Best ART Classes.
See review_form.py
. We want to minimize trolling.
On both navbar and landing page. Should show a list of relevant course titles.
Looks like the server on Heroku is currently down.
registrar has courses listed on median page that are not in their catalog, e.g. bio 8
User's should be able to view classes they have voted on, reviews they have written, and other historical details.
In addition to this, we could add a section which suggests the user reviews courses they have voted on but haven't reviewed.
Server Error (500)
27's can't create accounts, everyone gets the same error message: Server Error (500)
Review search currently only allows single words or phrases. We should support multiple words. For example, when someone searches "difficult hard", we should surface reviews that have either "difficult" or "hard" rather than only those that have "difficult hard" (probably none).
Keep in mind we use review search to surface reviews from a specific professor. Any changes to review search should not break this. We should also make sure the search cannot become too computationally expensive (possibly by limiting the number of words).
The medians index page changed its URL from https://www.dartmouth.edu/~reg/transcript/medians/
to https://www.dartmouth.edu/reg/transcript/medians/
, thus throwing 404
errors in our crawling process.
LL runs on the deprecated heroku-18 stack, which is deprecated and can no longer be built for deployments. This is blocking all LL deployments.
We currently run python 2, which is not supported by any Heroku stacks beyond 18. To unblock deployments, we need to upgrade to python 3 (3.11+).
Integrate the publishing client to the Django web views.
People don't.
account creation process is broken, clicking 'signup' throws an error.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.