Project: Reeve

Reeve is a desktop companion application for one-on-one private tutors designed to help them better manage their students’ academic and administrative needs. The user interacts with it using a CLI, and it has a GUI created with JavaFX. It is written in Java, and has about 10 kLoC.

Given below are my contributions to the project.

  • Feature Addition: Added the ability to record and manage questions from students.
    • What it does: Allows the user to log questions from students, resolve them and delete them when no longer needed.
    • Justification: This helps tutors significantly as it allows them to keep track of questions from their students and gives them time to resolve them. Furthermore, the ability to record the solution allows tutors to use it to answer future similar questions from students.
    • Highlights: Since this is a new feature with its own set of commands, the implementation required modifying almost every module. Some existing commands had to be altered as well. Almost all new functional code had accompanying test cases, resulting in 1697 new lines of code with 84.50% coverage.
  • Feature Addition: Added the ability to store tuition fee payment data and find all students with overdue fees.
    • Highlights: In order to implement monitoring of payment dates, I had to create a more manual approach to parsing strings into dates as the parse() method in the LocalDate API was too lenient (allowing inputs such as 31/2/2020).
  • Code contribution: RepoSense link

  • Project management:
    • Managed releases v1.2 to v1.4 (3 releases) on GitHub.
    • Set up Github repo and issue tracker.
    • Maintained issue tracker.
  • Enhancements to existing features:
    • Wrote additional tests for existing and new features to increase coverage (#75).
    • Enhanced code quality to ensure adherence to abstraction levels, improve defensiveness and reduce coupling (#103 and #194).
    • Added utility and classes methods to minimise code duplication (#211 and #213).
  • Documentation:
    • User Guide:
      • Documented the overdue (#79) and question (#71) features.
      • Did cosmetic tweaks to existing documentation of features: (#140 and #212).
    • Developer Guide:
      • Added implementation details of the overdue (#105) and question (#103) features.
      • Included sequence and activity diagrams for the above features.
  • Community:
    • Reviewed PRs (with non-trivial review comments): #60, #62, #68, #214
    • Reported bugs and suggestions for other teams in the class (examples: 1, 2, 3)
    • Contributed to forum discussions (examples: 1, 2)