## Why Engineering managers juggling 10-15 developers across 10-12 concurrent projects currently use error-prone spreadsheets for capacity planning and resource allocation. This leads to billing errors (over/under-allocation), no visibility into team headroom, manual capacity calculations, and no audit trail. The business impact is severe: over-allocation causes client escalations, under-allocation loses revenue, and managers waste 2+ hours monthly on manual allocation work. ## What Changes - **New web application**: Full-stack resource planning and capacity management system - **Capacity planning module**: Team member management, holiday/PTO tracking, availability calculations - **Project management module**: Project lifecycle tracking, approved estimates, forecasted effort distribution - **Resource allocation module**: Monthly allocation matrix with validation (over/under-allocation detection) - **Actuals tracking module**: Time logging interface, utilization calculations (running & overall) - **Reporting module**: 5 core reports (forecast, utilization, cost, allocation, variance) with customizable filters - **Authentication system**: JWT-based auth with 4 user roles (Superuser, Manager, Developer, Top Brass) - **Containerized deployment**: Docker Compose setup with Laravel API, SvelteKit frontend, PostgreSQL, Redis ## Capabilities ### New Capabilities - `team-member-management`: CRUD operations for team members with role, hourly rate, and active status tracking - `capacity-planning`: Calculate individual and team capacity based on availability, holidays, PTO, and working days - `project-lifecycle`: Manage projects through state machine (Initial → Estimates → Approved → Funded → In-Progress → Done) with approved estimates and forecasted effort - `resource-allocation`: Allocate hours per person per project per month with validation against capacity and approved estimates - `allocation-validation`: Detect and flag over/under-allocation (RED for >100%, YELLOW for <100%, GREEN for 100%) - `actuals-tracking`: Log hours worked per project per person per month (manual entry, monthly aggregate) - `utilization-calculations`: Calculate running utilization (YTD) and overall utilization (monthly) as percentage of capacity - `forecast-reporting`: Multi-period forecast reports showing allocations, revenue, and variance by project/team/person - `utilization-reporting`: Team and individual utilization trends with customizable date range and filters - `cost-reporting`: Revenue forecasts based on allocations multiplied by hourly rates, filterable by project/client/team - `allocation-reporting`: Monthly allocation matrix view showing who's allocated to what with utilization percentages - `variance-reporting`: Planned vs actual analysis showing over/under-delivery by project and person - `role-based-access`: Enforce permissions for 4 personas (Superuser, Manager, Developer, Top Brass) with different read/write access - `master-data-management`: Configure roles, project statuses, project types, and availability options - `authentication`: JWT-based token authentication with login, logout, and token refresh ### Modified Capabilities ## Impact **New Systems:** - Laravel 12 (latest) API (backend container, port 3000) - SvelteKit web app (frontend container, port 5173) - PostgreSQL (latest) database (data container, port 5432) - Redis (latest) cache (cache container, port 6379) - Docker Compose orchestration - Nginx Proxy Manager routing (`/api/*` → Laravel, `/*` → SvelteKit) **Dependencies:** - PHP 8.4 (latest) with Laravel 12 (latest) framework - Node (latest) with SvelteKit (latest) - Tailwind CSS + DaisyUI (UI components) - Recharts (visualizations) - TanStack Table (data grids) - Superforms + Zod (form validation) - Laravel Scribe (SwaggerUI API documentation) - Testing: PHPUnit, Pest, Vitest, Playwright **External Integrations:** - None for MVP (manual data entry only) **Breaking Changes:** - None (new system) **Migration Path:** - Greenfield project - no data migration needed - Users will transition from spreadsheets to web application