Skip to content

v0.7.2 [2025-12-10]

Latest

Choose a tag to compare

@david-yz-liu david-yz-liu released this 10 Dec 15:53
b0711be

✨ New features/enhancements

  • Updated the Zoom In/Zoom Out buttons on the graph page to Awesome Icons from +/-
  • Added the React ErrorBoundary library and implemented an ErrorBoundary for the Graph component in the Container component and js/components/draw/main.js
  • Updated the export button on the graph and grid pages to Awesome Icons; also added highlight effect and tooltip popup on hover
  • Added an autocomplete feature to the search bar js/components/generate/GenerateForm, also rewrote tests related to this feature
  • Added a route to access all POST codes stored in the database with test coverage
  • Added the js/components/generate/AutocompleteDropdown.js component to the program field of Generate
  • Updated the colour of the rendered options for the AutocompleteDropdown component
  • Added a database-migrate CLI option that runs SQL migrations
  • Updated the course info modal timetable styling and layout
  • Updated drag and drop functionality on the graph page to support mobile devices
  • Added a recursive function to remove Requirements from the Requirement Tree

🐛 Bug fixes

  • Fixed a bug that was causing the focus info popup to appear blank
  • Fixed a bug on the generate page causing extraneous ellipses to appear when hovering over a course to highlight its prerequisites
  • Fixed a bug on the generate page where an extraneous info popup would appear when hovering over the top left corner of the graph viewing window
  • Fixed a bug that led code to crash when parsing all pre-generated graphs from svg (i.e., program graphs)
  • Fixed a bug where redundant boolean nodes were being generated
  • Fixed a bug where the course info modal title did not display the H1/Y1 suffix
  • Fixed a bug where the focus tab functionality was not working as intended

🔧 Internal changes

  • Upgraded Jest to v30
  • Upgraded jest-environment-jsdom to v30
  • Refactored navigation bar into a React component (for the graph, grid and generate pages only - the about page navigation bar is still rendered using Blaze)
  • Refactored backend tests to use tasty and tasty-hunit instead of HUnit
  • Refactored course insertion and query functions to align with MVC architectural principles
  • Renamed functions that query the database for post/program information from post -> program
  • Modified CircleCI configuration so that Jest tests now emit coverage reports which are then uploaded to Coveralls
  • Refactored export modal behaviour such that it is handled entirely through React state, rather than through DOM manipulation with vanilla JS
  • Added test cases for the ExportModal component in js/components/common
  • Updated backend tests to use tasty-discover
  • Added documentation for running a subset of the backend tests
  • Renamed Post and PostCategory database tables to Program and ProgramCategory respectively through a database migration
  • Deleted app/Response/Image file and refactored app/Util/Helpers to include returnImageData
  • Added test cases for the retrieveProgram function in Controllers/Program
  • Removed duplicate code from mockRequest and runServerPartWith in backend-test/TestHelpers.hs
  • Initialized a SchemaVersion table for the purposes of running robust database migrations
  • Updated CircleCI configuration to update wget version (to fix ImageMagick download error)
  • Reverted previous CircleCI configuration change
  • Switched CircleCI ImageMagick download to use http
  • Modified CI config to take advantage of partial dependency caching and exploit parallelism when resolving/updating dependencies
  • Migrate graph-related components (FocusBar, FocusTab, GraphDropdown, GraphFallback, Infobox, and Sidebar) from classes to functions
  • Added lint-staged development dependency and fixed eslint issues
  • Updated CircleCI ImageMagick setup to avoid using AppImage executable and to cache download