Welcome to cOOPer’s User Guide!
cOOPer is a desktop application developed to simplify administrative processes of tech startups such as communication and finance management.
If you are running a tech startup, cOOPer can help you with accounting and communicating tasks like:
cOOPer is optimized for use via a Command Line Interface (CLI), so if you are someone who types fast, cOOPer can help you manage your startup efficiently.
This user guide is written to assist users like yourself to use cOOPer. It provides you with the necessary guidance you need to fully utilise cOOPer’s features to manage your startup.
This section helps you navigate the guide.
login
post add
post list
post comment
post delete
available
availability
meetings
help
logout
exit
Throughout this user guide, you will see text formatted differently from normal text, as well as symbols appearing before another line of text. The table below explains the formatting and symbols in this user guide.
Formatting/Symbol | Meaning |
---|---|
italics | Text in italics represent special terminology specific to using cOOPer. |
bold | Text in bold emphasizes the text’s importance and indicates that you should pay more attention to the text. |
key | Text formatted as such represents a key you can press on your keyboard. |
command |
Short lines of text highlighted as such represent a command that can be entered in the Command Prompt / Terminal. Large segments on the other hand (e.g. in Setup) represent the expected output on the Command Prompt / Terminal. |
[parameter] |
Text highlighted in grey wrapped in square brackets represent a command parameter that needs to be present when a command is entered. You are free to decide the parameter entered. |
>> |
This symbol appears in the examples given for cOOPer’s features. It represents cOOPer’s command prompt and it should not be included when you enter subsequent commands. Refer to the cOOPer’s Commands section for additional info regarding the prompt. |
ℹ️ | The info symbol indicates useful information about cOOPer’s features. |
💡 | The light bulb symbol indicates a useful tip which eases your usage of cOOPer. |
⚠️ | The hazard symbol indicates an important message you should take note of in order to avoid negative consequences. |
This section details how you can install a working cOOPer on your desktop.
java -version
.java -jar cOOPer.jar
. /$$$$$$ /$$$$$$ /$$$$$$$
/$$__ $$ /$$__ $$| $$__ $$
/$$$$$$$| $$ \ $$| $$ \ $$| $$ \ $$ /$$$$$$ /$$$$$$
/$$_____/| $$ | $$| $$ | $$| $$$$$$$//$$__ $$ /$$__ $$
| $$ | $$ | $$| $$ | $$| $$____/| $$$$$$$$| $$ \__/
| $$ | $$ | $$| $$ | $$| $$ | $$_____/| $$
| $$$$$$$| $$$$$$/| $$$$$$/| $$ | $$$$$$$| $$
\_______/ \______/ \______/ |__/ \_______/|__/
=========================================================================
Hello I'm cOOPer! Nice to meet you!
=========================================================================
Log in or register to gain access to my features!
To log in, enter "login [yourUsername] pw [password] as [yourRole]".
To register, enter "register [yourUsername] pw [password] as [yourRole]".
To exit, enter "exit".
=========================================================================
>> [Logged out]
You are now ready to use cOOPer! Refer to the Getting Started section for information on how you can start using cOOPer.
ℹ️Here are some things to note about cOOPer’s commands.
exit
, meetings
, cf
, help
, etc.) will be ignored. For example, exit 123
will be interpreted as exit
.available 08-11-2021 14:00 abc
is entered, cOOPer interprets the parameter as 08-11-2021 14:00 abc
which according to cOOPer is an invalid time.list
is the same as List
or LIST
.ℹ️Here is some additional information about cOOPer’s command prompt.
[label]
will appear beside the prompt.[Logged out]
indicates you are currently logged out of cOOPer[Balance Sheet]
indicates you are using cOOPer’s balance sheet function[Cash Flow]
indicates you are using cOOPer’s cash flow functionThis section explains how you can register an account with cOOPer in order to gain access to cOOPer’s features.
⚠️cOOPer’s features will not work as described in this user guide if multiple users are interacting with cOOPer on multiple desktops at the same time.
There are two main roles you can hold as a user of cOOPer, namely the admin role or the employee role.
You may choose to hold the admin role if you hold a management position in the startup. e.g. Chief Executive Officer (CEO), Chief Financial Officer (CFO), Human Resources Manager (HR), accountant etc.
On the other hand, you may hold the employee role if you are a working employee at the startup.
cOOPer offers tailor-made functions and features specific to your role to ensure the correct level of administrative access within the company throughout cOOPer’s usage.
Upon first-time use of cOOPer, ensure that all members of the startup are registered with the correct role.
Once a member has been registered, they will be able to log in to cOOPer to access its features.
How to register:
[Logged out]
label beside cOOPer’s prompt, enter register [username] /pw [password] /as [role]
.ℹ️
[username]
refers to your name,[password]
refers to your password, while[role]
refers to your role as determined here.
>> [Logged out] register Sebastian /pw 123 /as admin
=========================================================================
Sebastian is now successfully registered as an admin!
=========================================================================
ℹ️A similar output should be observed when an employee is registered, with the output now showing ‘employee’ instead of ‘admin’.
💡 Just like when you use any other app with a sign in feature, remember to record down your username and password somewhere (e.g. Sticky Notes, a password manager).
login
[Logged out]
label beside cOOPer’s prompt, enter login [username] /pw [password] /as [role]
.[Logged out]
label is no longer present beside the prompt.ℹ️
[username]
,[password]
and[role]
refer to your name, password and role as registered in cOOPer’s system.
⚠️The username you are logging in with is case-sensitive. For example, logging in with the usernamesebastian
is not the same as logging in withSebastian
.
>> [Logged out] login Sebastian /pw 123 /as admin
=========================================================================
You are now logged in successfully as Sebastian!
=========================================================================
This section explains cOOPer’s features for all users, regardless of your role. These features are accessible to you only after you have successfully logged in.
post add
post add [postContent]
.ℹ️
[postContent]
refers to the content of your post.
>> post add hello world!
=========================================================================
Sebastian has just posted to the forum:
+--------------------------------------------------------------------+
| hello world!
+--------------------------------------------------------------------+
=========================================================================
post list
post list all
to view all the active forum posts.post list [postId]
to view the [postId]
th post along with its comments.ℹ️
[postId]
refers to the index of the post you want to view. It must be a positive integer and also an index of the posts in the list.
💡 Enterpost list all
to know the index of the specific post you want to view.
>> post list all
=========================================================================
Here is the list of forum posts:
+--------------------------------------------------------------------+
| 1. @Sebastian: hello world!
| - 1. @Eugene: welcome
| - 2. @Eugene: welcome to CS2113T!
| 2. @Sebastian: how do you do?
| - 1. @Eugene: how do you do?
| 3. @Eugene: Hey how are you?
+--------------------------------------------------------------------+
=========================================================================
>> post list 1
=========================================================================
Here is the forum post:
+--------------------------------------------------------------------+
| @Sebastian: hello world!
| - 1.@Eugene: welcome
| - 2.@Eugene: welcome to CS2113T!
+--------------------------------------------------------------------+
=========================================================================
post comment
post comment [commentContent] /on [postId]
.[commentContent]
will be added to the [postId]
th post.ℹ️
[postId]
refers to the index of the post you want to comment on. It must be a positive integer and also an index of the posts in the list.
💡 Enterpost list all
before commenting on a post to know the index of the specific post you want to comment on.
>> post comment welcome /on 1
=========================================================================
Eugene has just commented on a post from the forum:
+--------------------------------------------------------------------+
| hello world!
| - welcome
+--------------------------------------------------------------------+
=========================================================================
post delete
post delete [postId]
.[postId]
th post will be deleted from the forum.ℹ️ You are only allowed to delete the posts made by you.
ℹ️[postId]
refers to the index of the post you want to delete. It must be a positive integer and also an index of the posts in the list.
💡 Enterpost list all
before you delete a post to know the index of the post you want to delete.
>> post delete 1
=========================================================================
Sebastian has just deleted a post from the forum:
+--------------------------------------------------------------------+
| hello world!
+--------------------------------------------------------------------+
=========================================================================
available
available [date] [time]
.ℹ️
[time]
refers to the start of the hour that you are available at. For example,available 14:00
means that you are available from 14:00 to 14:59.
⚠️[date]
has a format of dd-MM-yyyy. Any other format will not be accepted and your availability will not be stored.
⚠️[time]
has a format of HH:mm, in 24-hour clock. Any other format will not be accepted and your availability will not be stored.
⚠️Duplicate[username]
in one timeslot will not be accepted.
>> available 08-11-2021 14:00
=========================================================================
Success!
Sebastian's availability has been added to 08-11-2021 14:00
=========================================================================
availability
availability
.>> availability
=========================================================================
Here are the availabilities:
+------------+-------+-----------------------------------------------+
| date | time | names
+------------+-------+-----------------------------------------------+
| 08-11-2021 | 10:00 | Eugene
| 08-11-2021 | 14:00 | Sebastian
+------------+-------+-----------------------------------------------+
=========================================================================
meetings
meetings
.>> meetings
=========================================================================
Here are your meetings for today:
+----------------------+------------+-------+------------------------+
| meeting | date | time | attendees
+--------------------------------------------------------------------+
| <<Progress Meeting>> | 08-11-2021 | 10:00 | Eugene, Sebastian
+----------------------+------------+-------+------------------------+
=========================================================================
This section explains cOOPer’s features specific to users with the admin role. Refer to the Roles section if you do not know how roles are determined. cOOPer will deny your access to these features if you do not have the admin role.
bs
→ add
bs
.[Balance Sheet]
label will appear beside cOOPer’s prompt.add [amount]
.[amount]
will be added as ‘Cash and Cash Equivalents’ as an asset.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.
>> bs
=========================================================================
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:
=========================================================================
>> [Balance Sheet] add 1500
=========================================================================
Success!
+1500 has been added as Cash and Cash Equivalents
Next, please enter Accounts Receivable
=========================================================================
cf
→ add
cf
.[Cash Flow]
label will appear beside cOOPer’s prompt.add [amount]
.[amount]
will be added as ‘Net Income’.list
to view the complete cash flow statement.ℹ️
[amount]
must be an unsigned integer.
ℹ️cOOPer treats[amount]
as positive and[amount]
enclosed in parentheses as negative.
⚠️Any entries more than 300 Million SGD (positive or negative) will not be added.
💡 Remember to entercf
before enteringadd
or cOOPer will not know which financial statement to add to.
⚠️Enteringcf
andadd
after the cash flow statement is complete will overwrite the current fields of the cash flow statement one by one, updating the current draft of the cash flow statement. Hence, it is important to add the cash flow statement fields to completion.
>> cf
=========================================================================
You are now using the Cash Flow function.
You can enter 'list' to view the current Cash Flow Statement or
start off by entering Net Income:
=========================================================================
>> [Cash Flow] add 1500
=========================================================================
Success!
+1500 has been added as Net Income
Next, please enter Depreciation and Amortisation
=========================================================================
bs
→ list
list
to view the balance sheet.list
.💡 Remember to fill up the fields of the balance sheet with
add
before enteringlist
.
ℹ️list
displays the current draft of the balance sheet.
ℹ️Enteringlist
at any time will display any overwritten fields from the current draft of the balance sheet, and any non-overwritten fields from the previous draft .
ℹ️The check can only inform you if the statement does or does not tally, and not which entry is incorrect as that comes down to human error.
ℹ️ Any scalar values more than or equal to 1 Billion SGD (positive or negative) will be displayed as such, and not as their exact values.
>> [Balance Sheet] list
=========================================================================
This is the company's current Balance Sheet:
-----ASSETS-----
Cash and Cash Equivalents 1500
Accounts Receivable 1500
Prepaid Expenses 1500
Inventory 1500
Property and Equipment 1500
Goodwill 1500
Total Assets: 9000
-----LIABILITIES-----
Accounts Payable -1500
Accrued Expenses -1500
Unearned Revenue -1500
Long-term debt -1500
Total Liabilities: -6000
-----SHAREHOLDER'S EQUITY-----
Equity Capital 1500
Retained Earnings 1500
Total Shareholder's Equity: 3000
Balance Sheet is perfectly balanced, as all things should be.
Check: 0
=========================================================================
cf
→ list
list
to view the balance sheet.list
.💡 Remember to fill up the fields of the cash flow statement with
add
before enteringlist
.
ℹ️list
displays the current draft of the cash flow statement.
ℹ️Enteringlist
at any time will display any overwritten fields from the current draft of the cash flow statement, and any non-overwritten fields from the previous draft .
ℹ️Any scalar values more than or equal to 1 Billion SGD (positive or negative) will be displayed as such, and not as their exact values.
>> [Cash Flow] list
=========================================================================
This is the company's current Cash Flow Statement:
-----CASH FLOW FROM OPERATING ACTIVITIES-----
Net Income 1000
Depreciation and Amortisation 900
Increase in Accounts Receivable 800
Decrease in Accounts Payable 700
Decrease in Inventory 600
Net Cash from Operating Activities: 4000
-----CASH FLOW FROM INVESTING ACTIVITIES-----
Capital Expenditures 500
Proceeds from Sale of Equipment 400
Net Cash from Investing Activities: 900
-----CASH FLOW FROM FINANCING ACTIVITIES-----
Proceeds from Issuing Debt 300
Dividends Paid 200
Net Cash from Financing Activities: 500
-----FREE CASH FLOW-----
Last year's Free Cash Flow 3000
=========================================================================
proj
proj [years]
to project your company’s FCF marginal growth Year-Over-Year (YoY) by the number of [years]
specified.ℹ️FCF is the last field of the cash flow statement.
>> proj 3
=========================================================================
At your current rate of profitability growth in Free Cash Flow, these are
future year's projections:
1 year: 4083
2 year: 4763
3 year: 5557
After 3 years you can expect Free Cash Flow of 5558
=========================================================================
generate
generate [financialStatement]
where [financialStatement]
is one of bs
or cf
.generate cf
will create a PDF named ‘CashFlowStatement’.>> generate cf
=========================================================================
The PDF file has been successfully generated!
=========================================================================
ℹ️You do not need to be currently using the balance sheet function or the cash flow statement function in order to use this feature.
💡 Always fill up the balance sheet / cash flow statement first before generating it as a PDF.
ℹ️As of v2.1,generate
is only able to create one document for a financial statement. Enteringgenerate
more than one time overwrites the existing PDF with the current draft of the financial statement.⚠️ Important:
- The creation of the PDF document requires an active internet connection.
- In the event that there is no internet connection, a backup ‘.txt’ file will be created in the same ‘output’ folder in which the PDF was supposed to be created.
- The contents of the backup ‘.txt’ file created can be used to recreate the PDF document with the use of an online LaTeX Editor.
💡 Always ensure that you have an active Internet connection before using the
generate
command.
schedule
schedule [meetingName] /with [username1], [username2]
.schedule [meetingName] /with [username1], [username2] /at [date] [time]
.ℹ️You do not have to enter your own
[username]
as cOOPer assumes you are in the meeting that you want to schedule.
ℹ️There is no limit to the number of[username]
s you can enter. cOOPer supports scheduling a meeting with a large number of users. However, a large number of users may slow cOOPer down.
💡 Before you do a manual schedule, you may want to check theavailability
table for better success rates.
⚠️[date]
has a format of dd-MM-yyyy, similar to the formatavailable
uses. Any other format will not be accepted and will result in incorrect behaviour.
⚠️[time]
has a format of HH:mm, in 24-hour clock, similar to the formatavailable
uses. Any other format will not be accepted and may result in incorrect behaviour.
>> schedule PR /with Eugene
=========================================================================
Success!
You have scheduled a <<PR>> meeting at 08-11-2021 10:00
with attendees: Eugene, Sebastian
=========================================================================
>> schedule PR /with Eugene /at 08-11-2021 14:00
=========================================================================
Success!
You have scheduled a <<PR>> meeting at 08-11-2021 14:00
with attendees: Eugene, Sebastian
=========================================================================
As of v2.1, cOOPer does not yet have features exclusive to employees 😥, these will come in future versions!
help
ℹ️The
help
command can only be used once you have logged in to cOOPer.
ℹ️The output will be similar to Command Summary, only without the examples.
logout
You will now see the [Logged out]
label beside cOOPer’s prompt.
>> logout
=========================================================================
You are now logged out!
To log in, enter "login [yourUsername] /pw [password] /as [yourRole]".
To register, enter "register [yourUsername] /pw [password] /as [yourRole]".
To exit, enter "exit".
=========================================================================
>> [Logged out]
exit
Exits cOOPer.
Example input:
>> exit
=========================================================================
Bye, see you next time!
=========================================================================
This section explains how cOOPer stores the data you keyed in throughout cOOPer’s usage. cOOPer’s data is stored on your hard disk in a folder named ‘cooperData’. This folder is created in the home folder upon starting cOOPer up for the first time.
The contents of the folder are as shown in the diagram below.
⚠️The contents of these storage files are in a specific format comprehensible by cOOPer. Do not edit the content or read/write access of these files.
available
command.add
command.add
command.schedule
command.This section contains a list of features that are yet to be released in future versions of cOOPer.
In future versions, you will be able to:
This section contains some frequently asked questions you may have when using cOOPer.
Q: What is a Command Line Interface (CLI)?
A CLI is a means of interacting with a computer program where you issue commands to the program in the form of lines of text, also known as command lines.
Q: Do I need any programming knowledge to use cOOPer?
No, you do not. As long as the commands you enter follow the format specified by cOOPer, you will be able to use cOOPer’s features with ease! You can refer to the Command Summary section to familiarise yourself with the format of each command.
Q: How do I know which commands to enter when using cOOPer?
After you have successfully logged in to cOOPer, you can either enter
help
or refer to the Command Summary section to know the commands recognised by cOOPer.
Q: How do I transfer cOOPer’s data from the current desktop to another desktop?
Follow the steps below:
- Download cOOPer in the other computer.
- In the current desktop, you should see a folder named ‘cooperData’ in cOOPer’s home folder. Refer to Setup if you do not know what the home folder is.
- Copy ‘cooperData’ over to cOOPer’s home folder in the other desktop.
- Running cOOPer on the other desktop should load your saved data.
Q: What is the folder named ‘tmp’ in the home folder?
The ‘tmp’ folder is created upon starting cOOPer up for the first time. This folder contains important data which enables cOOPer to process your commands. You should not do anything to these files.
Q: Another person using cOOPer on their desktop stated their availability / posted to the forum. However, I am unable to see their availability / post when I run cOOPer on my desktop. Why does this occur?
Refer to the How cOOPer is to be Used section to find out why this occurs.
Command | Format | Example |
---|---|---|
register | register [username] /pw [password] /as [role] |
register Sebastian /pw 123 /as admin |
login | login [username] /pw [password] /as [role] |
login Sebastian /pw 123 /as admin |
exit | exit |
exit |
Command | Format | Example |
---|---|---|
post add | post add [postContent] |
post add Who's up for dinner? :D |
post list | post list all or post list [postId] |
post list all or post list 1 |
post comment | post comment [commentContent] /on [postId] |
post comment I'm up! /on 1 |
post delete | post delete [postId] |
post delete 1 |
bs | bs |
bs |
cf | cf |
cf |
add | add [amount] |
add 5000 or add (5000) |
proj | proj [years] |
proj 5 |
list | list |
list |
generate | generate [financialStatement] |
generate bs |
available | available [time] |
available 14:00 |
availability | availability |
availability |
schedule | schedule [meetingName] /with [username1], [username2] or schedule [meetingName] /with [username1], [username2] /at [time] |
schedule Progress Meeting /with Sebastian, Eugene or schedule Progress Meeting /with Sebastian, Eugene /at 14:00 |
meetings | meetings |
meetings |
logout | logout |
logout |
exit | exit |
exit |
Command | Format | Example |
---|---|---|
post add | post add [postContent] |
post add Who's up for dinner? :D |
post list | post list all or post list [postId] |
post list all or post list 1 |
post comment | post comment [commentContent] /on [postId] |
post comment I'm up! /on 1 |
post delete | post delete [postId] |
post delete 1 |
available | available [date] [time] |
available 08-11-2021 14:00 |
availability | availability |
availability |
meetings | meetings |
meetings |
logout | logout |
logout |
exit | exit |
exit |