Lucia Tirta Gunawan's Project Portfolio Page
Project: Lifebook
Lifebook is a desktop task management application created as an assignment for a module that teaches Software Engineering principles. The user interacts with it using a CLI, and it has a GUI created with JavaFX. It is written in Java, and has about 13 kLoC.
Given below are my contributions to the project.
- Tagging of task: Added tag field to
Tasks
, and include the tags during the creation ofTask
. (#107)- What it does: allows the user to add tags to
Todos
orEvents
during object creation and keep a record of them as the attribute ofTask
in theTaskList
. - Justification: allows user to label their tasks for better task organisation.
- Credits: inspired from the tagging of task in Duke.
- What it does: allows the user to add tags to
- Find Contacts by Name or Tag, Find Events or Todos by Description or Tag: Implemented the ability for users to find particular
Contacts
,Events
, orTodos
by name/description/tag. (#200, #109, #80, #55). Find tag was previously show tag, but then later merged with find name feature as suggested in the mock PE issue #180- What it does: allows the user to find
Contact
by name or tag, andEvents
orTodos
by description or tag. - Justification: allows user to easily find a specific contact or task.
- Highlights: this requires predicate that can handle filter by name/description only, filter by tag only, and filter by both name/description and tag depending on the user input.
- Credits: inspired from find contact by name from AddressBook 3.
- What it does: allows the user to find
- Overall GUI Layout and Styling: Change the GUI theme, style the UI components to follow the layout in the previously designed mock UI. (#130, #82, #76, #56)
- What it does: Organise contacts and task in the tab panel which can automatically navigate to the corresponding tab on command execution, organise the panels with grid for better UI, make the UI responsive
- Justification: allows users to easily access the contact and task by displaying the UI in a nice layout and style.
- Highlights: made it easier for the developing team to visualise any features that they may have implemented. Implementing this GUI was challenging at first due to my unfamiliarity with JavaFx. The auto navigation of the tab panel requires additional field in the Command Result to indicate the tab a command corresponds to.
- Credits: the initial GUI implementation for the
TaskList
was inspired by the GUI of the AddressBook.
-
Code contributed: RepoSense link
- Project management:
- Authored, tracked and closed issues on Github
- Reviewed PRs on GitHub
- Enhancements to existing features:
- Documentation:
- User Guide:
- Developer Guide:
- Community:
- Other contributions:
- Designed the Mock UI using Figma.
- Contributed to the creation of Lifebookâs demonstration video (script, voiceover, and video editing).
-
Contributions to the Developer Guide:
-
Ui Class Diagram
-
FindCommandParser Class Diagram
-
Predicate Diagram
-
FindCommand Class Diagram
-
Sequence Diagram of Find Command Feature
-
Activity Diagram of Find Command Feature
-
-
Contributions to the User Guide:
-
Find Contact Command
-
Find Event and Find Todo Commands have similar usage as the command above.
-