Hardik's Project Portfolio Page
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.
-
Code contributed: RepoSense link
- Tag Command: Added the ability to add multiple tags to task.
- What it does: Adds tags to tasks
- Justification: This feature improves the app significantly as it allows the user to tag tasks such as assignments, quizzes, meetings, presentations, etc.
- Highlights: It required in depth understanding of how the optional parameters work. It was also challenging as I had to change the implementation from having one tag for each task to multiple tags for each task.
- Contribution: Created the
TagCommandandTagCommandParserclasses.
- Undone Command: Added the ability to mark a task as TODO.
- What it does: allows the user to mark a task as TODO. Also updates the progress bar to show number of task that are done.
- Justification: This feature improves the app significantly as the edit command does not allow the user to change the state of the task from done to ToDo.
- Contribution: Added the
UndoneCommandclass.
- Sort Command: Added the ability to sort the task list.
- What it does: Sorts the task list based on sort type -
timeorpriorityand sort order -asc(ascending) ordesc(descending) order. - Justification: This feature improves the app significantly as the user is able to sort the tasks based on time which allows the user to focus on the tasks due first. The user is also able to sort tasks based on priority which allows the user to prioritize the tasks based on their importance.
- Highlights: It required in depth understanding of the lambda function, functional interface BiFunction,
modelandlogiccomponents. The implementation was a bit challenging as it was not done the conventional way using the LocalDateTime date-time object. - Contribution: Created the
SortCommandandSortCommandParserclasses.
- What it does: Sorts the task list based on sort type -
- Command History: Added the ability to access previous commands.
- What it does: Allows the user to access the previous command history for a particular session with the help of
/prevorup arrow keycommand and/nextordown arrow keycommand. - Justification: This feature improves the app significantly as the user can easily access the previous commands without having to retype the whole command again.
- Highlights: It required in depth understanding of the key listeners in the
uicomponent andcommandscomponent. - Contribution: Created
CommandHistoryclass and updated theMainWindowclass in theuicomponent.
- What it does: Allows the user to access the previous command history for a particular session with the help of
- Project management:
- Managed release
v1.3c-v1.4(2 releases) on GitHub
- Managed release
- Enhancements to existing features:
- Incorporated the existing priority feature with the edit command.
- Documentation:
- User Guide:
- Added documentation for the features
tag,edit,sort,/prevand/next.
- Added documentation for the features
- Developer Guide:
- Added implementation details of the
sortfeature. - Added a fair share of user stories.
- Added some use cases.
- Added implementation details of the
- User Guide:
- Community: