Project: Weeblingo

Weeblingo is a desktop app for learning the Japanese language via flashcards. It is designed specifically with the needs of budding Japanese language students in mind, providing everything one would need to embark on their academic journey. With a simple and friendly design and carefully crafted user-centric features, one can learn Japanese at a comfortable pace to the level of proficiency one desires.

Below is a brief summary of my contributions to the project:

  • Code contributed: RepoSense link
  • Enhancements:
    • Enhancement 1: Make the application compatible with Japanese. Regex checking is integrated as well to ensure the storage reading rejects other languages alphabets other than Japanese like latin. English alphabets are allowed, which are part of the Japanese language system already.
    • Enhancement 2: Add support for the storage of the application, including:
      • JSON database embedded into Jar release of the app.
      • JSON user local storage modification tailored to the need of application. E.g. data fields morphing.
      • More reasonable storage error handling, compared to Address-Book-3.
    • Enhancement 3: Develop and integrate the history/quiz statistic functionality into the application, on a full stack scale (Storage, Logic, GUI).
      • Storage: Implemented the JSON storage/parsing for history data, aside from original Japanese words storage functionality.
      • Logic:
        • Implemented the logic of how history data is retrieved from the storage component.
        • Implemented the logic of how history data is stored along with the execution of the app. E.g. when the user completes a quiz, the quiz statistic data will be stored in history.
        • In addition, the logic of how the history is displayed via history command is handled as well.
      • GUI: Implemented the GUI display mode for history data, including GUI details such as font size choices, GUI design of one single statistic data item and GUI design of a list of statistic data items.
  • Project management:
    • Set up the GitHub team org & repo.
    • Manage (set up, wrap up) team milestones, issues, pull requests properly before v1.4.
      • Provide non-trivial reviews for a few PRs. Check the history to verify.
    • Release management: make the 1st and the 3rd release of the product.
  • Documentation:
    • User Guide:
      • FAQ section
      • History command
      • Note for testers
    • Developer Guide:
      • Architecture - Storage component
      • Implementation - Quiz Scoring
      • Implementation - View Past Quiz Attempts
      • Non functional requirements
      • Test manual for testers - Saving data (storage)
      • Miscellaneous minor fixes
  • Community:
    • 22 posts in nus-cs2103-ay2021s2 forum,
      • 14-15 of which are non-trivial
      • including posts for clarification, discussion, question and tip sharing.
  • Tools: