# io8 Project Builder Plan: notess_app_20250924_065000

This document outlines the project builder plan for the `notess_app_20250924_065000` project, following the io8 Project Builder (MCP-Driven) guidelines.

## High-level Scaffolding Plan for Backend and Frontend

### Backend (Spring Boot)
- **Core Structure**: A standard Spring Boot application will be scaffolded, including:
    - `src/main/java` for Java source code.
    - `src/main/resources` for application properties, static assets, and templates.
    - `src/test/java` for unit and integration tests.
- **Dependencies**: Initial `pom.xml` will include essential Spring Boot starters (web, data-jpa, etc.) and MySQL connector.
- **API Layer**: Basic REST controllers will be generated to handle CRUD operations for core entities (e.g., notes).
- **Service Layer**: Business logic will reside in service classes.
- **Data Access Layer**: JPA repositories will be used for database interactions.

### Frontend (Angular Clarity)
- **Core Structure**: An Angular application will be scaffolded using Angular CLI, including:
    - `src/app` for application components, modules, services, and routing.
    - `src/assets` for static assets.
    - `src/environments` for environment-specific configurations.
- **Clarity Integration**: Clarity Design System will be integrated for UI components and styling.
- **Routing**: Basic routing will be set up for different views (e.g., list notes, create note, view note).
- **API Integration**: Services will be created to interact with the Spring Boot backend APIs.
- **Component Structure**: Components will be generated for displaying and managing notes.

## Directory and File Scaffolding Strategy

The scaffolding will adhere to standard conventions for Spring Boot and Angular projects.

- **Root Directory**: `/tmp/bmad_output/notess_app_20250924_065000/`
- **Backend**:
    - `backend/` (or similar, e.g., `notess-api/`)
        - `pom.xml`
        - `src/main/java/com/example/notessapp/...`
        - `src/main/resources/application.properties`
        - `src/test/java/com/example/notessapp/...`
- **Frontend**:
    - `frontend/` (or similar, e.g., `notess-ui/`)
        - `angular.json`
        - `package.json`
        - `src/app/...`
        - `src/assets/...`
        - `src/environments/...`
        - `src/index.html`
        - `src/main.ts`
        - `src/styles.scss`
- **io8 MCP Responses**:
    - `.sureai/io8_mcp/responses/`
        - `create_project.out`
        - `build_app.out`
        - `create_wireframe.out`
        - `git_pull_successful.out` (after successful git pull)

## Build Tools and Scripts to Generate Missing Code from Plans

- **io8 MCP Tools**: The primary tools for project creation and initial build will be the `process_user_prompt` and `build_app` functions provided by the io8 MCP.
- **Angular CLI**: For frontend development, `ng generate` commands will be used to create components, services, modules, etc.
- **Maven**: For backend development, Maven will handle dependency management and project building.
- **Wireframe Generation**: The `create_wireframe_raw` tool will be used to generate initial wireframes based on user requirements.

## Pre-developer Checks to Ensure Required Docs Exist

Before handing off to a developer, the following checks will be performed:

1.  **`create_project.out`**: Verify that the `create_project.out` file exists and contains a valid `projectResp.id`, `backendResp.id`, and `moduleResp.id`.
2.  **`build_app.out`**: Confirm that the `build_app.out` file exists and indicates a successful application build.
3.  **`git_pull_successful.out`**: Ensure this file exists, indicating that the project code has been successfully pulled from the Gitea repository.
4.  **Project Structure**: Verify that the basic directory structure for both backend and frontend (as outlined in the "Directory and File Scaffolding Strategy") is present after the `git pull`.
5.  **`architecture_document.md`**: If an `architecture_document.md` is provided, ensure that the generated project aligns with the specified technologies and architectural guidelines. (In this case, it was not found, so defaults were used).
6.  **`create_wireframe.out`**: Confirm that the `create_wireframe.out` file exists and indicates successful wireframe creation.
