Project: Jarvis

Jarvis is a desktop app for CS1101S Teaching Assistants (Avengers) to help Avengers keep track of their grading duties and consultations. The user interacts with it using CLI and it has a GUI created with JavaFX. It is written in Java and has more than 10kLoC.

Given below are my contributions to the project.

  • New Feature: Added Add Task feature for Tutors to add their personal tasks.
    • What it does: Allows tutors to Add Todos, Events or Deadlines.
    • Justification: This feature gives tutors ability to store their personal tasks at one place for better organization.
    • Highlights: This feature allows me to understand the main architecture of JARVIS from UI, Logic to Storage components. It is a very wholesome feature to add and I really enjoyed it.
  • New Feature: Added Delete Task feature for Tutors to delete their personal tasks.
    • What it does: Allows tutors to Delete Todos, Events or Deadlines.
    • Justification: This feature gives tutors ability to manage their personal tasks at one place by deleting Tasks that are completed or not relevant anymore.
    • Highlights: Similar to Add Task feature, this feature allows me to understand the main architecture of JARVIS.
  • New Feature: Added View Task feature for Tutors to view their different subsets of their personal tasks.
    • What it does: Allows tutors to view different Task list including Overall Task List, Todo List, Event List and Deadline List.
    • Justification: This feature gives tutors ability to view their Tasks quickly based on different categories.
    • Highlights: I really appreciate the usefulness and flexibility of using an Observer pattern.
  • New Feature: Added a History Command that allows Tutors to navigate to previous commands using up/down keys.
    • What it does: Allows tutors to navigate through previous commands entered using up and down arrow keys.
    • Justification: Enhances the CLI nature of JARVIS which gives tutors ability to skim through previous commands, and they do not need to retype commands that are similar to what they have typed previously.
    • Highlights: Not only does this feature provide convenience to users, it also allows GUI testing to be easier for us, the developer team.
  • Code contributed: RepoSense link

  • Project management:
    • Ensured that work handed to me that affects the whole project is done on time, eg Task related features.
    • Ensured that project deliverables are delivered on time.
  • Enhancements to existing features:
    • Add Task Section features. #83, #161
    • Update storage to store and load Tasks. #115, #161
    • Update GUI with “Todo”, “Event”, “Deadline” tags for user to easily see what type of Task that is. #198
    • Add access to Command History using “Up” and “Down” arrow keys. #298
  • Documentation:
    • User Guide:
      • Update list of content with navigable links to each sections of the UG. #236
      • Added documentation for Task related features such as add, delete view Task commands. #63
    • Developer Guide:
      • Added implementation details of the add feature. #371
      • Added supporting UML diagrams under add feature. #364
      • Added Appendix manual testing cases. #371
  • Community:
    • PRs reviewed (with non-trivial review comments): #215, #300, #304, #384
    • Reported bugs and suggestions for other teams in the same CS2103T class: Dry run PE
  • Tools:
    • Used JavaFX libraries and CSS to create portions of the Graphic User Interface.