Project: SociaLite

SociaLite is a desktop app for connecting avid social media users with their contacts’ social media pages, optimized for use via a command line interface (CLI). At the same time, it has a graphical user interface (GUI) created with JavaFX. It is written in Java, and has about 10 kLoC.

A summary of my contributions to the project is detailed below.

  • Altered Feature: Redefined criteria for duplicate persons to be detected. #68
    • What it does:
      • SociaLite detects duplicate entries by comparing contacts’ phone number instead of name.
      • Users can now add contacts who might have the same names.
    • Justification:
      • There can be instances where users meet acquaintances who coincidentally share the same name but are separate persons altogether.
      • Hence, the phone number (which is a compulsory field in SociaLite) is now used as a determinant for duplicate persons as no two persons have the same phone number.
    • Highlights:
      • Addresses the inconvenience that users might have in adding contacts with similar names.
  • Revamped Feature: Enhanced ability for users to obtain help or in-app guidance. #50, #127
    • What it does:
      • Allows users to access in-app guidance by typing in help <COMMAND> where <COMMAND> refers to a command of the user’s choice.
    • Justification:
      • This command allows users to quickly refer to in-app guidance and perform their desired function correctly, without having to open the User Guide.
    • Highlights:
      • Serves as an umbrella command which abstracts away the appearance of Help Messages for all other valid commands.
  • New Feature: Added support for Facebook and Instagram social media handles. #36, #37
    • What it does:
      • Allows users to add Facebook & Instagram handles that conform with prescribed regex, for a contact.
    • Justification:
      • Users can conveniently add and access a contact’s Facebook and Instagram pages as SociaLite supports these two commonly used platforms.
    • Highlights:
      • Adhered to teammate’s (Xiaozhi’s) pre-designed framework for storing social media handles when enhancing support for Facebook and Instagram handles.
      • Refined regex of Facebook, Instagram and Telegram handles to meet stricter requirements imposed by social media platforms. #145


  • Code contributed: RepoSense link

  • Project management:

    • Designed interim UI mock-up for v1.2. #30
    • Managed release v1.2 on GitHub.
    • Acted as minute-taker to take note and summarize points raised in our team meetings held twice a week.
    • Reviewed and suggested non-trivial improvements to documentation submissions by all members.
    • Refactored components of the codebase for clarity. #154


  • Documentation:
    • User Guide:
      • Supported team members in the initial revamp of User Guide to match SociaLite
        • Drafted documentation for the features on our initial Google Doc.
      • Major changes for v1.3: #70, #73, #79
        • Added documentation for the feature help COMMAND
        • Updated all sections and features to match our new input format for SociaLite.
        • Added around 10 missing commands and examples to Command Summary.
      • Performed major overhaul of UG for enhanced readability following PE-D review: #138
        • Added Navigation Menu and consolidated Table of Commands (both with hyperlinks for users to access their desired section/feature efficiently).
        • Revamped layout and organization of all features - related commands are now found in the same section of the UG.
        • Re-designed how format and examples are presented to readers for all features through standardized notations.
        • Included screenshots for relevant examples. #160
        • Updated FAQ section.
    • Developer Guide:
      • Aided in conceptualization of Product Scope, including the definition of our target user profile and value proposition.
      • Added and organized majority of User Stories and Use Cases. #11
      • Added implementation details on Help Command and accompanying UML Sequence Diagram. #139, #155
      • Updated details on Architecture of SociaLite. #155