sandboxnu / graduatenu Goto Github PK
View Code? Open in Web Editor NEWNortheastern class scheduler based on degree audit.
Home Page: https://graduatenu.com
License: GNU General Public License v3.0
Northeastern class scheduler based on degree audit.
Home Page: https://graduatenu.com
License: GNU General Public License v3.0
In Northeastern's documentation and in the degree audit, the two-letter semester designation for a class that branches both Summer 1 and Summer 2 ('S1' and 'S2') is 'SM'. Currently, the data definition uses 'SF'. This can and will inhibit compatibility with Northeastern services that make use of the two-letter semester designation system so it should be changed.
Semesters always belong to a year, years store the academic year num and hence semesters don't need to store them
Some work has already been done. The mockups need to be finalized and moved to the handoff page.
Support co-ops in a schedule. Probably just want to display a draggable "co-op" block in the sidebar that users can drag into the semester.
Currently, the parser is not able to handle a list of requirements associated with multiple courses of different genres. For example, if a course is required from an enumeration of courses, and that course can be part of multiple subjects (a CS capstone can be a DS course) the parser is not able to recognize that the DS course is part of this enumeration as well and there is not a current data representation for one.
For this:
For third-year students who've taken 16+ courses, it may be a lot easier to upload their degree audit, than manually enter in all the courses they've taken. However for a first-year, it would be super convenient to just select a major and enter the four or so courses they've taken. Additionally, this would provide an alternative to those with qualms against uploading their degree audit.
This would entail retrieving degree requirements from elsewhere, aka scraping the Northeastern catalog. For example, here are the chemical engineering degree requirements.
Once implemented, this could also serve to help SearchNEU. See the issue here.
Credit to Da-Jin:
"I'm starting to wonder if it would be easier for some students to just select their major and then enter which classes they've taken, rather than do the entire degree audit process. Someone in their third year would enjoy the convenience of extracting all 16+ classes they taken out of the degree audit, but for someone in their first/second semester, wouldn't that be more work than it's worth?"
Once designs are ready, implement functionality to add and remove a year from a schedule.
All duplicate courses get deleted if one course is delete. Fix this to only delete the one being deleted.
Edit: We should simply prevent duplicate courses in 1 semester lmao.
This issue is for changing the "requirement" objects produced by the HTML parser to provide more information about their specifics.
See issue #18 "Fix class list representation" for details about requirement enumerations with multiple subjects.
See issue #21 "add "type" property to requirements while parsing html" for details about adding a new property "type" to further specify what KIND of requirement the object represents.
This issue also covers additional requirement specifications that may be decided in the future, at the will of the authors.
Currently, we're using fetch
to grab the plans and majors from the SearchNEU endpoint, where we really should be using a client like Relay or Apollo to do so. The GraphQL website describes why a client is good, here.
Here's a good article contrasting the two.
This concerns the part of the frontend that makes requests to the majors/plans, in frontend/src/utils/fetchMajorsAndPlans.ts
.
This could be also added to the plan parser in backend/src/prereq_loader.ts
.
Currently, the function that simplifies prerequisites based on courses already taken, takes a really long time to run. This is because every single time we call the function, we take time to parse all the completed courses, build up a hashmap containing all of them, and then parse the prerequisite object.
This would be a lot faster if the hashmap object only had to be build once for all of the prereqs, rather than built once for every function call.
The function is called filterAndSimplifyPrereqs
in json_parser.js
Previously we did this in the sidebar by making the unfulfilled requirements red. We want to rethink this and come up with a better way of displaying the errors from our validation algorithm.
Style the login and signup pages according to the designs on figma.
Was: functional, but not well organized.
Now: non-functional, but well organized.
Make both functional and well organized.
For some reason when trying to drag a course fast out the sidebar, the course doesn't actually drag?
For different majors, there are different patterns of requirements.
This issue proposes adding a "type" property to requirement objects, that would help specify the way that the requirement is meant to be completed.
For example a requirement with the "take one of the following" patterns could have the type "one-of", or "or", or ...
Another pattern is the "range except". This requirement specifies classes in a range from some number to another number, except some other union of courses. This can be seen in the new CS major requirements (with concentrations):
Complete 8 credits of CS, CY, DS, or IS classes that are not already required. Choose courses within the following ranges: | 8 |
---|---|
CS 2500 or higher, except CS 5010 | |
CY 2000 or higher, except CY 4930 | |
DS 2000 or higher, except DS 4900 | |
IS 2000 or higher, except IS 4900 |
Adding this property to requirements is needed to suggest courses that could then fill those requirements, for the user to pick.
Any UX changes so that the app looks like it has just released and is being continuously worked on. Potentially some tooltips/popups to guide users through the app.
Checklist for completion:
Update the existing mockups to add support for deleting a plan.
Things left to do:
We'll be working with @hankewyczz to add batch fetching courses.
We will review his PR and then update our search client to support batch fetching.
I'm greeted with a blank screen on both mobile and desktop (Firefox) when visiting the site.
Getting a 404 when trying to GET graduatenu.com.
Achieve normalized output for different input degree audits for the HTML parser.
Perhaps printer-friendly?
It is possible for courses to have the same course number, subject, and term (the current definition of course sameness) but to be distinct courses - honors courses, for example. As such, a definition of sameness must also rely on the distinct name of the course during the term.
Deliverables:
Structuring the code is dependent on the application framework. Research needed for choosing a fitting framework.
Should have a meeting to discuss (a) what framework to use and (b) working on the frontend.
Plan parser does not work on the following plan of study:
This is because there are 3 courses, and we only catch the first 2.
instead of leaving them lying around in ./, move them to somewhere like ./data or something.
We're looking for designs on displaying pre-req/co-req course errors, and credit overload semester errors.
Currently, infinite loops on me_audit.html. Prerequisite parsing needs to be converted to be short-circuiting.
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.