Project: Swift+

Swift+ is a project management application designed to help software engineering (SWE) project leads in tracking their daily interactions with contacts. The user interacts with Swift+ mainly through a Command Line Interface (CLI). The application is written in Java and has about 10k LoC.

Here are my contributions to the project.

  • Code contributed: RepoSense link
  • New feature: Added the ability to find tasks

    • Relevant pull request(s): #58
    • What it does: This feature allows users to search for tasks using keywords.
    • Justification: This feature eases the process of finding tasks, since users can easily search using keywords.
  • New feature: Added deadline, description, and isDone fields for tasks

    • Relevant pull request(s): #103, #132
    • What it does: This feature give users the option to add deadlines and descriptions to their tasks. It also allows the user to mark their tasks as completed and mark their tasks as incomplete.
    • Justification: This enhancement allows users to add more information to their created tasks.
    • Highlights: The main challenge while implementing this task was making the deadline and description optional. Although Java has the Optional class to wrap around optional values, it was difficult to decide where to add this layer of abstraction while considering the Single Level of Abstraction Principle (SLAP).
  • Enhancements to existing features:

    • Renamed find command from AB3 to find_contact (#56)
    • Added task sorting feature by chronological order of deadline (#137)
  • Project management:

    • Managed releases v1.1 to v1.3 (4 releases) on GitHub
    • Updated Jekyll site-wide settings (#10)
    • Removed AB3 traces from user guide (#34)
  • Documentation:

    • User Guide:
      • Added sections on how to use this user guide and how to get started (#193)
      • Added documentation for the find_task command
      • Made cosmetic changes to header colors and spacing to match color scheme of app
    • Developer Guide:
      • Added implementation details of optional Description and Deadline fields (#249)
      • Added user stories, target user profile, and value proposition (#16)
      • Added use cases 7 to 9 (#249)
  • Community: