Project: TuitiONE

TuitiONE is a desktop address book application used for teaching Software Engineering principles. 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: Added a feature called Enroll(Pull requests #75, #79, #84, #98) that established bi-directional linkages between Student (previously Person) and Lesson entities.
    • What it does: Allows users to enroll a student of a specific grade into a lesson with that same respective grade.
    • Justification: A key feature in the application in order to establish the bi-directional linkages between a Student and a Lesson.
    • Highlights:
      • A Student can be enrolled into a Lesson if and only if:
        1. The Student is not currently enrolled in the specific Lesson.
        2. The Student has the same grade as the Lesson.
        3. The Student must not currently be enrolled in 10 or more Lessons.
        4. The Lesson must not currently have 15 or more Students enrolled.
      • Abstracting logic for ease of usage within other packages.
      • Ensuring that model updates the Student and Lesson to reflect the bi-directional linkage.
  • Enhancements to existing features:
    • Updated the GUI logos such that they are the same for both Mac OS and Windows OS: (Pull requests #280).
    • Updated the GUI to wrap texts for Name, Email, and Address: (Pull requests #280).
    • Changed EnrollCommand to accept lessonIndex instead of lessonCode: (Pull requests #147).
    • Wrote additional tests for existing features to increase coverage for new entities and constraints: (Pull requests #207, #190, #197, #147, #112, #98).
    • Updated Find feature to allow partial word searches: (Pull requests #116).
    • Refactored Person package into Student package: (Pull requests #117).
    • Refactored Tag package into Remark package: (Pull requests #140).
  • Code contributed: RepoSense link.

  • Project management:
  • Documentation:
  • Community:
    • PRs reviewed (with non-trivial review comments): (Pull requests #95, #142).
  • Tools:
    • Utilize SceneBuilder to build GUI Layout