Project: TeachBook

TeachBook is a desktop app made for primary and secondary school teachers to manage student contacts. 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.

  • New Feature 1: Added the ability to switch among classes
    • What it does: This feature allows users to switch to another class to see the student list of that class and manipulate it (e.g. add student to the class).
    • Justification: This feature is significant to the app because the app is designed in the way that users need to use a command to switch among different classes.
  • New Feature 2: Added the remark feature
    • What it does: This feature allows users to give any special notes to a student.
    • Justification: This feature improves the usability of the app because a typical user (i.e. teacher) may often want to add a remark to a student, such as the student needs to improve in study.
  • New Feature 3: Added the feature to delete multiple students at once
    • What it does: This feature allows users to delete multiple students at once, instead of deleting one by one.
    • Justification: This feature improves the usability of the app because it makes the deletion process more flexible for users.
  • Code contributed: RepoSense link

  • Enhancements to existing features:
    • Modified the logic of the existing delete command to accommodate the added class component
  • Documentation:
    • User Guide:
      • Came up with new command formats
      • Updated the “Notes about the command format” section: commit
      • Updated the screenshot of feature help: commit
    • Developer Guide:
      • Added design considerations of the class component: commit
      • Added implementation details of the deleteClass feature, where two object diagrams and one sequence diagram were used: commit
      • Updated the “Non-Functional Requirements” section: commit 1, commit 2, commit 3
      • Added some user stories and use cases: commit 1, commit 2, commit 3
      • Added instructions for manual testing for features delete, select, remark: commit
      • Updated hyperlinks to match the project: commit
  • Project management/Contributions to team-based tasks:
    • Renamed person to student, address book to teachbook
    • Set up protection of master branch on GitHub
    • Managed releases v1.2 - v1.4 (5 releases) on GitHub
    • Did video recording for v1.2 demo of the app and uploaded it onto YouTube
  • Community:
    • PRs reviewed (with non-trivial review comments): #76, #90, #98
    • Reported bugs and suggestions for other teams in the class: example