Project: Green Tea

Green Tea is a desktop app for learning a new language, optimized for use via a Command Line Interface (CLI) while still having the benefits of a Graphical User Interface (GUI) created with JavaFX. It is written in Java, and has about 10 kLoC.

Given below are my contributions to the project.

  • New Feature: Implemented the deck system along with new commands (NewDeckCommand, RemoveDeckCommand, SelectDeckCommand).

    Pull requests: #56 Commit: \AddSelectDeckCommand

    • What it does: Allows the user to create decks and add entries to the deck.
    • Justification: Users can organize their entries better. Also allows the quizzing system to be implemented more easily.
    • Highlights: This feature was difficult to implement since it required entries to be embedded within decks. This means that on top of adding new commands, original commands also had to be altered to accomodate the deck system. There was also many bugs that had to be fixed during the implementation of this feature such as existing commands not working like they should (edit command). This feature required modifications to the ui component, model component, logic component and storage component. Most of my contributions for this feature was in the model and logic components and planning how to implement this feature. The ui component for this feature was handled by my teammate, Gabriel. The storage component was handled by my teammate, Vignesh

    • Credits: {I utilized the existing command format in Address Book 3 to write the command classes for new commands. I also utilized the person class in Address Book 3 to design the deck system}
  • New Feature: Create tab panels in the GUI which will display the appropriate information to the user depending on the command given.

    Pull requests: #114 #119

    • What it does: Allows users to see only what is necessary depending on the command given
    • Justification: Cleaner UI. More flexibility in how to display the quiz and statistics to the user.
    • Highlights: Created a package in model called view. Commands will change the view which will in turn change the tabs. There are 5 panels which are visible to the user (start, entry list, quiz, score and statistics). I created and designed the start, quiz and score panels. My teammate Georgie was in charge of the statistics panel. This feature required changes to be made to the logic, model and ui components.
  • Code contributed: RepoSense link

  • Project management:
    • Managed releases v1.3 - v1,4 (2 releases) on GitHub
  • Enhancements to existing features:
    • Change GUI to current form (Pull requests #114, #131)
    • Wrote additional tests for existing features to increase code coverage (Pull requests #182, #60)
    • Fixed several bugs (Pull requests #181 #177 #138 #128 #88)
  • Documentation:
    • User Guide:
      • Added documentation for section 4 (Using this guide) of user guide #133
      • Added images and labelling for user guide #144
      • Added documentation for section 1 (What is GreenTea) #141
      • Added documentation for section 2 (About this document) #141
      • Added documentation for section 5 (Features), deck commands and statistics section
    • Developer Guide:
      • Added prefaces to each section for the various components. #200
      • Added NFRs #200 #12
      • Added documentation for Manual Testing #200
      • Added implementation details of the deck feature.
  • Community:
  • PRs reviewed (with non-trivial review comments): #52 #94