Project: Pupilist

Overview

Pupilist is an all-in-one app that allows teachers to plan and organize their student’s workflow, helping them ease their workload. The user interacts with it using a CLI, and it has a GUI created with JavaFX. It is written in Java.

Summary of Contributions

  • New Feature: Added the ability to add homework. (Pull request #44)
    • What it does: allows the user to add a homework item to an existing list of homework belonging to a student.
    • Justification: This feature is required to help our target audience, tutors, keep track of what they have assigned to their student easily.
    • Highlights: This enhancement required an in-depth analysis of design alternatives. While there were similar existing commands, none of them used a mutable list of individual items, since this was the first list-type field to be implemented. Implementing this feature required analyzing existing commands and modifying them heavily.
  • New Feature: Completed adding the ability to view individual person cards. (Pull request #87)
    • What it does: allows the user to view the full details of a person card.
    • Justification: This feature allows the list mode of the app to display truncated details of a contact, and view the full details of the contact only if needed. This prevents the list from becoming too long and prevents visual clutter.
    • Highlights: This feature was partially implemented by a groupmate, but was incomplete and not feasible to use for the final product. Completing the feature required analyzing the design of the product and understanding how the model is maintained to smoothly integrate this feature into the app while preserving the existing design and structure.
  • Code contributed: RepoSense link

  • Project management:
    • Oversaw branch protection rules and CI on GitHub
  • Enhancements to existing features:
    • Updated edit command format to work for list-type fields and removed required person index from original implementation (Pull requests #68, #109)
    • Wrote additional tests for existing features (Pull requests #86, #184)
  • Documentation:
    • User Guide:
      • Ensuring all commands and their usages are correct and consistent #114, #128
    • Developer Guide:
      • Added non-functional requirements and use case for hw feature #32
      • Added implementation details of the hw feature. #96
  • Community:
  • Tools:
    • Integrated CodeCov to the project