Project: Source Control

Source Control is a desktop application for CS1101S professors to manage the performance of their students. Users interact 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 addalloc: Added the ability to add allocation
    • PR #117
    • This feature is necessary for the target user to know which groups a student belongs to. It also serves as a follow-up feature of the add group feature.
    • This enhancement is the sole entrypoint for individual allocation of students to existing groups. The implementation was not trivial as a sub-class needed to be created to pass over the allocation information.
  • New Feature addscore: Added the ability to add assessment score
    • PR #118, #243
    • This feature is necessary for the target user to add and modify scores apart from bulk import.
    • This enhancement is the first feature that dealt with the modification of assessment data. The implementation was challenging due to the two-referral between assessments and students. Although the feature is quite similar to addalloc feature, a considerable amount of time was required for writing the code and tests.
  • New Feature show: Added the ability to show summary information
    • PR #168, #176, #177, #267
    • This feature is necessary for the target user to view the summary information together with the distribution graph.
    • This enhancement is the only feature that was implemented jointly by three different members. The implementation required considerable efforts to understand the graph implementation built by others in order to integrate supplementary parts into the complete feature.
  • Code contributed: RepoSense link
  • Project management:
  • Enhancements to existing features:
    • Adapted code from AB3 to suit the context of Source Control (PR #77, #78, #80, #81, #85, #86, #87, #89)
    • Maintained consistency of error messages (PR #244)
  • Documentation:
    • User Guide:
      • Adapted content from AB3 to suit the context of Source Control (PR #56, #57)
      • Added documentation for the features addalloc and addscore (PR #58)
      • Made cosmetic enhancements jointly via PR reviews (PR #203)
    • Developer Guide:
      • Added implementation details of the addalloc, addscore, show features (PR #278)
      • Maintain the consistency between activity diagrams used in the guide (PR #283)
  • Community:
    • PRs reviewed (with non-trivial review comments) (PR #203, #174)
    • Resolved merge conflicts by choice (PR #183)
    • Added stub classes and typical data used commonly as test utilities (PR #117, #130)
    • Reported bugs and suggestions for other teams in the class (see #325, #327, #307)