Project: CohortConnect

CohortConnect is an advanced desktop address book that facilitates networking among Computer Science (CS) students. It is optimized for use via a Command Line Interface (CLI) while still having the benefits of a Graphical User Interface (GUI). It is written in Java and has about 17kLoc. The GUI is created with JavaFX. It contains various advanced features such as finding teammates using GitHub Data.

Given below are my contributions to the project.

New Features

  • Created the Welcome Splash Screen.
    • What it does: When the app is launched, the user is greeted with a Welcome Splash Screen.
    • Justification: To enhance the overall experience with the app.
    • Highlights: It shows our app logo and motto with a typewriter and fading effect.
    • Credits: JavaFX library is utilized.
  • Created the Profile Setup Window.
    • What it does: When the app is launched for the first time, the user is requested to enter their credentials, including Name, Telegram Handle, and GitHub Username.
    • Justification: In order for the user to take full advantage of the Find a Buddy feature, they have to provide these details.
    • Highlights: The app logo is shown beside Text Fields, which almost blends in the dark-themed UI.
    • Credits: JavaFX library is utilized.
  • Created the User Profile Window.
    • What it does: Users can view their profiles by either using the keyboard shortcut Command/Ctrl + P or by clicking on their name in the Menu Bar (in the top right).
    • Justification: In order for the user to view and verify their entered Credentials are correct.
    • Highlights: The Users GitHub Profile Picture is shown beside their Credentials.
    • Credits: JavaFX library is utilized.
  • Add a keyboard shortcut: Command/Ctrl + P.
    • What it does: This keyboard shortcut allows the user to open the User Profile Window via Command/Ctrl + P
    • Justification: Improves Navigability across the app.
  • Created a GitHub Utility Class.
    • What it does: This class helps in retrieving Users’ Data from GitHub. This data includes the Number of Languages, Number and Name of Repositories and Their Profile Pictures.
    • Justification: The Find a Buddy feature relies on this data for matching Users.
    • Highlights: All this data is obtained by Web Scraping.
    • Credits: Atin Sakkeer Hussain and I contributed to this.
  • Integrated Profile Picture into Person Details Pane.
    • What it does: The Person Details Pane now shows the Users Profile Picture obtained from GitHub. A default Profile Picture would be shown if a connection to the GitHub servers cannot be established or the User enters an invalid GitHub Username.
    • Justification: To enhance the overall experience with the app.
    • Highlights: The User can now see the GitHub Profile Pictures of the contacts saved.
    • Credits: JavaFX library is utilized.
  • Integrated User Profile into the Menu Bar.
    • What it does: The Users Name and GitHub Profile Picture are shown on the Menu Bar (top right).
    • Justification: To enhance the overall experience with the app.
    • Highlights: The User can click on it to open the User Profile Window.
    • Credits: JavaFX library is utilized.

Enhancements to Existing Features

  • Updated the Help Window with a better UI - a darker theme and more informative.
    • What it does: Added a list of commands supported by the app for quick access. Also added a visit URL button, which, when clicked upon, opens the User Guide in the Web Browser.
    • Justification: This allows the user to quickly refer to any command they don’t recall without the fuss of leaving the app and having to read the User Guide.
    • Highlights: The darker-themed UI, with a red highlight when the mouse hovers above any command, enhances the usability of the app.
    • Credits: JavaFX library is utilized.

Code contributed: RepoSense link

Project management

  • Managed releases v1.1 - v1.4 (4 releases) on GitHub

Testing

  • Wrote additional tests for existing classes to increase coverage (Pull requests #152 #257, #263, #272)

Documentation

  • User Guide:
    • Added documentation for the commands fav, unfav, help, list, clear and exit #136
    • Added documentation for supported keyboard mappings #153
    • Added basic prerequisites and profile set up guide #215
    • Did cosmetic tweaks to existing documentation of various features : #136, #245
    • Maintained the Command Summary Table #45, #136, #226, #270
    • Fix an Issue where anything in between < and > was not being displayed #45, #69
  • Developer Guide:
    • Added implementation details of the WelcomeWindow Ui. #104, #303
    • Added implementation details of the ProfileSetUpWindow Ui. #282, #297
    • Added implementation details of the UserProfileWindow Ui. #282, #297
    • Added implementation details of the HelpWindow Ui. #282, #297
    • Added implementation details of the UserProfileInMenuBar Ui. #282, #297
    • Updated UiClassDiagram. #282, #338
    • Updated User Stories and Use Cases. #14, #303

Community

  • PRs reviewed (with non-trivial review comments): #262, #275
  • Contributed to forum discussions (examples: 1, 2, 3, 4)
  • Reported bugs and suggestions for other teams in the class (examples: 1, 2, 3)