Releases: awesome-schedule/plannable
Sunsetting Plannable
With great sadness I want to inform you that I plan to archive plannable. As Lou's list is no longer available, Plannable cannot fetch data and maintain operability (technical users, please see details below).
About 7 years ago, SIS was a pain to use and so we, a team of then first-year students (from class 2022) created Plannable. Apparently, some students at CMU also suffered the same kind of pain and they cofounded Stellic, an excellent and official UVA tool which can be used as a replacement after Plannable sunsets. Since such good alternative exists, I no longer plan to maintain plannable.
Best,
Hanzhi Zhou
Technical details
Plannable is a frontend only website, meaning that it needs to fetch data from somewhere with CORS support and fast response. Lou's list has such API for us to download course catalog. After Lou's list is gone, the only possible source is SIS API which requires a backend script to fetch data.
For any brave volunteers which wish to substitute my role and continue to maintain Plannable, I believe it's not a very hard job. theCourseForum already has a script that downloads and parse the data. If we run a modified version of this script suitable for Plannable periodically on some cloud server and push the data to somewhere plannable can access, e.g. https://github.com/awesome-schedule/data, then Plannable can continue to function normally. You're also welcomed to fork Plannable to run any modifications.
Plannable v9.6: Minor changes and fixes
New Feature
- Now in the schedule compare tab, the date selection bar will also appear at the top just like the normal mode.

Changes
- Credits of courses with
Any Sectionwill also be included now in the total credit calculation. - Semester list now shows all available semesters (all the way back to Fall 2006) rather than the latest 10~15.
Fixes
- Fixed an internal bug of schedule computation that may occur under rare circumstances.
Internal Changes
- Continuous integration is migrated from Travis CI to GitHub Actions.
Plannable v9.5: Support Room Search
New Features
-
Added room search as per request in #44. It is available in both quick search and fuzzy search. Note that in fuzzy search, it is only available when you use special search syntax, e.g. ":room rice 130".

Fixes
- Fix credit calculation if multiple sections are taken under the same course.
Internal Changes
- Fuzzy search now uses full tokenization rather than a sliding window.
Plannable v9.4: Mirror Deprecation
Important notice to users
The Chinese mirror of plannable (https://cn.plannable.org or https://plannable.gitee.io) is deprecated! We suggest all users of the mirror to use the main website (https://plannable.org) instead. As some of you may have noticed, the mirror recently may not be always up-to-date. The reason is that our Chinese hosting website (gitee.io) no longer supports re-deploying on push, that means the mirror itself will not update even if we copy the content from the main website to the mirror using a script periodically. It now requires manual update, which is hard to automate. Therefore, until further notice, we no longer recommend users to use the Chinese mirror, even thought it is usable at the moment.
Changes
Increased the margin between the time column and grid display.
Internal Changes
Minor code cleanup and comments update.
Plannable v9.3: More Useful Links and Minor Fixes for Schedule Sorting
New Features
- For course/section modals, a link to theCourseForum course review page is added. Special thanks to theCourseForum team for supporting this.
- For course/section modals, links to Google Map are added for location information. Now you can check out your classes' meeting place on Google Map. Note that the locations shown on the Google Map may not be 100% accurate, because the meeting location may not have its full name stored in SIS, thus being ambiguous to Google Map.
Fixes
- When the weight for the sort option is invalid or zero, a warning will be shown instead of triggering undefined behavior
- When you change the weight of a sort option, it will be applied immediately rather than being applied after clicking a button (e.g. the reverse icon or the checkbox).
- Fixed unstable sort: now when you reverse a sort option and reverse it again, you will have your original sort order back. Previously, schedules with equal coefficients may change their order when you sort them again.
- Fixed some minor style issues
- Fixed some buttons using the hyperlink element on Plannable Deskop Apps
Plannable v9.2: More Internal Changes
Changes
- A time out of 5 seconds is added to requests to the backend. An error will be displayed instead of frozen at loading.
- The performance of similarity sorting is improved significantly (by at least 10x).
- If the fuzzy search yields no result, a text warning "Input too short or no results" will be shown to distinguish it from the starting page.
Internal Changes
- Some of the internal APIs are simplified.
- Some unit tests are rewritten.
- Searcher and ScheduleGenerator/Evaluator are ported to C++ to improve their performance and reduce overall code size. The way they were already written makes the porting very easy. Measured speed improvement is about 3x.
- Fuzzy search is moved from the worker thread to the main thread because it is much faster now and will not block the main thread long enough. This reduced the total code size by about 30kB. Relevant support code for WebWorker is removed.
Plannable v9.1: Internal Changes
New Features
- A warning icon will be shown if your session (for synchronizing profile with backend) expired and some of your profiles are marked as sync.
Fixes
- Partially fix the iCalendar timezone issue on some calendar software. The time exported for each event now uses local time.
Internal Changes
- When local profiles are newer on page load, new versions will always be created on the remote (backend).
- Events are now explicitly immutable and frozen
The following changes made to improve the performance and visual quality of large rendered schedules (e.g. one with >50 events and/or courses). These changes will improve the experience of some extremely rare usage scenarios.
- CourseBlocks have been inlined in GridSchedule to improve performance.
- Reactivity of Event/Course rendered on the grid is automatically disable for large schedules to improve performance.
- The last stage of the schedule rendering algorithm is changed from ad-hoc width expansion to an iterative linear-programming-based method with improvement in visual quality for large schedules.
- The rendering algorithm is rewritten in C++ and compiled to WebAssembly using Emscripten.
Release v9.0: Opt-in Backend Support
New Features
- You can now login to Hoosmyprofessor and synchronize profiles across devices! To do so, please
- navigate to the profile tab (the one with the download icon)
- click login to Hoosmyprofessor, and authenticate
- open the profile tab again
- click on the cloud icons next to the profiles you want to sync. If the icons turn green, you're good to go.
- The release note window can now be opened manually by clicking
View release noteat the bottom of the webpage.
Fixes
- Fixed the iCalendar export. Now it is able to handle online async courses (they will be excluded from the calendar).
- Fixed some non-loading assets issues in Plannable Desktop Apps
Changes
- Removed the non-working calendar import function.
- Remove the information/user guide tab on Plannable Desktop Apps
- The log history tab is now enabled by default. It is useful to check previous warnings or errors. However, old users need to turn it on manually. To do so, navigate to the settings tab and click on
enable log historyin theadvancedsection.
Release v8.5: Schedule Generation Improvement x2
Changes
- Courses whose sections' meeting times are all TBA/TBD will now appear in the course list of generated schedules, with warnings ⚠ being shown.
- Class search will be cleared when the generate button is clicked.
- Sections with TBA/TBD meeting time will now acquire a warning rather than a fatal error status.
Release v8.4: Schedule Generation Improvement
Changes
- Schedules will still be generated if all sections of a particular course have TBA meeting time or conflicts. The resulting schedules will not contain such a course. This is considered to be better than the previous behavior under the same circumstance, in which no schedules are generated at all. This is more useful under the current COVID pandemic because a lot of courses are online asynchronous, which means they do not have dedicated meeting time.
