Skip to content
This repository has been archived by the owner on Jan 23, 2024. It is now read-only.

Project Structure

Christopher Jäger (Mogler) edited this page Jun 24, 2023 · 1 revision

Project Structure

Our CRM program follows a well-organized folder structure to ensure a clear and efficient development environment. Here is an overview of the folder structure and their functions:

  1. Models: The "models" folder contains the data models for the CRM program. It defines classes such as "Customer," "Task," "Project," and others that represent different entities and define their properties. These models serve as the blueprint for organizing and manipulating data within the CRM system.

  2. Store: The "store" folder contains classes responsible for data persistence. Here, you will find classes like "XMLCustomerStore," "XMLTaskStore," "XMLProjectStore," which handle the storage and retrieval of customer, task, and project information using XML files. These classes encapsulate the logic for reading from and writing to the data storage.

  3. State: The "state" folder contains classes that manage the current state of the program. For example, "CustomerState," "TaskState," "ProjectState" store the selected customer, task, and project, respectively. These classes maintain the state of the CRM program, allowing easy access and manipulation of the currently selected entities.

  4. GUI: The "gui" folder contains classes for the graphical user interface (GUI) of the CRM program. It includes classes that create windows, dialogs, and UI components to provide a user-friendly interface for interacting with the program. The GUI components enable users to perform various actions and view customer-related information easily.

  5. TUI: The "tui" folder contains classes for the text-based user interface (TUI) of the CRM program. It develops console applications that allow users to interact with the program through the command line. The TUI provides an alternative interface for users who prefer a text-based interaction mode.

  6. Command: The "command" folder contains classes that implement the commands of the CRM program. For example, "OpenCustomerCommand," "CreateTaskCommand," "UpdateProjectCommand" represent specific actions within the program and enable their execution, undoing, and redoing. These command classes encapsulate the logic for carrying out different operations in the CRM system.

  7. Controller: The "controller" folder contains classes that act as intermediaries between the user interface and the data models. They handle user input, perform corresponding operations on the data models, and coordinate the update of the user interface. The controller classes ensure proper interaction between the different components of the CRM program.

This structured organization enhances modularity, maintainability, and code organization within the CRM program. Each folder has a specific role and contributes to the smooth functioning of the program. It allows for easier collaboration among developers and enables efficient development and maintenance of the CRM system.

Clone this wiki locally