Atin Sakkeer's Project Portfolio Page
Project: CohortConnect
CohortConnect is an advanced desktop address book which facilitates networking among Computer Science (CS) students. The user interacts with it using a CLI, and it has a GUI created with JavaFX. It is written in Java, and has about 15 kLoC. These are my contributions to the application:
New Features
- Show Command:
- Pull requests #40 and #65
- What it does: Allows user to view details of a user using the Show command by the index, name, github username or telegram id.
- Justification: This feature allows for a clean UI and displaying details of the chosen Student only.
- Highlights: The implementation too was challenging as it required interconnecting the ModelManager with the PersonListPanel.
- GitHubUtil Class
- Pull requests #98
- What it does: Contains the methods necessary for web scraping GitHub for data.
- Highlights: This class helps with gathering data on the contacts including Profile Picture, Repository count and Language contributions.
- Find A Buddy Feature
- Pull request #137
- What it does: Allows user to get the top 5 matches based on GitHub similarities.
- Justification: This feature improves the product significantly because the user will be able to find teammates with similarities.
- Highlights: This enhancement is central to the app’s use. It required an in-depth analysis of similarity metrics. The implementation too was challenging as it required applying Euclidean Distance, Manhattan Distance and Cosine Similarity.
- Credits: The distance metrics were researched here
- LangColorUtil
- Pull request #248
- What it does: Helps display common languages to improve testability of the Find A Buddy Feature
- Highlights: This was challenging since there were lots of languages and manually adding each would be time-consuming. To overcome this, I wrote a Python program to write the Java code to add to each color to the Hashmap, hence automating the process.
- Credits: The color data was obtained from this source
UI Enhancements
- Addition of Student Detail Pane
- Pull request #40
- Enhanced the UI to make it cleaner and easier to use.
- Display student details on clicking on a particular student.
- Addition of Tabs
- Pull request #91
- Enhanced the UI/UX by creating tabs for the different features
- The tabs are
Contacts
,Favourites
,Events
andFind A Buddy
Test Cases Written
Wrote test cases fore the following classes
- Ai class (Pull requests #250 )
- LangColorUtil class (Pull requests #250 )
- Show command (Pull requests #253 )
- SampleDataUtil (Pull requests #254)
- FindABuddyPredicate (Pull requests #254)
- Favourite Command (Pull request #255)
- UnFavourite Command (Pull request #255)
Documentation
- User Guide:
- Added the documentation for the features
show
andFindABuddy
(Pull request #265)
- Added the documentation for the features
- Developer Guide:
- Added implementation details of the
show
command. (Pull request #110)
- Added implementation details of the
Code Contributed
The code contributed in this project is available here.