Project: LingoGO!

LingoGO! is a desktop app for university students who use English as their first language and are trying to learn a new language. Our unique Command Line Interface (CLI) and elegant Graphical User Interface (GUI) is sure to delight you, and empower you on your journey in mastering the new language you have always wanted.


  • Code contributions: View my code contributions on RepoSense here

  • Enhancements/Features Implemented
    1. Refactored Storage component
      • PR(s): #70, #72
      • Refactored the Storage component to work for LingoGO!’s requirements.
      • All references of AB3 code were also removed from Storage component.
    2. Added test feature (deprecated)
      • PR(s): #80
      • Added the ability for users to test themselves with flashcards.
      • This provided a basic means for users to practise with their flashcards.
    3. Refactored Flashcard class
      • PR(s): #95, #107
      • Refactored Flashcard class to ensure immutable implementation of setter and getter methods of isFlipped attribute to defend against unwanted mutations.
      • Updated isSameFlashcard method to allow for the checking of duplicate flashcards.
    4. Enhanced flip feature (deprecated)
      • PR(s): #95
      • Added functionality for flip command to show and hide English phrases.
      • This allowed users to interact with their flashcards by “flipping” them.
    5. Enhanced filter feature
      • PR(s): #107, #130, #201
      • Added range and index filter conditions and enabled combining of multiple filter conditions.
      • This provides greater convenience for users, allowing them to specify several filter conditions at once within one filter command.
      • Search flexibility is also enhanced through the added filter conditions, allowing users to more quickly select flashcards to be loaded into Slideshow mode for practice sessions.
    6. Added alert dialogues
      • PR(s): #201
      • Wrote alert dialogue popups to greet new users as well as to warn users when they make code-breaking changes to the JSON data file.
      • Such alerts help users to troubleshoot against unintended data file changes.
  • User Guide Documentation
    1. Command format:
      • PR(s): #225
      • Adapted the Notes about the command format section into a fully fledged out Command format section to give a detailed breakdown on how LingoGO!’s commands are formatted.
    2. Command usage
      • PR(s): #36, #107, #130
      • Updated the User Guide for the filter, flip (deprecated) and test (deprecated) commands.
  • Developer Guide Documentation
    1. Overall design: Storage component:
      • PR(s): #116
      • Updated overall description of the Storage component.
      • Updated UML class diagram for Storage component.
    2. Filter feature:
      • PR(s): #116
      • Wrote description and implementation details for the filter command.
      • Prepared UML sequence diagrams for filter command.
    3. Manual testing:
      • PR(s): #200
      • Added manual test cases to test LingoGO!’s behavior after manipulation of JSON data file.
  • Community:
    • Recorded demo video for v1.2 of LingoGO!.
    • PRs reviewed (with non-trivial review comments): #81 #93, #100, #104, #121, #136
    • Total PRs reviewed: 13
    • Reported bugs and suggestions for team SWEe-book, another team in the module.