Project: SalesPunch

SalesPunch is a lightweight alternative Customer Relationship Management (CRM) software, inspired by the conventional CRM software, such as SalesForce, but uses a CLI-based user interface instead of a GUI, aimed towards enhancing efficiency for fast typists.

Features Contributed

  • New Feature: Status Features – Lead Status and Transaction Status
    • What it does: Provides a timestamped attribute to contacts’ lead status and transaction statuses. Statuses are limited to a number of pre-determined statuses
    • Justification: A salesperson managing a long list of contacts and past transactions will find it difficult to find recall whether their contact is a ready-to-buy client, newly added contact etc. The same applies for transactions, where it might be difficult to memorise whether a transaction has been closed, or is ongoing.
      The user would also want to recall how long a list item has stayed in the location, which allows them to prioritise their work. For example, a previously unqualified lead might have been unqualified for a long amount of time, which indicates that it might be time for the user to check in with them again.
    • Highlights: Statuses of persons and transactions are shown as a badge next to the name in the GUI, along with the time elapsed (in least granular time) since the last change to the status. The badge is dynamic, such that the time elapsed is refreshed every time the GUI is refreshed. Accessing the statuses and updating them has been added through commands.
  • New Feature: Transactions Feature, Transaction-Contact relations
    • Formulated the idea for users to track their sales via transactions, and wrote (#44) the skeletal classes.
    • Created the GUI for the list of transactions, which is intentionally similar to the person list, for the sake of consistency for the user (#67).
    • Justification: Transactions are part of the every working life of a salesperson, and providing a means for them to track their sales is essential. Each transaction is also tied to a customer by nature, salespeople want to be able to link their sales with their customers.

Project management

  • Managed releases v1.1 to v1.4 on GitHub

Enhancements to existing features

  • GUI contributions:
    • Adapted the GUI for the team’s product in general (#141)
    • Added the transactions list within the GUI (#67)
    • Modified the representation of contacts in GUI to accommodate new attributes (#76, #67)

Documentation

  • User Guide:
    • Added documentation for Status features (#147)
    • Contributed to bug fixing and cosmetic changes to UG (#147)
  • Developer Guide:
    • Added implementation details for the Status features, including all UML diagrams (#66, #185)
    • Added user stories and use cases (#21)

Community & Team

  • PRs reviewed (with non-trivial comments): (#44, #47, #142)
  • Created bug reports for internal product testing: (examples: 1, 2)
  • Assisted team members with bug fixing and test writing for other features: (examples: #146, #57)
  • Assisted team in classifying and allocating bugs identified in the cross-team product testing (all bugs listed here)
  • Contributed to forum discussions: 1, 2
  • General code enhancements for the team product (examples: #142, #180)