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 basic quizzing system including new commands such as the PlayCommand, StopCommand and AnswerCommand. (Pull requests #106 #185)
    • What it does: Allows the user to quiz themselves on the different entries they have added to the Green Tea.
    • Justification: This feature is essentially the core of the application. The entire application is built around this compulsory feature including other features such as statistics and switching tabs.
    • Highlights: This implementation was incredibly difficult to implement because it utilised portions of logic, model and ui. Implementing this feature allowed me to understand the inner working of AddressBook and allowed me to greater help my teammates with their work by communicating to them what is and is not technically feasible in this product. Since this is a core feature, this implementation also affected what code can be added to the future and what existing code can be removed. Modifying the implementation to allow the program to switch between play mode and command mode also required deep analysis of design alternatives.
    • Credits: I wrote this by myself but I utilized the existing commands created by my teammate, Melanie. Additionally, code with the title WordBank mostly originated from the same AddressBook classes from AB3.
  • New Feature: Split the UI to hold both deck list and entry list. (Pull requests #67)
    • What it does: Allows the user to observe both the deck list and the entry list which is essential for Green Tea to be an intuitive application.
    • Justification: This feature allowed the user to observe a more intuitive user interface. It also allowed the team to develop the tabbing feature which meant that more data/features can be stored in each of the tabs
    • Highlights: This implementation was difficult to implement because it required knowledge it utilised portions of logic, model and UI. Specifically, understanding how obervablelist was used and modifying it was a challenging task.
    • Credits: I wrote this by myself but I utilized the existing commands created by my teammate, Melanie. Additionally, code with the title WordBank mostly originated from the same AddressBook classes from AB3.
  • Code contributed: RepoSense link

  • Project management:
    • Team leader
    • Helped other team members with their task and contributions
    • Kept the team on schedule by monitoring dashboard, issues , milestones and datelines
    • Ensured team members focused on goals during weekly group meetings
    • Gave meaningful updates on my own progress to help teammates better understand the current state of the application (Pull requests #72)
    • Reported bugs and gave meaningful feedback to the team (Examples: 1 2 3)
    • Managed releases v1.3 - v1.4 (3 releases) on GitHub
  • Enhancements to existing features:
    • Wrote additional tests for existing features such as PlayCommand, StopCommand, TestCommand and Leitner.java (Pull requests #188 #185
    • Updated the GUI color scheme (Pull requests #61 #44)
    • Fix several critical bugs such as the Select Command bug and the Answer Command Bug (Pull requests #180 #72)
  • Documentation:
    • User Guide:
      • Added documentation for Chapter 1, What is Green Tea (Pull requests #126)
      • Added documentation for Chapter 2, About (Pull requests #126)
      • Added documentation for Chapter 3, Getting Started (Pull requests #126 #189)
      • Added documentation for Chapter 8, FAQ (Pull requests #126)
      • Added documentation for Chapter 9, Command Summary (Pull requests #126)
      • Did tweaks to existing documentation of Chapter 4, Using this Guide (Pull requests #189)
    • Developer Guide:
      • Wrote the puml code for all the new diagram in the DG (Pull requests #209 #204 #201)
      • Modified Chapter 3 of the DG (Pull requests #243 #240 #247)
      • Added the Flashcard portion of chapter 4 (Pull requests #243 #218 #104)
    • Others:
      • Added the Leitner System psuedo code for team reference (Pull requests #65)
    • Credit:
      • Developer Guides and User Guides that were referenced can be found in our README (under coded bases referenced).
  • Community:
    • Contributed to forum discussions (Examples: 1 2 3)