cOOPer is a Command Line Interface (CLI) desktop application developed to simplify administrative processes of tech startups such as communication and finance management.
cOOPer was developed in Java following an Object-Oriented Programming (OOP) paradigm, hence the letters OOP in its name.
All the code I contributed for this project can be found at this RepoSense link.
bs
→ add
section of the guide - As I implemented both of these functions, I documented their usage in the guide. After seeking feedback from my teammates, I decided that combining the two commands in the guide would make for a much more intuitive read (and subsequently experience) for the user.cf
→ add
section of the guide - Similar to the balance sheet, these two commands were explained in a pair for better understandability.bs
→ list
section of the guide - as I implemented both of these functions, I documented their usage in the guide, explained in a pair for the same reasons.cf
→ list
section of the guide - as I implemented both of these functions, I documented their usage in the guide, explained in a pair for the same reasons.proj
section in the guide. I implemented this functionality, and hence provided the relevant insights and examples in the guide, to assist the user in using the function effectively.Finance
component - created the class diagram and explanations of the design of the finance component.Here is an extract of one of my contributions to the User Guide:
Creating the balance sheet:
bs
→add
- Fills up the different fields of cOOPer’s balance sheet such as ‘Cash and Cash Equivalents’, ‘Inventory’, ‘Accounts Payable’, ‘Equity Capital’, etc.
- How to create the balance sheet:
- Enter
bs
.- cOOPer initiates the balance sheet function and a
[Balance Sheet]
label will appear beside cOOPer’s prompt.- cOOPer will prompt you to enter the first entry, ‘Cash and Cash Equivalents’.
- Enter
add [amount]
.[amount]
will be added as ‘Cash and Cash Equivalents’ as an asset.- cOOPer will continue prompting you for the rest of the balance sheet fields.
- When the balance sheet is complete, cOOPer will prompt you to enter
list
to view the complete balance sheet.ℹ️
[amount]
must be an unsigned integer.
ℹ️cOOPer treats[amount]
as positive and[amount]
enclosed in parentheses as negative.
ℹ️All assets are positive, hence no parentheses are needed, while all liabilities are negative, hence parentheses are needed. Shareholder’s equity can be either positive or negative, hence parentheses are optional. To see which fields belong where, see the example output of thelist
feature.
⚠️Any entries more than 300 Million SGD (positive or negative) will not be added.
💡 Remember to enterbs
before enteringadd
or cOOPer will not know which financial statement to add to.
⚠️Enteringbs
andadd
after the balance sheet is complete will overwrite the current fields of the balance sheet one by one, updating the current draft of the balance sheet. Hence, it is important to add the balance sheet fields to completion.- Example input for initiating the balance sheet function:
bs
- Expected output:
========================================================================= You are now using the Balance Sheet function. You can enter 'list' to view the current Balance Sheet or start off by entering Cash & Cash Equivalents: =========================================================================
- Example input for adding to ‘Cash and Cash Equivalents’:
[Balance Sheet] add 1500
- Expected output:
========================================================================= Success! +1500 has been added as Cash and Cash Equivalents Next, please enter Accounts Receivable =========================================================================
Finance
API:
cooper.finance
- The
Finance
component contains theFinanceManager
,BalanceSheet
,CashFlow
, andProjection
classes, as well as theFinanceCommand
enumeration.- The
FinanceManager
constructs the instances of theBalanceSheet
,CashFlow
andProjection
for use, and contains attributes and methods that aid the related functions.- The
FinanceCommamnd
enum helps theParser
to understand whatFinance
function is being used, with three states:CF
,BS
, andIDLE
.- The
Finance
component also contains thePdfGenerator
class (not shown in the diagram above) for thegenerate
feature. More info on this feature can be found here.The
Finance
component:
- Handles adding / listing / generating of balance sheets, cash flow statements, and free cash flow projections.
- Assists the parser in identifying which function is being used at any given time.