Marcus Pang's Project Portfolio Page
Project: TruthTable
TruthTable is a task-management software specially targeted towards tech-savvy university students leading teams in software engineering modules to build projects. It helps track the team’s progress and delegate tasks effectively.
Given below are my contributions to the project.
-
Code contributed: RepoSense link
- New Feature: Convert command syntax to use flags with dashes (
-
,--
) and empty spaces instead of underscores (_
). (PR #75)- What it does: Simplifies command syntax and makes the commands more familiar to CLI users, as it is designed after common CLI applications like git and docker.
- Justification: This feature is critical as this greatly improves the user experience for CLI users, especially those who are not familiar with the previous syntax where underscores were used.
- Highlights: Implementing this feature required deep understanding of libraries available that support POSIX-like command syntax. This necessitated time dedicated to research which library could support our implementations, and we settled on using picocli.
- New Feature: Add, delete, list members of a team. (PR #21,
#33, #34,
#88)
- What it does: Allows the user to add, delete, list members to their currently selected team. It also stores the member data in the team automatically in a local file.
- Justification: This feature is vital to TruthTable, as it is a core part of the product - creating and managing members in their teams.
- Highlights: Implementing this feature required thorough understanding of how commands are executed in the program.
It also required knowledge on how the
Storage
class works.
- New Feature: Command and flag aliasing, i.e. alternate names for commands and flags. (PR
#107)
- What it does: Allows the user to specify alternative names to carry out the same command. This allows experienced
users to enter the commands blazingly fast. For flags, we created short and long versions of flags (represented
with
-
and--
respectively), removing the need for users to type out the long version of flags every single time. - Justification: This feature is important for users as it allows them to enter commands and flags extremely quickly, as the full commands become extremely tedious to type out very quickly. This feature is also important in maximising productivity for users of varying experience level with CLI programs.
- Highlights: This feature required a deep understanding of the picocli documentation and methods, as there were many areas that needed to be changed: help message, standardising flags, flag and parameter descriptions, aliases for commands and subcommands, etc.
- What it does: Allows the user to specify alternative names to carry out the same command. This allows experienced
users to enter the commands blazingly fast. For flags, we created short and long versions of flags (represented
with
- Project management:
- Converted user stories to GitHub issues for
v1.3
. - Consolidated UG bugs after PE dry run on GitHub.
- Managed the release of
v1.2
on GitHub. - Delegated tasks for the team after finalising on changes to implement for
v1.3
.
- Converted user stories to GitHub issues for
- Enhancements to existing features:
- Documentation:
- User Guide (PR #175, #207):
- Added product introduction and key features
- Added a section on how to use the user guide
- Added sections detailing the different parts of the user interface
- Added a section to explain TruthTable’s CLI and command syntax
- Standardised command, parameter, and flag syntax for all commands
- Added command summary sections for each group of commands
- Added parameter constraints section
- Updated glossary section
- Improved navigability by adding “Back to Table of Contents” links in sections
- Developer Guide:
- Added explanations for
list_members
andadd_member
commands PR #85
- Added explanations for
- User Guide (PR #175, #207):
- Testing
- Bugs reported
- Unit tests for features implemented
- Contributions Beyond Project Team:
- PRs reviewed (with non-trivial review comments): Reviewed 42 PRs.
- Reported 5 bugs and suggestions for other teams in the class (examples can be found here).