Project: Uni-Fy

Uni-Fy is a desktop app for managing your university workload and it is designed by university students for university students. The user interacts with it using a CLI, and it has a GUI created with JavaFX. It is written in Java, and has about 10 kLoC.

Given below are my contributions to the project.

  • New Feature: Added a weekly progress bar to keep track of all tasks
    • What it does: allows the user to visualise weekly progress
    • Justification: This feature improves the product significantly because a user is able to keep track of their weekly task completion progress.
    • Highlights: This enhancement affects existing commands and commands to be added in future (commands that perform changes to the task). It required an in-depth understanding of model, logic and JavaFX components. The implementation too was challenging as it required updating of the UI using Observables and ensuring that all commands that modify/changes tasks also updates the bar.
    • Contribution: Created the progress bar UI element and linking it to model: #191
  • New Feature: Added the ability to mark a task as done.
    • What it does: allows the user to mark a task as done. Also updates the progress bar to show number of task that are done.
    • Justification: This feature improves the product significantly because a user is able to keep track of what tasks they have done and what tasks needs to be done.
    • Highlights: It required an in-depth understanding of css for the tag styling/changing of colours.
    • Contribution: Created the state model and linking it to the UI(progress bar): #187
  • New Feature: Added priority property to task.
    • What it does: allows the user to assign priority to their tasks.
    • Justification: This feature improves the product significantly because a user is able to prioritise their tasks.
    • Highlights: It required an in-depth understanding of css for the tag styling/changing of colours.
    • Contribution: Created the priority model as well as UI element: #209
  • New Feature: Contributed to the show feature.
    • What it does: allows the user to show weekly tasks by each day of the week in a weekly panel.
    • Justification: This feature improves the product significantly because a user is able to easily visualise their weekly tasks.
    • Highlights: It required an in-depth understanding of model, logic and JavaFX components. The implementation too was challenging as it required updating of the UI using Observables and ensuring that other commands that updates tasks would also update the UI.
    • Contribution: Created the initial framework for the feature. Linking the logic and model of show with the UI: #128, #168
  • Enhancements to existing features:
    • Improve find feature to allow more predicates and find base on date, tag. #169
    • Improve the GUI design (Pull requests #71, #73, #89, #91, #168, #191, #202)
  • Code contributed: RepoSense link

  • Project management:
    • Managed releases v1.2 - v1.3b (3 releases) on GitHub
  • Documentation:
    • User Guide:
      • Added section for navigation, icons and glossary: #174
      • Added documentation for the features find, list and done: #18, #183, #286
      • Did cosmetic tweaks to existing documentation of features help: #284
      • Improve introduction and command table : #184
    • Developer Guide:
  • Community:
    • PRs reviewed (with non-trivial review comments): #66, #74, #121, #194, #285
    • Reported bugs and suggestions for other teams in the class (examples: 1, 2, 3, 4, 5, 6, 7, 8, 9)
  • Tools:
    • Integrated a third party library (Apache commons) to the project (#278)