ParlaChoreDocs

🧱 ParlaChore Architecture

This document provides a deeper look at the system architecture, control flow, and resource organization of ParlaChore.
It complements the high-level overview in README.md.


📂 Project Structure

src/main/java/com/parlAquatics/parlaChore
├── ParlaChoreLauncher.java        # Spring Boot entry point
├── component
│   └── DatabaseConduit.java       # Database connection abstraction
├── controller                     # MVC controllers
│   ├── ChoreController.java
│   ├── DashboardController.java
│   ├── LandingController.java
│   └── SettingsController.java
├── dto                            # Data Transfer Objects
│   ├── AccountDTO.java
│   ├── AccountSettingsDTO.java
│   ├── ParlaPalSettingsDTO.java
│   └── RegistrationFormDTO.java
├── entity                         # JPA entities
│   ├── Account.java
│   ├── Chore.java
│   ├── ParlaPal.java
│   └── Reward.java
├── handlers                       # Authentication & error handling
│   ├── CustomAuthenticationFailureHandler.java
│   ├── CustomAuthenticationSuccessHandler.java
│   └── GlobalErrorHandler.java
├── repository                     # Spring Data repositories
│   ├── AccountRepository.java
│   ├── ChoreRepository.java
│   └── ParlaPalRepository.java
├── service                        # Business logic layer
│   ├── AccountService.java
│   ├── ChoreService.java
│   ├── ParlaPalService.java
│   └── ThemeAssetService.java
└── util                           # Utilities & configuration
├── SecurityConfig.java
├── WebConfig.java
└── deepUtil/
├── HtmlSanitizer.java
├── TokenUtils.java
├── LogUtils.java
└── DateTimeUtils.java

🌐 Controller Mappings

ChoreController

DashboardController

LandingController

SettingsController


🔄 Control Flow

  1. Initial Request
    • Browser requests a route → Spring Boot serves a full HTML shell (via Thymeleaf templates).
    • Includes metadata, SEO tags, and placeholders.
  2. Overlay Swapper
    • User interaction triggers AJAX → backend responds with lean partials from /partials/{page}.
    • Frontend swapper injects fragment and applies fade-in transitions.
  3. Debug & Logging
    • Lifecycle events logged via LogUtils.
    • Debug flags toggle visibility for troubleshooting.
  4. Fallbacks
    • If JS fails, full shell still renders.
    • Error handling uses mascot-driven illustrations.

🛠 Utilities


🎨 Resources


📌 Notes


Created by Sam Parlatore
GitHub: github.com/samparlatore