Home - HarmandeepArneja/ChoresGalore GitHub Wiki

ParentChoreSystem Wiki

Overview

Welcome to the ParentChoreSystem GitHub repository! This project is a Java-based chore management system designed to facilitate communication between parents and children regarding household chores. The system includes parent and child accounts, chore assignments, and even a competition module. Below is a detailed breakdown of the project's structure and major components.

Repository Structure

1. src folder:

- choreModule package:
  • Chore.java: Represents a chore with attributes such as name, category, time, payment, and completion status.
  • ChoreUtils.java: Provides utility methods for sorting, filtering, and creating Excel sheets from lists of chores.
- accountModule package:
  • Account.java: Represents a generic account with a username and password, with an authentication method.
  • ParentAccount.java: Extends Account and manages child accounts, chore assignments, and related actions.
  • ChildAccount.java: Extends Account and includes methods for marking chores as completed, calculating working hours, and checking balances.
- competitionModule package:
  • Competition.java: Manages a competition between two child accounts based on their completed chores and working hours.
- UserInterface package:
  • ChildAccountGUI.java: GUI for child account interactions.
  • ChildRegistration.java: GUI for child account registration.
  • CompetitionStandings.java: GUI displaying competition standings.
  • CompetitionGUI.java: GUI for creating competitions.
  • ParentLoginPage.java: GUI for parent login.
  • ChildLoginPage.java: GUI for child login.
  • MainPage.java: Main GUI for navigating between parent and child accounts.
  • ParentAccountGUI.java: GUI for parent account interactions.
  • ParentRegistration.java: GUI for parent account registration.
  • SingleChoreDetails.java: GUI for chore full details.

2. test folder:

  • Unit folder: Contains JUnit tests for each class and method to ensure proper functionality.
  • IntegratedDBTesting folder: Contains manually database testing information.
  • CustomerTests folder: Contains test cases for each user stories.

3. lib folder:

  • Apache POI: External library used for creating Excel sheets from chore lists.
  • mysql-connector-j-8.3.0: MySQL connector for Java.
  • WindowBuilder: Tool for designing Swing GUIs.
  • jcalendar-1.4.jar: External library for Calendar.

Overall Architecture

Internal Components:

  1. choreModule package:

    • Chore: Represents the core entity of chores.
    • ChoreUtils: Provides utility methods for chore manipulation.
  2. accountModule package:

    • Account: Represents the basic account structure with authentication.
    • ParentAccount: Manages child accounts and chore assignments.
    • ChildAccount: Manages child-specific actions and interactions.
  3. competitionModule package:

    • Competition: Organizes and determines competition winners.
  4. UserInterface package:

    • Various GUI classes for interacting with the system.
  5. DatabaseModule package:

    • Handles database connectivity, setup, and operations.

External Components:

  1. Apache POI:

    • External library for creating Excel sheets.
  2. mysql-connector-j-8.3.0:

    • MySQL connector for Java.
  3. WindowBuilder:

    • Tool for designing Swing GUIs.
  4. jcalendar-1.4.jar

    • External library for Calendar.

Dependencies

  • choreModule relies on Java standard libraries.
  • lib folder contains external libraries (Apache POI, MySQL connector, jCalendar).
  • UserInterface relies on Swing for GUI.
  • DatabaseModule relies on MySQL.