Project: Mass Linkers

Mass Linkers is a powerful Desktop application tool that provides a centralised platform for Computer Science (CS) students to find study support from batchmates with common modules. The user interacts with it using a CLI, and it has a GUI created with JavaFX. It is written in Java.

Given below are my contributions to the project.

New Enhancements: find: (Pull requests #75, #82)

  • What it does: Find batchmates by their Telegram, GitHub, emails or phone numbers, with partially matching text input.
  • Justification: It provides greater convenience to the users as they are not limited to finding based on names. Being able to find Telegram handles, GitHub usernames, emails and phone numbers with partially matching text input is reasonable as these items are unique to individuals.
  • Highlights:
    • Implemented containsPartialWordIgnoreCase method in StringUtil to allow the finding of items with partially matching text.
    • Included test cases for containsPartialWordIgnoreCase in StringUtilTest.

New Enhancements: duplicate add and edit prevention: (Pull requests #207)

  • What it does: Users may now add/edit to names that already exists in the Mass Linkers!
  • Justification: Allowing identical names to coexist fits into the reality that people can share the same name. But Telegram handles, GitHub usernames, emails and phone numbers should be unique.
  • Highlights:
    • Updated isSameStudent in Student class.

New Feature: Mod Find (Pull requests #101)

  • What it does: Finds and lists batchmates who have taken or are taking certain module(s).
  • Justification: It allows users to effortlessly know the batchmates who have taken or are taking certain module(s).
  • Highlights:
    • Implemented ModFindCommand to handle finding of batchmates who have taken or are taking certain module(s)
    • Modified ModCommandParser to parse mod find command arguments.
    • Built test cases in ModFindCommandTest for ModFindCommand.
    • Included mod find parser tests in ModCommandParserTest.
    • Implemented ModContainsKeywordsPredicate to support module finding.

New Feature: Mod Find Taken/Taken (Pull requests #132)

  • What it does: Finds and lists batchmates who have taken/are taking certain module(s).
  • Justification: It allows users to effortlessly know the batchmates who have taken/are taking certain module(s).
  • Highlights:
    • Modified ModCommandParser to parse mod find taken and mod find taking command arguments.
    • Included mod find taken and mod find taking parser tests in ModCommandParserTest.
    • Implemented ModTakenContainsKeywordsPredicate and ModTakingContainsKeywordsPredicate to support this feature.

Project management:

  • Set up the GitHub team org/repo
  • Added issues for the team on GitHub.
  • Facilitated the workflow on Git.

Documentation:

  • User Guide: (Pull requests #248, #266)
    • Worked on find, mod find, mod find taken and mod find taking sections.
    • Proofread user guide for bugs.
  • Developer Guide: (Pull requests #120)
    • Responsible for Mod find feature category.
    • Designed sequence diagram and activity diagram for ModFindCommand.
    • Worked on glossary section.
    • Proofread developer guide for bugs.

Community:

  • PRs reviewed (with non-trivial review comments): #42
  • Contributed in weekly team meeting.
  • Reported \bugs and suggestions for team ProfNUS, another team in the module.

Tools:

  • PlantUML: Software to create UML diagrams
  • Git workflow