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 the ability to view deadlines for current Missions and Quests
    • What it does: Lists all the current ongoing Missions and Quests with their deadlines.
    • Justification: This feature allows users to keep track of the deadlines of Missions and Quests so that they know when they can start marking, and adjust their workload accordingly.
    • Highlights: This is a core feature for our app as it serves as a reminder for Avengers on their upcoming marking tasks so that they can manage their time.
    • Credits: Selenium WebDriver for the ability to scrape for information on Source Academy


  • New Feature: Added the ability to view ungraded Missions and Quests
    • What it does: List all the ungraded Missions and Quests that the Avenger has yet to mark.
    • Justification: This feature allows users to keep track of the Missions and Quests that they have yet to mark so that they know specifically which Missions and Quests they have to mark.
    • Highlights: This is another core feature for our app as it serves as a reminder for Avengers on which Missions and Quests they have to mark so that they can manage their time.
    • Credits: Selenium WebDriver for the ability to scrape for information on Source Academy



  • Project management:
    • In charge of implementation of the Graphic User Interface
    • Ensure that project deliverables are delivered on time


  • Enhancements to existing features:
    • Implemented the GUI layout and color scheme (Pull requests #183, #272, #275)
    • Personalized the GUI with user’s name (Pull request #210)
    • Added the current week and topic to the GUI to remind user of current content topic (Pull request #272)
    • Update the command error messages to be more user-friendly (Pull request #272)
    • Wrote tests for existing features (Pull requests #169, #303, #326)


  • Documentation:
    • User Guide:
      • Added documentation for the features view -m, view -q, view -um and view -uq (Pull requests #151, #361)
      • Fixed issue of tables not showing up on GitHub Pages (Pull request #237)
      • Update content page and screenshots for features view -m and view -um (Pull request #361, #365)
    • Developer Guide:
      • Added implementation details of view command with diagrams (Pull requests #135, #353, #370)
      • Updated the code file links to point to our repository (Pull request #361)
      • Added content page and standardised the diagrams (Pull request #378)


  • Community:
    • PRs reviewed (with non-trivial review comments): #77, #268 #304
    • Reported bugs and suggestions for other teams in the class (examples: 1, 2, 3)


  • Tools:
    • Used Selanium WebDriver to scrape for information on Source Academy (Pull request #146)
    • Used JavaFX library and CSS extensively for the Graphic User Interface
    • Made use of the Java Desktop library to open links in user’s default browser (Pull request #183)