cOOPer

cOOPer

User Guide

Introducing cOOPer

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.

What’s in This User Guide

This section helps you navigate the guide.

How this User Guide Works

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.

⬆️ Back to top

Setup

This section details how you can install a working cOOPer on your desktop.

  1. Download the latest version of cOOPer here.
  2. Copy the JAR (.jar) file to an empty folder of your choice. This folder will be used as the home folder for your cOOPer application.
  3. If you are using Windows, launch the Command Prompt in the home folder. If you are using Mac or Linux, open a Terminal window in the home folder.
  4. Ensure that you have Java 11 or above installed or your desktop.
    1. In the Command Prompt / Terminal, enter java -version.
    2. You should see the following on the Command Prompt / Terminal: javaVersion.png
    3. The section enclosed in red shows the version you currently have installed.
    4. If nothing appeared on the Command Prompt / Terminal, it most likely means you do not have Java installed on your computer. Do not worry, you can download it here.
  5. Run cOOPer by entering java -jar cOOPer.jar.
  6. A greeting from cOOPer should appear as such:
            /$$$$$$   /$$$$$$  /$$$$$$$
           /$$__  $$ /$$__  $$| $$__  $$
  /$$$$$$$| $$  \ $$| $$  \ $$| $$  \ $$ /$$$$$$   /$$$$$$
 /$$_____/| $$  | $$| $$  | $$| $$$$$$$//$$__  $$ /$$__  $$
| $$      | $$  | $$| $$  | $$| $$____/| $$$$$$$$| $$  \__/
| $$      | $$  | $$| $$  | $$| $$     | $$_____/| $$
|  $$$$$$$|  $$$$$$/|  $$$$$$/| $$     |  $$$$$$$| $$
 \_______/ \______/  \______/ |__/      \_______/|__/
=========================================================================
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.

⬆️ Back to top

cOOPer’s Commands

ℹ️Here are some things to note about cOOPer’s commands.

ℹ️Here is some additional information about cOOPer’s command prompt.

⬆️ Back to top

Getting Started

This section explains how you can register an account with cOOPer in order to gain access to cOOPer’s features.

How cOOPer is to be used

Roles

Registration

ℹ️[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).

⬆️ Back to top

Logging in: login

ℹ️[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 username sebastian is not the same as logging in with Sebastian.

>> [Logged out] login Sebastian /pw 123 /as admin
=========================================================================
You are now logged in successfully as Sebastian!
=========================================================================

⬆️ Back to top

Features for All Users

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.

Adding a forum post: post add

ℹ️[postContent] refers to the content of your post.

>> post add hello world!
=========================================================================
Sebastian has just posted to the forum:
+--------------------------------------------------------------------+
|  hello world!
+--------------------------------------------------------------------+
=========================================================================

⬆️ Back to top

Viewing a post / posts in the forum: post list

ℹ️[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.
💡 Enter post 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!
+--------------------------------------------------------------------+
=========================================================================

⬆️ Back to top

Commenting on a forum post: post comment

ℹ️[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.
💡 Enter post 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
+--------------------------------------------------------------------+
=========================================================================

⬆️ Back to top

Deleting a forum post: post delete

ℹ️ 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.
💡 Enter post 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!
+--------------------------------------------------------------------+
=========================================================================

⬆️ Back to top

Declaring available timing for meetings: available

ℹ️[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
=========================================================================

⬆️ Back to top

Viewing which users are available at different timings: availability

>> availability
=========================================================================
Here are the availabilities:
+------------+-------+-----------------------------------------------+
| date       | time  | names
+------------+-------+-----------------------------------------------+
| 08-11-2021 | 10:00 | Eugene
| 08-11-2021 | 14:00 | Sebastian
+------------+-------+-----------------------------------------------+
=========================================================================

⬆️ Back to top

Viewing scheduled meetings: meetings

>> meetings
=========================================================================
Here are your meetings for today:
+----------------------+------------+-------+------------------------+
| meeting              | date       | time  | attendees
+--------------------------------------------------------------------+
| <<Progress Meeting>> | 08-11-2021 | 10:00 | Eugene, Sebastian
+----------------------+------------+-------+------------------------+
=========================================================================

⬆️ Back to top

Admin Features

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.

Creating the balance sheet: bsadd

ℹ️[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 enter bs before entering add or cOOPer will not know which financial statement to add to.
⚠️Entering bs and add 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
=========================================================================

⬆️ Back to top

Creating the cash flow statement: cfadd

ℹ️[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 enter cf before entering add or cOOPer will not know which financial statement to add to.
⚠️Entering cf and add 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
=========================================================================

⬆️ Back to top

Viewing the balance sheet: bslist

💡 Remember to fill up the fields of the balance sheet with add before entering list.
ℹ️list displays the current draft of the balance sheet.
ℹ️Entering list 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
=========================================================================

⬆️ Back to top

Viewing the cash flow statement: cflist

💡 Remember to fill up the fields of the cash flow statement with add before entering list.
ℹ️list displays the current draft of the cash flow statement.
ℹ️Entering list 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
=========================================================================

⬆️ Back to top

Projecting cash flow: proj

ℹ️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
=========================================================================

⬆️ Back to top

Generating a PDF from the financial statement : generate

>> generate cf
=========================================================================
The PDF file has been successfully generated!
=========================================================================

CfOutputPdf

ℹ️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. Entering generate more than one time overwrites the existing PDF with the current draft of the financial statement.

⚠️ Important:

💡 Always ensure that you have an active Internet connection before using the generate command.

⬆️ Back to top

Scheduling meetings with different users: schedule

ℹ️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 the availability table for better success rates.
⚠️[date] has a format of dd-MM-yyyy, similar to the format available 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 format available 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
=========================================================================

⬆️ Back to top

Employee Features

As of v2.1, cOOPer does not yet have features exclusive to employees 😥, these will come in future versions!

⬆️ Back to top

Viewing help: 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.

⬆️ Back to top

Logging out: logout

>> 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] 

⬆️ Back to top

Exiting cOOPer: exit

>> exit
=========================================================================
Bye, see you next time!
=========================================================================

⬆️ Back to top

cOOPer’s Data Storage

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.

cooperStorage

⚠️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.

availability.txt

balanceSheet.txt

cashFlowStatement.txt

forum.txt

meetings.txt

signInDetails.txt

⬆️ Back to top

Coming Soon

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:

⬆️ Back to top

FAQ

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:

  1. Download cOOPer in the other computer.
  2. 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.
  3. Copy ‘cooperData’ over to cOOPer’s home folder in the other desktop.
  4. 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.

⬆️ Back to top

Command Summary

Before Logging In

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

Admin Commands

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

Employee Commands

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

⬆️ Back to top