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.
I was in charge of the availability and meetings component of cOOPer, which I coded from scratch (from the parsing logic to the actual features).
available
and availability
features
available
feature comes with error-checking, to make sure the time and date entered are of the correct format.availability
generates a neatly formatted table, enhancing the user experience of cOOPer.schedule
and meetings
features
schedule
feature allows admins to schedule meetings with an in-built algorithm, or with a timing manually inputted by the user.schedule
feature also comes with error-checking, to make sure the time and date entered are of the correct format.meetings
feature generates a table of meetings customized for the user.availability
and meetings
in their own custom format, and reads the storage files when cOOPer starts.availability.txt
and meetings.txt
files to make sure the content and times are correctly formatted, before loading into cOOPer.available
and availability
commands
schedule
and meetings
commands
Meetings
component under the ‘Design’ section
available
, availability
, schedule
, and meetings
commands in the ‘Instructions for Manual Testing’ section
Here is an extract of one of my contributions to the User Guide:
Declaring available timing for meetings:
available
- Enters your available timing for easier scheduling of meetings.
- How to declare your available timing:
- Enter
available [date] [time]
.- You will now have your name stored under the specified time in the system.
ℹ️
[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.
- Example input:
>> available 08-11-2021 14:00
- Expected output:
========================================================================= Success! Sebastian's availability has been added to 08-11-2021 14:00 =========================================================================
Here is an extract of one of my contributions to the Developer Guide:
Meetings
API:
cooper.meetings
The
Meetings
component contains theMeetingManager
andMeeting
classes.
MeetingManager
stores 2 attributes:
- the timings along with the usernames of the available users, which is a
TreeMap<LocalTime, ArrayList<String>>
object,- the list of meetings scheduled, which is an
ArrayList<Meeting>
object.The
MeetingManager
constructs the instances ofMeeting
, and stores it as anArrayList<Meeting>
in itself.The
Meetings
component:
- Handles the declaration of availability
- Assists in the scheduling of meetings
- Lists the current availability and meetings