-
Notifications
You must be signed in to change notification settings - Fork 8
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add linguistics major and minor #454
Conversation
[diff-counting] Significant lines: 203. |
Visit the preview URL for this PR (updated for commit d3b3126): https://cornelldti-courseplan-dev--pr454-linguistics-5jv19p0d.web.app (expires Wed, 21 Apr 2021 17:40:20 GMT) 🔥 via Firebase Hosting GitHub Action 🌎 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks Will! Left some comments to answer your questions.
Do we have any way to check a course does not have the "CU-UGR" designation? It shows up in student center under "Course Attribute": https://classes.cornell.edu/browse/roster/FA20/class/LING/4491
No. Currently, our Course type doesn't include the catalogAttribute
field:
course-plan/src/requirements/types.ts
Lines 1 to 18 in c002a9a
export type Course = { | |
readonly subject: string; | |
readonly crseId: number; | |
readonly catalogNbr: string; | |
readonly titleLong: string; | |
readonly enrollGroups: readonly { | |
readonly unitsMinimum: number; | |
readonly unitsMaximum: number; | |
}[]; | |
readonly catalogWhenOffered?: string; | |
readonly catalogBreadth?: string; | |
readonly catalogDistr?: string; | |
readonly catalogComments?: string; | |
readonly catalogSatisfiesReq?: string; | |
readonly catalogCourseSubfield?: string; | |
readonly acadCareer: string; | |
readonly acadGroup: string; | |
}; |
(screenshot is from cornell course roster api)
We could update the fetcher and src/requirements/types.ts so that we also collect this info from the course roster api and then check.
Is there any way to check the restriction that "language courses" cannot be used for additional courses? I don't think so because LING courses can be crosslisted with language course codes and not count as a "language course," but still unsure.
Unsure since the FL doesn't seem to be an actual distribution category :(. Though I can't vet how accurate this would be, I think we'd have to manually check, similarly to how @einc listed all the foreign language subjects (e.g. KOREA, FREN, etc.). If you did opt for this approach, can you factor out the code so we don't duplicate?
course-plan/src/requirements/data/colleges/en.ts
Lines 27 to 58 in c002a9a
const FLcourses: readonly string[] = [ | |
'ARAB', | |
'BENGL', | |
'BURM', | |
'CHIN', | |
'FREN', | |
'GERST', | |
'GREEK', | |
'HEBRW', | |
'HINDI', | |
'INDO', | |
'ITAL', | |
'JAPAN', | |
'KHMER', | |
'KOREA', | |
'LATIN', | |
'NEPAL', | |
'PERSN', | |
'POLSH', | |
'PORT', | |
'RUSSA', | |
'SANSK', | |
'SINHA', | |
'SPAN', | |
'SWAHL', | |
'TAG', | |
'THAI', | |
'TURK', | |
'VIET', | |
'YORUB', | |
'ZULU', | |
]; |
Right now, one course can be used to fulfill the 3000, 2000, and 1000 course for the minor but not the major, I think because of the way double counting works (even though none of the requirements are set to allow double counting). Should I rework this requirement for the minor and make it different than the major?
Yes that's strange. It could be because minor reqs are automatically double countable. I think you'll have to rework the reqs for the minor.
src/requirements/data/majors/ling.ts
Outdated
name: 'Additional Courses: 18 credits', | ||
description: 'Additional courses must each be 3 credits or more.', | ||
source: 'https://linguistics.cornell.edu/undergraduate#major-requirements:', | ||
checker: [ | ||
(course: Course): boolean => | ||
ifCodeMatch(course.subject, 'LING') && | ||
!courseMatchesCodeOptions(course, ['LING 1101', 'LING 3302', 'LING 3303', 'LING 3314']) && | ||
!courseIsFWS(course), | ||
], | ||
allowCourseDoubleCounting: true, | ||
fulfilledBy: 'credits', | ||
perSlotMinCount: [18], | ||
}, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is there any way we can restrict courses to only display ones that are 3 (or more) credits? Right now I have an 18 credit checker for the additional courses, which is not technically correct, as 2 credit courses could be used to fulfill this requirement when they can't in reality.
I think you could check the credits by looking at unitsMinimum
or unitsMaximum
? Checking unitsMaximum
may be better than checking unitsMinimum
. A helper function that checks that maximum credits a course could possibly be would be nice to reuse and have in src/requirements/data/checkers-common.ts
course-plan/src/requirements/types.ts
Lines 1 to 18 in c002a9a
export type Course = { | |
readonly subject: string; | |
readonly crseId: number; | |
readonly catalogNbr: string; | |
readonly titleLong: string; | |
readonly enrollGroups: readonly { | |
readonly unitsMinimum: number; | |
readonly unitsMaximum: number; | |
}[]; | |
readonly catalogWhenOffered?: string; | |
readonly catalogBreadth?: string; | |
readonly catalogDistr?: string; | |
readonly catalogComments?: string; | |
readonly catalogSatisfiesReq?: string; | |
readonly catalogCourseSubfield?: string; | |
readonly acadCareer: string; | |
readonly acadGroup: string; | |
}; |
src/requirements/data/minors/ling.ts
Outdated
name: 'Additional Courses: 10 credits', | ||
description: | ||
'Additional courses must each be 3 credits or more, and the minor requires 18 credits total.', | ||
source: 'https://linguistics.cornell.edu/undergraduate#minor-requirements:', | ||
checker: [ | ||
(course: Course): boolean => | ||
ifCodeMatch(course.subject, 'LING') && | ||
!courseMatchesCodeOptions(course, ['LING 1101', 'LING 3302', 'LING 3303', 'LING 3314']) && | ||
!courseIsFWS(course), | ||
], | ||
allowCourseDoubleCounting: true, | ||
fulfilledBy: 'credits', | ||
perSlotMinCount: [10], | ||
}, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The helper function that checks the credits of a course could be helpful here too!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM! Left a comment about updating the text of a checker warning and another about the description for additional courses. Also, after you add the catalogAttribute
field in another PR, just make sure to update the linguistics major and minor data so that you look for the "CU-UGR" designation.
src/requirements/data/majors/ling.ts
Outdated
courseMeetsCreditMinimum(course, 3), | ||
], | ||
checkerWarning: | ||
'We do not check that the courses are from linguistics related areas or 3+ credits.', |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Don't we check that the courses are 3+ credits?
src/requirements/data/minors/ling.ts
Outdated
{ | ||
name: 'Additional Course: 3000 or above', | ||
description: | ||
'At least 1 additional linguistics course must be at the 3000 level or above and at least 3 credits.', |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is there any way to check the restriction that "language courses" cannot be used for additional courses? I don't think so because LING courses can be crosslisted with language course codes and not count as a "language course," but still unsure.
Do you want to add in the descriptions for the additional courses req that language courses cannot be used? There doesn't seem to be any indication in the descriptions currently.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM thanks Will!
…g Fixes (#495) * Migrate to vue3 (#453) * Migrate to vue3 * Fix courses not showing up due to incorrect usage of draggable library * Fix router issue due to incorrect usage of routing library * Fix bottombar information loading due to vue3 reactivitity changes Need to update only when all fields are ready, since vue3 cannot detect nested field changes now. * Fix semester height issue by passing style via componentData another breaking change of vue-draggable library * Correct fix for missing value prop for ResetConfirmation modal vue3 changes value in v-model to be modelValue. * Fix reset confirmation modal * Unbreak scrollIntoView * Unbreak scrollIntoView * Fix graduation year autoscroll * [easy] Remove simplified course json generator (#456) * [easy] Remove useless npm script (#457) * Generate only one full-courses.json (#458) * Add Human Development major & minor (#455) * Add human-development minor * Add human dev major * CI check * PR fixes - including FL common checker * Add TODO comment * Add linguistics major and minor (#454) * Add linguistics major * Update tests * Add linguistics minor, update urls * Add minimum credit checker * Allow ling minors to take foundation courses as electives (double counting issue) * Add todos, fix tests * Update decorated-requirements.json * PR description, warning, and TODO updates * Add and display slot names to every requirement (#460) * Add and display slot names to every requirement * fix typo * Post launch identified bugs (Total credit denominator, edit semester dropdowns) (#459) * Fix edit semester dropdowns resetting * Bug fix on total credit denominator increasing * Remove special AG case * Update 120 credit descriptions * Update README with Kehui and Miranda (#462) * Add Catalog Attribute course data (#461) * Add catalogAttribute to fetcher * Add CU-UGR checker to linguistics * Update decorated-requirements.json * Add Math major (#463) * Add Material Science Engineering and PAM majors (#464) * Start of MSE - need to finish applications and test * Fix categorychecker and test * Add PAM major, some HE/HD fixes * PR fixes * Aerospace engineering minor (#466) * Annotate emits on components so that they can be type-checked (#470) * Rename requirement components to reduce confusion (#473) As discussed before subrequirement means two different things, depending on whether you are working on the algorithm or in the UI. This diff makes things more consistent. Since we finally have a consistent names for requirement stuff, I added them to the docs to reduce future confusion. * Factor out requirement components in RequirementFulfillment (1/n) (#474) * [easy] Setup compound requirements types and generator (#475) * Add entrance year to onboarding (#472) * Add entrance year to onboarding * Quick scroll change * Scroll new semester year dropdown to entrance year * nit * [easy] Remove useless displayDescription check (#476) * Add physics and engineering physics majors (#465) * Add phys major * Address phys nuances * Add ep major * Fix test, lint * Update phys requirements * Shorten description, update comments * Update concentration outside physics checker * Factor out requirement components in RequirementFulfillment (2/n) (#477) * Added STS Major (#469) * start sts major * add sts major * update descriptions on sts major * rename slot * update requirements * Factor out requirement components in RequirementFulfillment (3/n) (#478) * Added Astronomy Major (#468) * added astro req * run tests * updated descriptions on astro major * Bump ssri from 6.0.1 to 6.0.2 (#483) * Factor out requirement components in RequirementFulfillment (4/n) (#480) * Remove semester caution modal (#484) * Add more possible foreign langs in requirements (#479) * Add more possible foreign langs * Run req gen * Comment out course codes that don't count for A&S FL * Run courses-gen for FA21 data (#485) * Updated README with dev name (#467) * Create tests for computeFulfillmentCoursesAndStatistics (#488) * Onboarding Required Fields Bug (#487) * Onboarding Required Fields for first page and handling invalid majors/minors * make isError and isInvalidMajorOrMinorError computed props * Set CUReviews data to N/A for new FA21 courses (#486) * Set class ratings to null for courses not in CUReviews * Fix styling issue when courses have no description * Switch tabs to buttons * Add hover state to tabs * Fuse search implementation (#482) Updates our course search to use [fuse.js](fusejs.io) * Added Spanish major and minor, and Food Science major (#490) * added spanish minor and major * finalised spanish reqs * updated spanish major to use subreqs * finalised food science major * ran npm req gen * change to spanish minor * ran formatter * linter fix * fixed electives bug for spanish major * Change slot name from 'courses' to 'course' * shortened course slot names * added requested changes * improved food sci concentration description * Bs and es major (#471) Added biology & society and ESS majors Co-authored-by: einc <ein.chang@gmail.com> * Added ece, robotics, health policy minors (#493) Added ece, robotics, hp minors * Reinstate old way of course search without fuse.js (#494) Co-authored-by: Sam Zhou <sam@developersam.com> Co-authored-by: Will Spencer <will.e.spencer@gmail.com> Co-authored-by: Hahnbee Lee <55263191+hahnbeelee@users.noreply.github.com> Co-authored-by: Benjamin Shen <bfs45@cornell.edu> Co-authored-by: Jason Tung <jt568@cornell.edu> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Vaishnavi Gupta <vg222@cornell.edu> Co-authored-by: neketka <neketka@gmail.com> Co-authored-by: einc <ein.chang@gmail.com>
* Post Launch: Vue3 Migration, Slot Names, 20 New Majors and Minors, Bug Fixes (#495) * Migrate to vue3 (#453) * Migrate to vue3 * Fix courses not showing up due to incorrect usage of draggable library * Fix router issue due to incorrect usage of routing library * Fix bottombar information loading due to vue3 reactivitity changes Need to update only when all fields are ready, since vue3 cannot detect nested field changes now. * Fix semester height issue by passing style via componentData another breaking change of vue-draggable library * Correct fix for missing value prop for ResetConfirmation modal vue3 changes value in v-model to be modelValue. * Fix reset confirmation modal * Unbreak scrollIntoView * Unbreak scrollIntoView * Fix graduation year autoscroll * [easy] Remove simplified course json generator (#456) * [easy] Remove useless npm script (#457) * Generate only one full-courses.json (#458) * Add Human Development major & minor (#455) * Add human-development minor * Add human dev major * CI check * PR fixes - including FL common checker * Add TODO comment * Add linguistics major and minor (#454) * Add linguistics major * Update tests * Add linguistics minor, update urls * Add minimum credit checker * Allow ling minors to take foundation courses as electives (double counting issue) * Add todos, fix tests * Update decorated-requirements.json * PR description, warning, and TODO updates * Add and display slot names to every requirement (#460) * Add and display slot names to every requirement * fix typo * Post launch identified bugs (Total credit denominator, edit semester dropdowns) (#459) * Fix edit semester dropdowns resetting * Bug fix on total credit denominator increasing * Remove special AG case * Update 120 credit descriptions * Update README with Kehui and Miranda (#462) * Add Catalog Attribute course data (#461) * Add catalogAttribute to fetcher * Add CU-UGR checker to linguistics * Update decorated-requirements.json * Add Math major (#463) * Add Material Science Engineering and PAM majors (#464) * Start of MSE - need to finish applications and test * Fix categorychecker and test * Add PAM major, some HE/HD fixes * PR fixes * Aerospace engineering minor (#466) * Annotate emits on components so that they can be type-checked (#470) * Rename requirement components to reduce confusion (#473) As discussed before subrequirement means two different things, depending on whether you are working on the algorithm or in the UI. This diff makes things more consistent. Since we finally have a consistent names for requirement stuff, I added them to the docs to reduce future confusion. * Factor out requirement components in RequirementFulfillment (1/n) (#474) * [easy] Setup compound requirements types and generator (#475) * Add entrance year to onboarding (#472) * Add entrance year to onboarding * Quick scroll change * Scroll new semester year dropdown to entrance year * nit * [easy] Remove useless displayDescription check (#476) * Add physics and engineering physics majors (#465) * Add phys major * Address phys nuances * Add ep major * Fix test, lint * Update phys requirements * Shorten description, update comments * Update concentration outside physics checker * Factor out requirement components in RequirementFulfillment (2/n) (#477) * Added STS Major (#469) * start sts major * add sts major * update descriptions on sts major * rename slot * update requirements * Factor out requirement components in RequirementFulfillment (3/n) (#478) * Added Astronomy Major (#468) * added astro req * run tests * updated descriptions on astro major * Bump ssri from 6.0.1 to 6.0.2 (#483) * Factor out requirement components in RequirementFulfillment (4/n) (#480) * Remove semester caution modal (#484) * Add more possible foreign langs in requirements (#479) * Add more possible foreign langs * Run req gen * Comment out course codes that don't count for A&S FL * Run courses-gen for FA21 data (#485) * Updated README with dev name (#467) * Create tests for computeFulfillmentCoursesAndStatistics (#488) * Onboarding Required Fields Bug (#487) * Onboarding Required Fields for first page and handling invalid majors/minors * make isError and isInvalidMajorOrMinorError computed props * Set CUReviews data to N/A for new FA21 courses (#486) * Set class ratings to null for courses not in CUReviews * Fix styling issue when courses have no description * Switch tabs to buttons * Add hover state to tabs * Fuse search implementation (#482) Updates our course search to use [fuse.js](fusejs.io) * Added Spanish major and minor, and Food Science major (#490) * added spanish minor and major * finalised spanish reqs * updated spanish major to use subreqs * finalised food science major * ran npm req gen * change to spanish minor * ran formatter * linter fix * fixed electives bug for spanish major * Change slot name from 'courses' to 'course' * shortened course slot names * added requested changes * improved food sci concentration description * Bs and es major (#471) Added biology & society and ESS majors Co-authored-by: einc <ein.chang@gmail.com> * Added ece, robotics, health policy minors (#493) Added ece, robotics, hp minors * Reinstate old way of course search without fuse.js (#494) Co-authored-by: Sam Zhou <sam@developersam.com> Co-authored-by: Will Spencer <will.e.spencer@gmail.com> Co-authored-by: Hahnbee Lee <55263191+hahnbeelee@users.noreply.github.com> Co-authored-by: Benjamin Shen <bfs45@cornell.edu> Co-authored-by: Jason Tung <jt568@cornell.edu> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Vaishnavi Gupta <vg222@cornell.edu> Co-authored-by: neketka <neketka@gmail.com> Co-authored-by: einc <ein.chang@gmail.com> * January 2022 Release (#634) * [easy] Delete AP/IB override code (#587) They will be replaced by the new opt-in/opt-out infra. * Convert TrackUsers to script to store data in Firestore daily (#601) * Copy track users to ts file and make it a script * Output track users script to new track-users collection * Set up cron job to call npm command and run script * Fix lint * Delete Firebase TrackUsers and move function call * Fix Mobile Navbar Click Outside (#598) * Have clicking outside navbar close menu instead of opening onboarding * Bump z-index so modals display above navbar * Fix lint * [easy] Fix enforce release workflow job (#602) * fix enforce release workflow job * Revert "fix enforce release workflow job" This reverts commit 94c05b3. * Revert "Revert "fix enforce release workflow job"" This reverts commit 719fc57. * Add AS Major (#589) * Added as major * Ran prettier, unbroke test * Added requirement to frontend * Fixed up frontend * Fixed slot count error * Ran req-gen * Add NPM clean install to fix failing track-users (#605) * Remove semester type from codebase (#604) * remove semester type * fix type errors * Add prod service account secret to track-users (#608) * Use service account secret when provided (#609) * Add prod service account secret to track-users * Use service account secret when provided * Fix lint * JSON parse service account * Added the template file for the ECE major (#600) * Added the template file for the ECE major * Update ece.ts * Update ece.ts * Requirement builder with the new data format (#588) * add test for minimize semester (#613) * Avoid tracking users that have not finished onboarding (#610) * Avoid tracking users that have not finished onboarding * Fix lint * Add analytics data to CoursePlan route (#607) * Create analytics container and add it to route file (copied from old branch) * Get newest doc to display as json * Pretty print json * Fix lint and type checks * Require auth to access route * Style page if no data shown * Add timestamp of last analytics run * Remove accidental commit * Bug fix for non-cp users * Refactor analytics retrieval to global-firestore-data * Optimize code by only retrieving newest document from collection (and adding timestamp field) * Change timestamp to date type * Remove null check, add comment * Add FA21 contributors to README (#619) ### Summary <!-- Required --> <!-- Provide a general summary of your changes in the Title above --> <!-- Itemize bug fixes, new features, and other changes --> <!-- Feel free to break this into sub-sections, i.e. features, fixes, etc. --> <!-- Some examples are shown below. --> This pull request adds the list of FA21 contributors to CoursePlan now that the semester is over. ### Test Plan <!-- Required --> Confirm the list matches the one on Notion here: https://www.notion.so/courseplan/CoursePlanners-cc431147c85d4d4abfdf47bdbe8b1a1c * Setup infrastructure for two-graph-based progress computation (#615) * Placeholder courses (#592) * Add placeholder component, place after every course temporarily * Make code improvements * Match placeholder styling to Figma in both views * Support FirestoreSemesterPlaceholder type, shows placeholders from Firestore * Define isPlaceholderCourse function, use to resolve type errors & fix bugs * Fix failing jest test * Fix lint * Implement warnings when semester mismatches, in either semester ordering * Simplify utility function * Update comment (and refresh deployment) * Add hover state to 6 dots, change cursor to grab * Delete comment * Implement Intl API for warnings * Add EAS Major (#590) * Added eas reqs * Added chem fulfillment option * (Mostly) finished EAS requirements * Added major * Unbroke test * Cleaned up frontend * Made labeling clearer * Cleaned up message * Fixed typo * Added field work requirement * Changed field work requirement * Specialize requirements (#611) * Implemented specialization functiionality * Added CS specialization * Ran prettier * Ran req-gen * Fixed linter errors * Refactored infra * Added math 2930 * Fixed linter error * Create useful exam mappings derived from exam data (#606) * map exam id to equivalent course and conditions * add exam to course and course to exam mappings * remove majors and colleges from export * fix college type * Address nits * fix tests * fix lint * Fix college type * use fromEntries * nit * Fix AG foreign language checker (#623) * Fix BIO major BIOMG 4320 requirement (#624) * Add exam course ids and conditions to requirements json (#625) * set up structure * add exam course ids and conditions to requirements json * move toggleable conditions to same level as course list * refactor decorators * fix lint issues * add back college name sort * conditional specializations property * Add check-req-json workflow job (#628) * Add check-req-json workflow job * Fix req-json discrepancy * Split up npm install and npm run req-gen * [easy] Fix AP/IB old infra bug for multiple equivalent courses (#631) * fix bug * fix object set * Remove hardcoded dropdown start year to fix new year Cypress bug (#629) * Make start year code common and use in cypress instead of hardcoding 2015 * Turn getYearRange into constant and clarify comment * Fix lint * Switch to new AP/IB infra (#627) * Switch to new AP/IB infra * rename no fulfillments course id * req-gen * fix lint * Update CS major (#626) * add CHEM 2080 requirement and CS 4414 * prettier? * did it update * what about now * now? * hi will * address nit and package lock changes * run req gen Co-authored-by: Will Spencer <will.e.spencer@gmail.com> * Fix HE credits double counting and DEA statistics req (#630) * Add script for migrating old subject colors to new subject colors (#614) * add color migration script * use if-else instead of switch * reuse switch with hasOwnProperty * lint * delete console log * Run on subjectColorsCollection instead of usernameCollection Co-authored-by: Benjamin Shen <bfs45@cornell.edu> * remove usernaemCollection import Co-authored-by: Hahnbee Lee <55263191+hahnbeelee@users.noreply.github.com> Co-authored-by: Benjamin Shen <bfs45@cornell.edu> Co-authored-by: Hahnbee Lee <hl985@cornell.edu> * Dashboard entrypoint (#616) * add icons * navbar design * add tools page * mobile responsiveness * address nits * add feature flag + mobile plan icon * prettier Co-authored-by: Hahnbee Lee <hl985@cornell.edu> * Deprecate old ap/ib infra (#632) * deprecate old ap/ib infra * fix lint * fix tests * add ap/ib exam id tests (#635) * Fix swim test bugs (#637) * change unique id from -1 to 'swim test' * change swim test requirement * refactor and fix deleteTransferCredit * unbreak requirement id test * Refactor constraint violations (#633) * refactor constraint violations * format * add object structuring to removeIllegalEdges * remove null return type * modify allowDoubleCounting function to be more accurate * Revert "modify allowDoubleCounting function to be more accurate" This reverts commit 03f3840. * change double counting perspective * polish requirementsThatDoNotAllowDoubleCounting * fix lint * fix double counting constraint, polish constraint violation function * preserve requirement order * small fixes * fix lint * remove minor auto double counting * address code comments * rename * fix test * fix courseToRequirementsInConstraintViolations * remove console log * Fix requirements double counting (#638) * fix bugs * remove console log * format * fix arg order * fix add modal opt out * refactor dummy uniqueid * refactor to getRelatedUnfulfilledRequirements * move opt out filter to opt out function * automatically fulfilled requirements * add comment * opt out of all requirements possibly in constraint violation * add minor-grad restriction for double counting Co-authored-by: Sam Zhou <sam@developersam.com> Co-authored-by: Will Spencer <will.e.spencer@gmail.com> Co-authored-by: zachary0kent <73757337+zachary0kent@users.noreply.github.com> Co-authored-by: Aryan Yadav <yadavaryan424@gmail.com> Co-authored-by: Toby (Ju Mong) Ko <jk2299@cornell.edu> Co-authored-by: ein <ein.chang@gmail.com> Co-authored-by: Hahnbee Lee <55263191+hahnbeelee@users.noreply.github.com> Co-authored-by: Hahnbee Lee <hl985@cornell.edu> * Revert "Spring 2023 Pre-Enroll Release" * Revert "Revert "Spring 2023 Pre-Enroll Release"" * SP24 Multiple Plans Release (#901) * updated contributors page (#890) * chore: added engrc 3027 as valid engrc (#891) * Add ENGRC 3025 as Engineering Communications (#900) * add engrc 3025 * run req-gen * multiple plans! (#877) * refactor whole codebase to plans instead of semesters * add functions that disappeared after merge * Implemented multiple plans feature flag and added add plan button * Multiple plans dropdown (#806) * Implement dropdown frontend - Add dropdown component - Add cypress tests for open/close states. * Add changing arrow direction * Change plan when clicked * Run checks * Enable feature flag before running test * Fix arrow resizing problem and address Zak changes * Change colors to set colors, try to fix test * Tests working + remove feature flag for time being * Finally passing the cypress tests <33 * Hover state cursor -> pointer * Refactor css into scss * Add scss file lol * migration script for multiple plans in firebase (#817) * migration script for multiple plans in firebase * Move Plan type to Migration Script * Multiple plans functions (#816) * Implement dropdown frontend - Add dropdown component - Add cypress tests for open/close states. * Add changing arrow direction * Change plan when clicked * Run checks * Enable feature flag before running test * Fix arrow resizing problem and address Zak changes * Change colors to set colors, try to fix test * Tests working + remove feature flag for time being * Finally passing the cypress tests <33 * Hover state cursor -> pointer * Refactor css into scss * Add scss file lol * Implement Vuex and Firestore functions * Update src/global-firestore-data/user-semesters.ts Co-authored-by: zachary0kent <73757337+zachary0kent@users.noreply.github.com> * Update src/global-firestore-data/user-semesters.ts Co-authored-by: zachary0kent <73757337+zachary0kent@users.noreply.github.com> * Update src/global-firestore-data/user-semesters.ts Co-authored-by: zachary0kent <73757337+zachary0kent@users.noreply.github.com> * Update src/store.ts Co-authored-by: zachary0kent <73757337+zachary0kent@users.noreply.github.com> * Run format * Add computed property for plans and currentplan --------- Co-authored-by: zachary0kent <73757337+zachary0kent@users.noreply.github.com> * Implement frontend for all modals to add, delete and edit plans. * Run npm format * call firestore functions for add blank plan * Fix type issue in teleport modal * fix issue with adding 2nd new plan * add plan type * add getter for current plan's semesters * missed one use of getter * delete duplicate functions * multiple plans is multiple planning?? * confirmation modal when plans are added/deleted/edited * fix bug to display correct plan * cypress tests * address edge cases in multiple plans (#895) * Implemented multiple plans feature flag and added add plan button * Multiple plans dropdown (#806) * Implement dropdown frontend - Add dropdown component - Add cypress tests for open/close states. * Add changing arrow direction * Change plan when clicked * Run checks * Enable feature flag before running test * Fix arrow resizing problem and address Zak changes * Change colors to set colors, try to fix test * Tests working + remove feature flag for time being * Finally passing the cypress tests <33 * Hover state cursor -> pointer * Refactor css into scss * Add scss file lol * migration script for multiple plans in firebase (#817) * migration script for multiple plans in firebase * Move Plan type to Migration Script * Multiple plans functions (#816) * Implement dropdown frontend - Add dropdown component - Add cypress tests for open/close states. * Add changing arrow direction * Change plan when clicked * Run checks * Enable feature flag before running test * Fix arrow resizing problem and address Zak changes * Change colors to set colors, try to fix test * Tests working + remove feature flag for time being * Finally passing the cypress tests <33 * Hover state cursor -> pointer * Refactor css into scss * Add scss file lol * Implement Vuex and Firestore functions * Update src/global-firestore-data/user-semesters.ts Co-authored-by: zachary0kent <73757337+zachary0kent@users.noreply.github.com> * Update src/global-firestore-data/user-semesters.ts Co-authored-by: zachary0kent <73757337+zachary0kent@users.noreply.github.com> * Update src/global-firestore-data/user-semesters.ts Co-authored-by: zachary0kent <73757337+zachary0kent@users.noreply.github.com> * Update src/store.ts Co-authored-by: zachary0kent <73757337+zachary0kent@users.noreply.github.com> * Run format * Add computed property for plans and currentplan --------- Co-authored-by: zachary0kent <73757337+zachary0kent@users.noreply.github.com> * Implement frontend for all modals to add, delete and edit plans. * Run npm format * call firestore functions for add blank plan * Fix type issue in teleport modal * fix issue with adding 2nd new plan * refactor whole codebase to plans instead of semesters * add functions that disappeared after merge * add plan type * add getter for current plan's semesters * missed one use of getter * delete duplicate functions * multiple plans is multiple planning?? * confirmation modal when plans are added/deleted/edited * fix bug to display correct plan * cypress tests * address edge cases in multiple plans * disable buttons * frontend fixes * frontend fix again * tour + refactoring * Revert "frontend fixes" This reverts commit 2e66263. * Revert "tour + refactoring" This reverts commit 49ee18d. * change button radius * refactoring again * silly format fix * frontend fixes * auto name for copy * sawNewFeature migration * tour! * firebase changes * slay? only appear once? * address edge cases in multiple plans * disable buttons * frontend fixes * frontend fix again * tour + refactoring * Revert "frontend fixes" This reverts commit 2e66263. * Revert "tour + refactoring" This reverts commit 49ee18d. * change button radius * refactoring again * silly format fix * frontend fixes * auto name for copy * sawNewFeature migration * tour! * firebase changes * slay? only appear once? * cypress --------- Co-authored-by: zachary0kent <73757337+zachary0kent@users.noreply.github.com> Co-authored-by: andxu282 <ajx8@cornell.edu> * get rid of console * copy name * fix * fix --------- Co-authored-by: zachary0kent <73757337+zachary0kent@users.noreply.github.com> Co-authored-by: andxu282 <ajx8@cornell.edu> * recompute reqs (#902) * add Viticulture and Enology major (#896) * added vien.ts file and import statements * imported vien to index * Added Physical Science Core for major * added chemistry requirement * fixed physical science core requirements logic * added Statistics requirement * added Plant Science Requirement and fixed name for Statistics * Add Viticulture & Encology Core * Add Major Electives w/ description * Add descriptions and Advisor * fixed logic * fixed order by (#903) * fixed order by * delete console --------- Co-authored-by: Hannah Zhou <91917682+plumshum@users.noreply.github.com> Co-authored-by: Simon Ilincev <simon@simonilincev.com> Co-authored-by: Andrew Xu <53061040+andxu282@users.noreply.github.com> Co-authored-by: zachary0kent <73757337+zachary0kent@users.noreply.github.com> Co-authored-by: andxu282 <ajx8@cornell.edu> --------- Co-authored-by: Will Spencer <will.e.spencer@gmail.com> Co-authored-by: Theresa Cho <54298311+tcho6319@users.noreply.github.com> Co-authored-by: Sam Zhou <sam@developersam.com> Co-authored-by: Hahnbee Lee <55263191+hahnbeelee@users.noreply.github.com> Co-authored-by: Benjamin Shen <bfs45@cornell.edu> Co-authored-by: Jason Tung <jt568@cornell.edu> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Vaishnavi Gupta <vg222@cornell.edu> Co-authored-by: neketka <neketka@gmail.com> Co-authored-by: einc <ein.chang@gmail.com> Co-authored-by: zachary0kent <73757337+zachary0kent@users.noreply.github.com> Co-authored-by: Aryan Yadav <yadavaryan424@gmail.com> Co-authored-by: Toby (Ju Mong) Ko <jk2299@cornell.edu> Co-authored-by: Hahnbee Lee <hl985@cornell.edu> Co-authored-by: Noah Schiff <47431797+noschiff@users.noreply.github.com> Co-authored-by: Zak Kent <zak33@cornell.edu> Co-authored-by: Zak Kent <73757337+zachary-kent@users.noreply.github.com> Co-authored-by: Andrew Xu <53061040+andxu282@users.noreply.github.com> Co-authored-by: Hannah Zhou <91917682+plumshum@users.noreply.github.com> Co-authored-by: Simon Ilincev <simon@simonilincev.com> Co-authored-by: andxu282 <ajx8@cornell.edu>
* Post Launch: Vue3 Migration, Slot Names, 20 New Majors and Minors, Bug Fixes (#495) * Migrate to vue3 (#453) * Migrate to vue3 * Fix courses not showing up due to incorrect usage of draggable library * Fix router issue due to incorrect usage of routing library * Fix bottombar information loading due to vue3 reactivitity changes Need to update only when all fields are ready, since vue3 cannot detect nested field changes now. * Fix semester height issue by passing style via componentData another breaking change of vue-draggable library * Correct fix for missing value prop for ResetConfirmation modal vue3 changes value in v-model to be modelValue. * Fix reset confirmation modal * Unbreak scrollIntoView * Unbreak scrollIntoView * Fix graduation year autoscroll * [easy] Remove simplified course json generator (#456) * [easy] Remove useless npm script (#457) * Generate only one full-courses.json (#458) * Add Human Development major & minor (#455) * Add human-development minor * Add human dev major * CI check * PR fixes - including FL common checker * Add TODO comment * Add linguistics major and minor (#454) * Add linguistics major * Update tests * Add linguistics minor, update urls * Add minimum credit checker * Allow ling minors to take foundation courses as electives (double counting issue) * Add todos, fix tests * Update decorated-requirements.json * PR description, warning, and TODO updates * Add and display slot names to every requirement (#460) * Add and display slot names to every requirement * fix typo * Post launch identified bugs (Total credit denominator, edit semester dropdowns) (#459) * Fix edit semester dropdowns resetting * Bug fix on total credit denominator increasing * Remove special AG case * Update 120 credit descriptions * Update README with Kehui and Miranda (#462) * Add Catalog Attribute course data (#461) * Add catalogAttribute to fetcher * Add CU-UGR checker to linguistics * Update decorated-requirements.json * Add Math major (#463) * Add Material Science Engineering and PAM majors (#464) * Start of MSE - need to finish applications and test * Fix categorychecker and test * Add PAM major, some HE/HD fixes * PR fixes * Aerospace engineering minor (#466) * Annotate emits on components so that they can be type-checked (#470) * Rename requirement components to reduce confusion (#473) As discussed before subrequirement means two different things, depending on whether you are working on the algorithm or in the UI. This diff makes things more consistent. Since we finally have a consistent names for requirement stuff, I added them to the docs to reduce future confusion. * Factor out requirement components in RequirementFulfillment (1/n) (#474) * [easy] Setup compound requirements types and generator (#475) * Add entrance year to onboarding (#472) * Add entrance year to onboarding * Quick scroll change * Scroll new semester year dropdown to entrance year * nit * [easy] Remove useless displayDescription check (#476) * Add physics and engineering physics majors (#465) * Add phys major * Address phys nuances * Add ep major * Fix test, lint * Update phys requirements * Shorten description, update comments * Update concentration outside physics checker * Factor out requirement components in RequirementFulfillment (2/n) (#477) * Added STS Major (#469) * start sts major * add sts major * update descriptions on sts major * rename slot * update requirements * Factor out requirement components in RequirementFulfillment (3/n) (#478) * Added Astronomy Major (#468) * added astro req * run tests * updated descriptions on astro major * Bump ssri from 6.0.1 to 6.0.2 (#483) * Factor out requirement components in RequirementFulfillment (4/n) (#480) * Remove semester caution modal (#484) * Add more possible foreign langs in requirements (#479) * Add more possible foreign langs * Run req gen * Comment out course codes that don't count for A&S FL * Run courses-gen for FA21 data (#485) * Updated README with dev name (#467) * Create tests for computeFulfillmentCoursesAndStatistics (#488) * Onboarding Required Fields Bug (#487) * Onboarding Required Fields for first page and handling invalid majors/minors * make isError and isInvalidMajorOrMinorError computed props * Set CUReviews data to N/A for new FA21 courses (#486) * Set class ratings to null for courses not in CUReviews * Fix styling issue when courses have no description * Switch tabs to buttons * Add hover state to tabs * Fuse search implementation (#482) Updates our course search to use [fuse.js](fusejs.io) * Added Spanish major and minor, and Food Science major (#490) * added spanish minor and major * finalised spanish reqs * updated spanish major to use subreqs * finalised food science major * ran npm req gen * change to spanish minor * ran formatter * linter fix * fixed electives bug for spanish major * Change slot name from 'courses' to 'course' * shortened course slot names * added requested changes * improved food sci concentration description * Bs and es major (#471) Added biology & society and ESS majors Co-authored-by: einc <ein.chang@gmail.com> * Added ece, robotics, health policy minors (#493) Added ece, robotics, hp minors * Reinstate old way of course search without fuse.js (#494) Co-authored-by: Sam Zhou <sam@developersam.com> Co-authored-by: Will Spencer <will.e.spencer@gmail.com> Co-authored-by: Hahnbee Lee <55263191+hahnbeelee@users.noreply.github.com> Co-authored-by: Benjamin Shen <bfs45@cornell.edu> Co-authored-by: Jason Tung <jt568@cornell.edu> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Vaishnavi Gupta <vg222@cornell.edu> Co-authored-by: neketka <neketka@gmail.com> Co-authored-by: einc <ein.chang@gmail.com> * January 2022 Release (#634) * [easy] Delete AP/IB override code (#587) They will be replaced by the new opt-in/opt-out infra. * Convert TrackUsers to script to store data in Firestore daily (#601) * Copy track users to ts file and make it a script * Output track users script to new track-users collection * Set up cron job to call npm command and run script * Fix lint * Delete Firebase TrackUsers and move function call * Fix Mobile Navbar Click Outside (#598) * Have clicking outside navbar close menu instead of opening onboarding * Bump z-index so modals display above navbar * Fix lint * [easy] Fix enforce release workflow job (#602) * fix enforce release workflow job * Revert "fix enforce release workflow job" This reverts commit 94c05b3. * Revert "Revert "fix enforce release workflow job"" This reverts commit 719fc57. * Add AS Major (#589) * Added as major * Ran prettier, unbroke test * Added requirement to frontend * Fixed up frontend * Fixed slot count error * Ran req-gen * Add NPM clean install to fix failing track-users (#605) * Remove semester type from codebase (#604) * remove semester type * fix type errors * Add prod service account secret to track-users (#608) * Use service account secret when provided (#609) * Add prod service account secret to track-users * Use service account secret when provided * Fix lint * JSON parse service account * Added the template file for the ECE major (#600) * Added the template file for the ECE major * Update ece.ts * Update ece.ts * Requirement builder with the new data format (#588) * add test for minimize semester (#613) * Avoid tracking users that have not finished onboarding (#610) * Avoid tracking users that have not finished onboarding * Fix lint * Add analytics data to CoursePlan route (#607) * Create analytics container and add it to route file (copied from old branch) * Get newest doc to display as json * Pretty print json * Fix lint and type checks * Require auth to access route * Style page if no data shown * Add timestamp of last analytics run * Remove accidental commit * Bug fix for non-cp users * Refactor analytics retrieval to global-firestore-data * Optimize code by only retrieving newest document from collection (and adding timestamp field) * Change timestamp to date type * Remove null check, add comment * Add FA21 contributors to README (#619) ### Summary <!-- Required --> <!-- Provide a general summary of your changes in the Title above --> <!-- Itemize bug fixes, new features, and other changes --> <!-- Feel free to break this into sub-sections, i.e. features, fixes, etc. --> <!-- Some examples are shown below. --> This pull request adds the list of FA21 contributors to CoursePlan now that the semester is over. ### Test Plan <!-- Required --> Confirm the list matches the one on Notion here: https://www.notion.so/courseplan/CoursePlanners-cc431147c85d4d4abfdf47bdbe8b1a1c * Setup infrastructure for two-graph-based progress computation (#615) * Placeholder courses (#592) * Add placeholder component, place after every course temporarily * Make code improvements * Match placeholder styling to Figma in both views * Support FirestoreSemesterPlaceholder type, shows placeholders from Firestore * Define isPlaceholderCourse function, use to resolve type errors & fix bugs * Fix failing jest test * Fix lint * Implement warnings when semester mismatches, in either semester ordering * Simplify utility function * Update comment (and refresh deployment) * Add hover state to 6 dots, change cursor to grab * Delete comment * Implement Intl API for warnings * Add EAS Major (#590) * Added eas reqs * Added chem fulfillment option * (Mostly) finished EAS requirements * Added major * Unbroke test * Cleaned up frontend * Made labeling clearer * Cleaned up message * Fixed typo * Added field work requirement * Changed field work requirement * Specialize requirements (#611) * Implemented specialization functiionality * Added CS specialization * Ran prettier * Ran req-gen * Fixed linter errors * Refactored infra * Added math 2930 * Fixed linter error * Create useful exam mappings derived from exam data (#606) * map exam id to equivalent course and conditions * add exam to course and course to exam mappings * remove majors and colleges from export * fix college type * Address nits * fix tests * fix lint * Fix college type * use fromEntries * nit * Fix AG foreign language checker (#623) * Fix BIO major BIOMG 4320 requirement (#624) * Add exam course ids and conditions to requirements json (#625) * set up structure * add exam course ids and conditions to requirements json * move toggleable conditions to same level as course list * refactor decorators * fix lint issues * add back college name sort * conditional specializations property * Add check-req-json workflow job (#628) * Add check-req-json workflow job * Fix req-json discrepancy * Split up npm install and npm run req-gen * [easy] Fix AP/IB old infra bug for multiple equivalent courses (#631) * fix bug * fix object set * Remove hardcoded dropdown start year to fix new year Cypress bug (#629) * Make start year code common and use in cypress instead of hardcoding 2015 * Turn getYearRange into constant and clarify comment * Fix lint * Switch to new AP/IB infra (#627) * Switch to new AP/IB infra * rename no fulfillments course id * req-gen * fix lint * Update CS major (#626) * add CHEM 2080 requirement and CS 4414 * prettier? * did it update * what about now * now? * hi will * address nit and package lock changes * run req gen Co-authored-by: Will Spencer <will.e.spencer@gmail.com> * Fix HE credits double counting and DEA statistics req (#630) * Add script for migrating old subject colors to new subject colors (#614) * add color migration script * use if-else instead of switch * reuse switch with hasOwnProperty * lint * delete console log * Run on subjectColorsCollection instead of usernameCollection Co-authored-by: Benjamin Shen <bfs45@cornell.edu> * remove usernaemCollection import Co-authored-by: Hahnbee Lee <55263191+hahnbeelee@users.noreply.github.com> Co-authored-by: Benjamin Shen <bfs45@cornell.edu> Co-authored-by: Hahnbee Lee <hl985@cornell.edu> * Dashboard entrypoint (#616) * add icons * navbar design * add tools page * mobile responsiveness * address nits * add feature flag + mobile plan icon * prettier Co-authored-by: Hahnbee Lee <hl985@cornell.edu> * Deprecate old ap/ib infra (#632) * deprecate old ap/ib infra * fix lint * fix tests * add ap/ib exam id tests (#635) * Fix swim test bugs (#637) * change unique id from -1 to 'swim test' * change swim test requirement * refactor and fix deleteTransferCredit * unbreak requirement id test * Refactor constraint violations (#633) * refactor constraint violations * format * add object structuring to removeIllegalEdges * remove null return type * modify allowDoubleCounting function to be more accurate * Revert "modify allowDoubleCounting function to be more accurate" This reverts commit 03f3840. * change double counting perspective * polish requirementsThatDoNotAllowDoubleCounting * fix lint * fix double counting constraint, polish constraint violation function * preserve requirement order * small fixes * fix lint * remove minor auto double counting * address code comments * rename * fix test * fix courseToRequirementsInConstraintViolations * remove console log * Fix requirements double counting (#638) * fix bugs * remove console log * format * fix arg order * fix add modal opt out * refactor dummy uniqueid * refactor to getRelatedUnfulfilledRequirements * move opt out filter to opt out function * automatically fulfilled requirements * add comment * opt out of all requirements possibly in constraint violation * add minor-grad restriction for double counting Co-authored-by: Sam Zhou <sam@developersam.com> Co-authored-by: Will Spencer <will.e.spencer@gmail.com> Co-authored-by: zachary0kent <73757337+zachary0kent@users.noreply.github.com> Co-authored-by: Aryan Yadav <yadavaryan424@gmail.com> Co-authored-by: Toby (Ju Mong) Ko <jk2299@cornell.edu> Co-authored-by: ein <ein.chang@gmail.com> Co-authored-by: Hahnbee Lee <55263191+hahnbeelee@users.noreply.github.com> Co-authored-by: Hahnbee Lee <hl985@cornell.edu> * Revert "Spring 2023 Pre-Enroll Release" * Revert "Revert "Spring 2023 Pre-Enroll Release"" * SP24 Multiple Plans Release (#901) * updated contributors page (#890) * chore: added engrc 3027 as valid engrc (#891) * Add ENGRC 3025 as Engineering Communications (#900) * add engrc 3025 * run req-gen * multiple plans! (#877) * refactor whole codebase to plans instead of semesters * add functions that disappeared after merge * Implemented multiple plans feature flag and added add plan button * Multiple plans dropdown (#806) * Implement dropdown frontend - Add dropdown component - Add cypress tests for open/close states. * Add changing arrow direction * Change plan when clicked * Run checks * Enable feature flag before running test * Fix arrow resizing problem and address Zak changes * Change colors to set colors, try to fix test * Tests working + remove feature flag for time being * Finally passing the cypress tests <33 * Hover state cursor -> pointer * Refactor css into scss * Add scss file lol * migration script for multiple plans in firebase (#817) * migration script for multiple plans in firebase * Move Plan type to Migration Script * Multiple plans functions (#816) * Implement dropdown frontend - Add dropdown component - Add cypress tests for open/close states. * Add changing arrow direction * Change plan when clicked * Run checks * Enable feature flag before running test * Fix arrow resizing problem and address Zak changes * Change colors to set colors, try to fix test * Tests working + remove feature flag for time being * Finally passing the cypress tests <33 * Hover state cursor -> pointer * Refactor css into scss * Add scss file lol * Implement Vuex and Firestore functions * Update src/global-firestore-data/user-semesters.ts Co-authored-by: zachary0kent <73757337+zachary0kent@users.noreply.github.com> * Update src/global-firestore-data/user-semesters.ts Co-authored-by: zachary0kent <73757337+zachary0kent@users.noreply.github.com> * Update src/global-firestore-data/user-semesters.ts Co-authored-by: zachary0kent <73757337+zachary0kent@users.noreply.github.com> * Update src/store.ts Co-authored-by: zachary0kent <73757337+zachary0kent@users.noreply.github.com> * Run format * Add computed property for plans and currentplan --------- Co-authored-by: zachary0kent <73757337+zachary0kent@users.noreply.github.com> * Implement frontend for all modals to add, delete and edit plans. * Run npm format * call firestore functions for add blank plan * Fix type issue in teleport modal * fix issue with adding 2nd new plan * add plan type * add getter for current plan's semesters * missed one use of getter * delete duplicate functions * multiple plans is multiple planning?? * confirmation modal when plans are added/deleted/edited * fix bug to display correct plan * cypress tests * address edge cases in multiple plans (#895) * Implemented multiple plans feature flag and added add plan button * Multiple plans dropdown (#806) * Implement dropdown frontend - Add dropdown component - Add cypress tests for open/close states. * Add changing arrow direction * Change plan when clicked * Run checks * Enable feature flag before running test * Fix arrow resizing problem and address Zak changes * Change colors to set colors, try to fix test * Tests working + remove feature flag for time being * Finally passing the cypress tests <33 * Hover state cursor -> pointer * Refactor css into scss * Add scss file lol * migration script for multiple plans in firebase (#817) * migration script for multiple plans in firebase * Move Plan type to Migration Script * Multiple plans functions (#816) * Implement dropdown frontend - Add dropdown component - Add cypress tests for open/close states. * Add changing arrow direction * Change plan when clicked * Run checks * Enable feature flag before running test * Fix arrow resizing problem and address Zak changes * Change colors to set colors, try to fix test * Tests working + remove feature flag for time being * Finally passing the cypress tests <33 * Hover state cursor -> pointer * Refactor css into scss * Add scss file lol * Implement Vuex and Firestore functions * Update src/global-firestore-data/user-semesters.ts Co-authored-by: zachary0kent <73757337+zachary0kent@users.noreply.github.com> * Update src/global-firestore-data/user-semesters.ts Co-authored-by: zachary0kent <73757337+zachary0kent@users.noreply.github.com> * Update src/global-firestore-data/user-semesters.ts Co-authored-by: zachary0kent <73757337+zachary0kent@users.noreply.github.com> * Update src/store.ts Co-authored-by: zachary0kent <73757337+zachary0kent@users.noreply.github.com> * Run format * Add computed property for plans and currentplan --------- Co-authored-by: zachary0kent <73757337+zachary0kent@users.noreply.github.com> * Implement frontend for all modals to add, delete and edit plans. * Run npm format * call firestore functions for add blank plan * Fix type issue in teleport modal * fix issue with adding 2nd new plan * refactor whole codebase to plans instead of semesters * add functions that disappeared after merge * add plan type * add getter for current plan's semesters * missed one use of getter * delete duplicate functions * multiple plans is multiple planning?? * confirmation modal when plans are added/deleted/edited * fix bug to display correct plan * cypress tests * address edge cases in multiple plans * disable buttons * frontend fixes * frontend fix again * tour + refactoring * Revert "frontend fixes" This reverts commit 2e66263. * Revert "tour + refactoring" This reverts commit 49ee18d. * change button radius * refactoring again * silly format fix * frontend fixes * auto name for copy * sawNewFeature migration * tour! * firebase changes * slay? only appear once? * address edge cases in multiple plans * disable buttons * frontend fixes * frontend fix again * tour + refactoring * Revert "frontend fixes" This reverts commit 2e66263. * Revert "tour + refactoring" This reverts commit 49ee18d. * change button radius * refactoring again * silly format fix * frontend fixes * auto name for copy * sawNewFeature migration * tour! * firebase changes * slay? only appear once? * cypress --------- Co-authored-by: zachary0kent <73757337+zachary0kent@users.noreply.github.com> Co-authored-by: andxu282 <ajx8@cornell.edu> * get rid of console * copy name * fix * fix --------- Co-authored-by: zachary0kent <73757337+zachary0kent@users.noreply.github.com> Co-authored-by: andxu282 <ajx8@cornell.edu> * recompute reqs (#902) * add Viticulture and Enology major (#896) * added vien.ts file and import statements * imported vien to index * Added Physical Science Core for major * added chemistry requirement * fixed physical science core requirements logic * added Statistics requirement * added Plant Science Requirement and fixed name for Statistics * Add Viticulture & Encology Core * Add Major Electives w/ description * Add descriptions and Advisor * fixed logic * fixed order by (#903) * fixed order by * delete console --------- Co-authored-by: Hannah Zhou <91917682+plumshum@users.noreply.github.com> Co-authored-by: Simon Ilincev <simon@simonilincev.com> Co-authored-by: Andrew Xu <53061040+andxu282@users.noreply.github.com> Co-authored-by: zachary0kent <73757337+zachary0kent@users.noreply.github.com> Co-authored-by: andxu282 <ajx8@cornell.edu> --------- Co-authored-by: Will Spencer <will.e.spencer@gmail.com> Co-authored-by: Theresa Cho <54298311+tcho6319@users.noreply.github.com> Co-authored-by: Sam Zhou <sam@developersam.com> Co-authored-by: Hahnbee Lee <55263191+hahnbeelee@users.noreply.github.com> Co-authored-by: Benjamin Shen <bfs45@cornell.edu> Co-authored-by: Jason Tung <jt568@cornell.edu> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Vaishnavi Gupta <vg222@cornell.edu> Co-authored-by: neketka <neketka@gmail.com> Co-authored-by: einc <ein.chang@gmail.com> Co-authored-by: zachary0kent <73757337+zachary0kent@users.noreply.github.com> Co-authored-by: Aryan Yadav <yadavaryan424@gmail.com> Co-authored-by: Toby (Ju Mong) Ko <jk2299@cornell.edu> Co-authored-by: Hahnbee Lee <hl985@cornell.edu> Co-authored-by: Noah Schiff <47431797+noschiff@users.noreply.github.com> Co-authored-by: Zak Kent <zak33@cornell.edu> Co-authored-by: Zak Kent <73757337+zachary-kent@users.noreply.github.com> Co-authored-by: Andrew Xu <53061040+andxu282@users.noreply.github.com> Co-authored-by: Hannah Zhou <91917682+plumshum@users.noreply.github.com> Co-authored-by: Simon Ilincev <simon@simonilincev.com> Co-authored-by: andxu282 <ajx8@cornell.edu>
Summary
This pull request adds the linguistics major and minor to CoursePlan
Major
![image](https://user-images.githubusercontent.com/25535093/114282843-59b52800-9a14-11eb-8816-1083bbbe8585.png)
Minor
![image](https://user-images.githubusercontent.com/25535093/114283967-c03d4480-9a1a-11eb-8e05-a858bfa8d0e1.png)
Test Plan
Notes
Ran into a few issues when creating this major and minor, and was wondering if we currently have any way of handling these.