All Classes and Interfaces

Class
Description
Represents an Applicant user.
Applicant-specific menu options
Handles all actions specific to users logged in with applicant role.
This class represents a BTO application.
The status of an application.
Construct visual bars on the console, using this builder class.
Builder class to add values and build text like a bar.
The type of bar to be represented visually.
Main entry for our project's CLI application.
The key class that handles all important data.
A class representing BTO Project containing information for the project and has functions to modify the project information and handle users' applications to the project.
Options to decide which columns to be displayed
A simple class for representing an individual cell of any specific row and column of a CSV file.
The purpose of this abstract class is to provide a common constructor for the CSVParser class to construct objects.
The purpose of this interface is to provide a set of common functionality for the CSVEncoder class to encode objects for generating a CSV file, that is compliant for future parsing.
Use this class to write CSV files for each supported types (such as the users and projects).
Represents a CSV File Type that can be encodable.
This class parses CSV files.
Draw menus and tables enclosed in rectangles using this class, visually.
Use this class to build a menu.
For enquiries related functionality
Handles all enquiry related processes for a user.
Each enquiry acts as a question and answer session, between applicants and officers or managers of a project.
Class representing information about a flat in the HDB project.
Enum that represents the type of the flats (The assignment assumes there are only 2-Room and 3-Room)
This represents a user that is of HDB Manager role.
Possible menu options for a HDB Manager role Each option listed here are options that only a HDB Manager can interact with.
User interactable actions for when logged in user is of HDB Manager role
This represents a user that is of HDB Officer role.
Possible menu options for a HDB Manager role Each option listed here are options that only a HDB Manager can interact with.
User interactable actions for when logged in user is of HDB Officer role
This exception should be thrown when a restricted method is called while the logged in user is unauthorized to perform said action.
This interface is used to define the actions that can be performed by a user.
Enum representing different filters for listing.
This class is used to sort the listings based on certain criteria.
Represents the marital status of each user.
This class represents a message of an enquiry, by a user of our application, typically an applicant.
A visual effect to emulate the feel of printing a receipt with a dot matrix printer.
Type of report.
Enums that are intended to be used to identify an access control scope menu option should implement this interface.
Build text that is styled with colour and attributes like bold, italic, etc.
The fancy formatted text builder.
Default ANSI Codes I will not write documentation for each case, as it's pretty self-explanatory based on the enum name.
An extension of features for the Scanner class.
This class forms as the base of all user types.
Singleton class that handles certain common utility features such as date parsing.
Status for application withdrawal.