Project PortFolio Page: daniellimzj
Overview
LifEasier helps Computer Engineering (CEG) students to manage their classes, social events, deadlines and school notes through the Command Line Interface (CLI). The project consists of approximately 12k Lines of Code (LoC). The following describes my personal contributions to the project, and what specific features and enhancements I implemented. It also contains a record of the documentation I helped to contribute.
Summary of Contributions
The following section provides a summary of what I have contributed to the project.
Code Contributed
A summary of my contributions generated by RepoSense can be found here. In total, I have contributed over 2600 lines of code to the project. Approximately half of this is functional code, contributing to the features and the enhancements to the project. The remaining half is split roughly equally between documentation and test code, with slightly more documentation.
Enhancements Implemented
I contributed the following functionalities to the project:
- The sleepTime command. This command allows users to find out how much time they have to sleep based on their schedules.
- The freeTime command. This command allows users to find out how much free time they have in their day based on their schedules.
- Recurring tasks and auto deletion of expired tasks. I implemented the functionality to allow users to add recurring tasks. I also implemented the functionality to update tasks based on their remaining recurrences, and to also delete tasks that are expired in the past.
- Handling of duplicate tasks. I implemented the functionality to stop users from adding duplicate tasks or very similar tasks into their schedule.
- Overhauling of User Interface. I overhauled the user interface of the project for v2.1 of the project. This was after user feedback that it was quite difficult to differentiate inputs and different types of outputs. Behind the scenes, this also involved ensuring that all printing was only done in the
Ui
class, and not scattered in the other classes. - Initial parsing functionality. I worked on the initial parsing of commands for v1.0 of the project. However, this was later overhauled by other group members to greatly improve the user-friendliness of the project.
Contributions to the User Guide
In the User Guide, I wrote the sections related to the features and enhancements I implemented. Namely, these are Section 3.11, Section 3.12, and Section 4.2. I also contributed to the formatting and ensuring consistency across the User Guide, and added some graphics.
Contributions to the Developer Guide
In the Developer Guide, I also wrote the sections related to the features and enhancements I implemented. The UML diagrams in these sections were also contributed by me. These can be found in Section 4.9 and Section 4.11. I also contributed Section 3.2. I also contributed much of some of the non-specific sections, such as Sections 8.0, 9.0, 10.0 and Appendix B.
Contributions to Team-Based Tasks
In terms of contribution to team based tasks, I feel I contributed most significantly in the following areas:
- I set up the GitHub team organisation and repository at the initial stages of the project.
- I performed the initial setup of the tools that we used, such as GitHub Pages, GitHub Actions, and Gradle.
- I was largely in charge of maintaining the issue tracker, though the rest of the team did contribute to this as well.
- I was in charge of release management for v1.0.
- I contributed greatly to non-specific areas in the User Guide and Developer Guide. For example, I helped in writing much of the last few sections (8.0, 9.0, 10.0) in the Developer Guide.
- I contributed a large part of the overall formatting of both the User and Developer Guide. For example, I ensured formatting was consistent in both the User and Developer Guide, and added some small graphics to the User Guide.
Review / Mentoring Contributions
Throughout the project, I tried to ensure that the overall high level architecture of the project remained neat. This was difficult as our team added many features, and it was difficult to ensure the components remained neatly organised. I also tried to give comments in my teammates’ Pull Requests to ensure the overall code quality standard remained high. This also extended to helping with documentation issues like ensuring accuracy of the UML diagrams used.
Contributions Beyond the Project Team
Throughout the project, I kept updated on the forum to ensure that I knew of the issues other groups were facing, and how these might apply to our project. I also took peer review exercises seriously in order to give sincere and meaningful feedback to other teams.