cOOPer

Fan Shixi - Project Portfolio Page

Overview

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.

Summary of Contributions

Code Contributed

All the code I contributed for this project can be found at this RepoSense Link.

Enhancements Implemented

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).

Contributions to the User Guide

Contributions to the Developer Guide

Contribution to Team-based Tasks

Review/mentoring contributions

Contributions beyond the project team

[Optional] Contribution to the User Guide

Here is an extract of one of my contributions to the User Guide:

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

[Optional] Contribution to the Developer Guide

Here is an extract of one of my contributions to the Developer Guide:

Meetings

API: cooper.meetings

meetingsComponent

The Meetings component contains the MeetingManager and Meeting classes.

MeetingManager stores 2 attributes:

  1. the timings along with the usernames of the available users, which is a TreeMap<LocalTime, ArrayList<String>> object,
  2. the list of meetings scheduled, which is an ArrayList<Meeting> object.

The MeetingManager constructs the instances of Meeting, and stores it as an ArrayList<Meeting> in itself.

The Meetings component: