Project: ClassMATE

ClassMATE is a desktop application designed for instructors of the CS2101 Module in NUS to easily store class and student details. 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.

  • Code contributed: RepoSense link

  • Enhancements implemented:
    • Viewing student functionality
      • Command for viewing a student
      • Creating a pop-up window to display student information
    • Tutorial Group implementation
      • Creating TutorialGroup and its fields, GroupNumber and GroupType
      • Saving tutorial groups in JSON file under each tutorial class
      • Commands for adding and removing tutorial groups
  • Documentation:
    • User Guide:
      • Modifying introduction to include target audience and make it user-centric
      • Add an overview of main features
      • Documentation for adding and removing tutorial group from tutorial class commands
    • Developer Guide:
      • Documentation for adding and removing tutorial group from tutorial class
      • Documentation for Non-functional Requirements
      • Updated class diagram for Model component to include tutorial groups
      • Created sequence diagram for AddGroupCommand
      • Activity diagram for recommended workflow for ClassMATE
      • Use cases for adding tutorial group
  • Team-based tasks:
    • Updated the link of the GitHub Actions build status badge
    • Tested features and reported bugs between project iterations #123
    • Bug fixing. Pull Requests: #237, #200
  • Review/mentoring contributions:
    • PRs reviewed: Suggested an alternative implementation to reduce code repetition #198
  • Contributions beyond the project team:
    • Reporting bugs in other team’s products. Some examples include: 1, 2
    • Reviewing the User Guides and Developer Guides of two peer teams