Ming Jiang'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.
- New Feature:
assign random
- Added command to assign tasks randomly.- What it does: Assigns a particular task to a random team member that is not already assigned to the task
- Justification: When team leads have to assign many tasks to people, this might lead to “decision paralysis”. A lot of times, a task can be done by anyone. This feature allows team leads to assign tasks without needing to decide who specifically to assign the task to.
- Highlights: The
java.util.Random
class was used to generate a random user index to be assigned. Care was taken to first filter users that have not been assigned that task (so as not to assign the same user twice).
- New Feature:
summary
- Added command to see a quick summary of the tasks each member is working on.- What it does: Displays a breakdown of the number of tasks assigned to each person.
- Justification: In a large project, it’s useful to have an overview on the number of tasks each person is working on to ensure a reasonably fair distribution of work. However, manually counting the number of tasks done by each user is very time-consuming.
- Highlights: For the implementation of this feature, a
HashMap
was used to keep track of the counts of tasks for each team member. As the assignees of each task are stored within each team member, a linear pass through the list of tasks and each of its members was done instead of a linear pass of tasks for each member. This implementation reduces the runtime of the feature to linear (i.e.O(n)
) in terms of task-assignee pairs.
- New Feature: Added completion percentage of tasks to the UI.
- What it does: Displays the number of completed tasks, total tasks and a percentage of completion above the task list.
- Justification: This feature allows the user to see the amount of work left at a glance, which is very useful for a task management application.
- New Feature:
tasksof
- Allow users to see tasks assigned to each user.- What it does: Given a particular user (specified by index), it shows the tasks assigned to that user.
- Justification: This feature allows the user to see the tasks assigned to a particular user, which is very useful for a task management application.
-
Code contributed: RepoSense link
- Project management:
- Linked teammates’ PRs to relevant issues
- Closed repeated or out-of-scope issues
- Assigned unassigned issues to relevant teammates for milestones 1.3 and 1.4
- Enhancements to existing features:
- Update sample data to have more realistic tags
- Allow deleted users to cascade through the model (update teams and tasks to delete the member)
- Documentation:
- User Guide:
- Add details for
tasksof
,summary
andassign random
commands - Update inaccurate command syntax in User Guide highlighted during PE Dry Run
- Reorder commands into sections
- Add details for
- Developer Guide:
- Updated Logic component, Model component and Storage component diagrams and descriptions
- Added description of Assign Task Randomly feature
- Reviewed and edited section on Manual Testing
- Reviewed and edited section on Effort
- Improved formatting (changed ordering of contents, fixed hierarchy of elements in table of contents)
- User Guide:
- Community: