Project: IntelliBrary

IntelliBrary is a desktop library management application used for library administrators to manage books. The user interacts with it using a CLI, and it has a GUI created with JavaFX. It is written in Java.

Given below are some parts of my contributions to the project. (Given the page and time constraints, only a few most significant contributions are recorded here.)

  • New Feature: View Sample Data
    • Sample relevant pull request: #91
    • What it does: Allows the user to view sample data provided by us the first time they use the app.
    • Justification: This feature improves the UI/UX of the product significantly, and the user is able to learn how to use the product very quickly with the help of sample data.
  • New Feature: Times Command
    • Sample relevant pull request: #73
    • What it does: Allows the user to know how many times a book has been borrowed before to get a sense of its popularity.
    • Justification: This feature is one of the fundamental features in Intellibrary and serves as the base of other more advanced features.
  • Enhancements: Update the GUI color scheme
    • Sample relevant pull request: #143
    • What it does: Changes the colour theme and other design details for the GUI.
    • Justification: The upgrade of GUI significantly improves the appearance and the first impression of the product.
    • Highlights: This enhancement requires a lot of efforts in terms of incorporating the new design with the product and attention to details. There are many GUI bugs need to be fixed throughout the implementation process as well.
  • Enhancements: Morph the product from Addressbook to IntelliBrary
    • Sample relevant pull request: #112
    • What it does: Morph everything related to Addressbook into IntelliBrary, including methods, classes, tests, documentations and other files.
    • Justification: This enhancement is the most fundamental and necessary change needed to morph Addressbook to IntelliBrary.
    • Highlights: This enhancement requires a comprehensive understanding of the original product (e.g. architectural design). In the meantime, it involves the addition and/or deletion of many attributes as well.
  • Code contributed: RepoSense link

  • Project management:
    • Managed releases v1.2 and v1.2.1 (2 releases) on GitHub
  • Documentation:
    • User Guide:
      • Added the documentation for the edit feature.
      • Largely contribute to the finalization of User Guide (non-feature parts of the documentation, e.g. reorder/reformat of content).
    • Developer Guide:
      • Added implementation details of the edit feature.
      • Largely contribute to the user cases.
      • Largely contribute to the finalization of Developer Guide (team-based activities).
  • Community:
    • PRs reviewed (with non-trivial review comments) (examples: #242, #215, #109, #116)
    • Contributed to forum discussions (example)
    • Reported bugs and suggestions for other teams in the class (examples: 1, 2, 3)
  • Other Contributions:
    • In charge of a number administrative tasks within the team
      • Setting up the meetings
      • Facilitating the discussions
      • Managing and recording the meeting logs
      • Briefing teammates on the weekly deliverables and tasks
      • Reminding the teammates to complete their parts on time
    • Facilitate in morphing the product
      • Suggesting on complete the task as a team instead of individually
      • Coordinating the different attributes added/deleted and consolidating them together
    • Provide a helping hand whenever my teammates are in need
    • Contribute a reasonable amount of test methods and classes
  • Justification on Equal Share of Efforts: Although it may appear that I have not written as many codes as my teammates, I have contributed more towards other aspects of the project, mainly in documentations and administrative tasks as mentioned above. After internal discussions, we have come to the agreement that we have generally all contributed fairly towards the team project.