Project: Addendum for Teaching Assistants (ATAS)

ATAS is a desktop application designed to be a handy in-class companion for CS1010S Teaching Assistants. It aims to elevate users’ efficiency and make their experience of handling administrative tasks as seamless as possible. The user interacts with it using a CLI, and it has a GUI created with JavaFX. It is written in Java.

This project is based on the AddressBook-Level3 (AB3) project created by the SE-EDU initiative. AB3 has about 10 kLoC, while ATAS has about 20 kLoC modified/added on top.

Given below are my contributions to the project.

  • Code contributed: RepoSense link
  • New feature: Added the model component for sessions. (pull request #73)
    • What it does: essentially the backend component for the above entity that will change depending on the logic component.
    • Justification: This feature was included early in iteration v1.2 in order to facilitate a smoother working process and to ensure more of the team is involved with implementation (they can work on the same feature by implementing the other components).
    • Highlights: This enhancement allowed for easy extensibility and was implemented with good design principles in mind.
  • New feature: Added a “random name generator” command that allows the user to receive the name of a randomly-selected student in the student list. (pull request #112)
  • New feature: Added the ability to undo/redo previous commands. (pull request #131)
    • What it does: allows the user to undo all previous commands one at a time. Preceding undo commands can be reversed by using the redo command.
    • Justification: This feature improves the product significantly because a user can make mistakes in commands and the app should provide a convenient way to rectify them. This is especially so when attempting to type fast (on the CLI) is prone to typographical errors, etc.
    • Highlights: This enhancement affects existing commands and commands to be added in future. It required an in-depth analysis of design alternatives. The implementation too was challenging as it required to existing commands.
  • Project management:
    • Set up the GitHub team org/repo and managed the GitHub settings for the team
    • Set up and maintained the issue tracker and added relevant tags for issues
    • Managed releases v1.1 - v1.4 (all 4 releases) on GitHub
  • Enhancements to existing features:
    • Updated the existing list command (pull request #65)
    • Updated existing AB3 legacy package names into ATAS-relevant names (pull request #96, #120)
    • Updated the GUI color scheme (pull requests #114, #207)
    • Added a new tab (ATAS) to the UI (pull request #207)
    • Fixed various bugs (pull requests #162, #163, #232)
  • Documentation:
    • User Guide:
      • Updated the AB3 legacy UG skeleton to make it more relevant for ATAS (pull requests #148, #149)
      • Added / updated existing documentation for the following parts: (pull request #153)
        • 1. Introduction, 1.1. Elevate your efficiency, 2. About this user guide, 2.1. Navigation, 5.2.3. Generating the name of a randomly-selected student, 5.2.4. Undo, 5.2.5. Redo, 7. Command summary, 7.1. General
    • Developer Guide:
      • Updated the AB3 legacy DG skeleton to make it more relevant for ATAS (pull request #225)
      • Added details to the following parts: (pull request #51)
        • Target user profile, Value proposition, User stories
      • Added / updated details to the following parts: (pull request #234, #255)
        • DevOps, Appendix: requirements – product scope, Appendix: instructions for manual testing – launch and shutdown (added pictures), Appendix: effort
      • Added architecture details of the model component (pull request #127)
      • Added implementation details of the rng feature (pull request #127)
      • Added implementation details of the undo/redo feautre (pull request #234)
  • Community:
    • PRs reviewed (with non-trivial review comments): #68, #74, #75, #81, #84, #94, #98, #99, #103, #105, #117, #124, #152, #155, #158, #165, #235, #236, #240, #249
    • Contributed to forum discussions - partook in general discussions (examples: 1, 2, 3, 4, 5)
    • Contributed to forum discussions - gave suggestions to fix various problems for other students in the class (examples: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
    • Reported 10 bugs and suggestions for another team during a dry-run of the practical exam (link here)
    • Some parts of my CSS stylesheet for a similar school project was adopted by several other classmates (1)