Files
rentman-clone/.a0/task_graph.json
T

483 lines
20 KiB
JSON
Raw Normal View History

[
{
"id": "T001",
"title": "Initialize project repository and Docker Compose",
"description": "Create project root with backend/ and frontend/ directories. Set up Docker Compose with services: backend (FastAPI), frontend (Vite React), PostgreSQL, Redis, MinIO. Create .env.example with required env vars.",
"dependencies": [],
"estimated_hours": 4,
"owner_agent": "implementation_engineer"
},
{
"id": "T002",
"title": "Set up FastAPI skeleton with SQLAlchemy and Alembic",
"description": "Initialize FastAPI app with async support, configure SQLAlchemy 2.0 engine and async session, set up Alembic for migrations, create initial migration with Account and User tables.",
"dependencies": ["T001"],
"estimated_hours": 8,
"owner_agent": "implementation_engineer"
},
{
"id": "T003",
"title": "Set up React SPA with Vite, Tailwind CSS, routing and Zustand",
"description": "Initialize Vite React project with TypeScript, add React Router, Zustand store, React Query, Tailwind CSS with Radix UI primitives. Create basic layout and routing structure.",
"dependencies": ["T001"],
"estimated_hours": 6,
"owner_agent": "implementation_engineer"
},
{
"id": "T004",
"title": "Create database models for Account, User, Role",
"description": "Implement SQLAlchemy models: Account, User (with password hashing), Role (with permissions JSON). Define relationships and tenant_id on User.",
"dependencies": ["T002"],
"estimated_hours": 4,
"owner_agent": "implementation_engineer"
},
{
"id": "T005",
"title": "Implement user authentication (login, refresh, register)",
"description": "Build auth endpoints: POST /auth/login (JWT access+refresh tokens), POST /auth/refresh, POST /auth/register (create tenant+admin). Use bcrypt, JWT handling.",
"dependencies": ["T004"],
"estimated_hours": 10,
"owner_agent": "implementation_engineer"
},
{
"id": "T006",
"title": "Implement RBAC middleware and permission check dependencies",
"description": "Create FastAPI dependency that extracts user from JWT, loads role permissions, and checks required permission. Add tenant filtering (account_id) to all queries.",
"dependencies": ["T005"],
"estimated_hours": 8,
"owner_agent": "implementation_engineer"
},
{
"id": "T007",
"title": "Create user and role management API (admin)",
"description": "CRUD endpoints for users: GET /users, POST /users, GET/PUT/DELETE /users/{id}. Role management: GET/PUT roles. Invitation workflow with email activation link.",
"dependencies": ["T006"],
"estimated_hours": 8,
"owner_agent": "implementation_engineer"
},
{
"id": "T008",
"title": "Login and user management UI",
"description": "Build login page, registration page, password reset flow. Admin pages for user list, create/edit user, role matrix editor. Route guards based on auth state.",
"dependencies": ["T003", "T005", "T007"],
"estimated_hours": 12,
"owner_agent": "implementation_engineer"
},
{
"id": "T009",
"title": "Create database models for Contacts and Tags",
"description": "SQLAlchemy models for Contact (company/person) and Tag. Create Alembic migration.",
"dependencies": ["T004"],
"estimated_hours": 3,
"owner_agent": "implementation_engineer"
},
{
"id": "T010",
"title": "Implement contacts CRUD API",
"description": "REST endpoints for contacts: GET /contacts (with search/filter), POST /contacts, GET/PUT/DELETE /contacts/{id}. Return associated projects.",
"dependencies": ["T009", "T006"],
"estimated_hours": 6,
"owner_agent": "implementation_engineer"
},
{
"id": "T011",
"title": "Contacts management UI (list, detail, form)",
"description": "Pages: contact list with search/filter, contact detail page showing linked projects, create/edit form for company/person.",
"dependencies": ["T010"],
"estimated_hours": 8,
"owner_agent": "implementation_engineer"
},
{
"id": "T012",
"title": "Create database models for Equipment catalog and StockLocation",
"description": "SQLAlchemy models: Equipment (with barcode, qr_code, category, status), StockLocation, and EquipmentGroup (Bundle) with M2M items. Migrations.",
"dependencies": ["T004"],
"estimated_hours": 4,
"owner_agent": "implementation_engineer"
},
{
"id": "T013",
"title": "Implement Equipment catalog API",
"description": "CRUD for equipment: GET /equipment (search, filter, pagination), POST /equipment, GET/PUT/DELETE /equipment/{id}. Auto-generate barcode/QR code. Batch import/export CSV.",
"dependencies": ["T012", "T006"],
"estimated_hours": 10,
"owner_agent": "implementation_engineer"
},
{
"id": "T014",
"title": "Equipment catalog UI",
"description": "Equipment list with grid/table toggle, search/filter by category, status, location. Detail page with image, edit form. Barcode/QR code display and print label.",
"dependencies": ["T013"],
"estimated_hours": 12,
"owner_agent": "implementation_engineer"
},
{
"id": "T015",
"title": "Create database models for Crew and CrewAvailability",
"description": "SQLAlchemy models: Crew (internal/freelancer, skills JSON), CrewAvailability (availability/block periods). Migrations.",
"dependencies": ["T004"],
"estimated_hours": 3,
"owner_agent": "implementation_engineer"
},
{
"id": "T016",
"title": "Implement Crew catalog and availability API",
"description": "CRUD for crew members, GET /crew/{id}/availability (timeline). Endpoints to manage availability slots.",
"dependencies": ["T015", "T006"],
"estimated_hours": 8,
"owner_agent": "implementation_engineer"
},
{
"id": "T017",
"title": "Crew management UI",
"description": "Crew list, detail page, edit form. Availability calendar per crew member. Skill tags editor.",
"dependencies": ["T016"],
"estimated_hours": 10,
"owner_agent": "implementation_engineer"
},
{
"id": "T018",
"title": "Create database models for Vehicles and VehicleAssignment",
"description": "SQLAlchemy models: Vehicle (type, payload, volume), VehicleAssignment (project, period, driver). Migrations.",
"dependencies": ["T004"],
"estimated_hours": 3,
"owner_agent": "implementation_engineer"
},
{
"id": "T019",
"title": "Implement Vehicle catalog and assignment API",
"description": "CRUD for vehicles, GET /vehicles/{id}/assignments. Endpoint for availability check.",
"dependencies": ["T018", "T006"],
"estimated_hours": 6,
"owner_agent": "implementation_engineer"
},
{
"id": "T020",
"title": "Vehicle management UI",
"description": "Vehicle list, detail, edit form. Calendar for assignments. Drag-and-drop to project (later).",
"dependencies": ["T019"],
"estimated_hours": 8,
"owner_agent": "implementation_engineer"
},
{
"id": "T021",
"title": "Create database models for Project hierarchy",
"description": "SQLAlchemy models: Project, Subproject, ProjectFunctionGroup, ProjectFunction (with type enum). Migrations. Define cascades.",
"dependencies": ["T004"],
"estimated_hours": 6,
"owner_agent": "implementation_engineer"
},
{
"id": "T022",
"title": "Implement Project CRUD API",
"description": "Endpoints: GET/POST /projects (filter, sort, paginate), GET/PUT/DELETE /projects/{id}. Include subproject endpoints, function group and function endpoints within project. Auto-generate project number. Status workflow with history.",
"dependencies": ["T021", "T006", "T010"],
"estimated_hours": 16,
"owner_agent": "implementation_engineer"
},
{
"id": "T023",
"title": "Project list and detail UI",
"description": "Project list page with advanced filters (status, customer, date range), sortable columns, pagination. Detail page with tabs: Overview, Functions, Equipment, Crew, Vehicles, Financial, Documents. Inline editing for some fields.",
"dependencies": ["T022"],
"estimated_hours": 20,
"owner_agent": "implementation_engineer"
},
{
"id": "T024",
"title": "Project function group and function editor UI",
"description": "Inside project detail, allow CRUD of function groups and functions (crew/equipment/transport). Drag-and-drop reordering. Time period inheritance from group. Amount, rate fields.",
"dependencies": ["T023"],
"estimated_hours": 14,
"owner_agent": "implementation_engineer"
},
{
"id": "T025",
"title": "Create database models for ProjectEquipment and ProjectCrew",
"description": "Models: ProjectEquipmentGroup, ProjectEquipment (with equipment link, quantity, price, discount), ProjectCrew (with function link, crew_id, period). Migrations.",
"dependencies": ["T021"],
"estimated_hours": 4,
"owner_agent": "implementation_engineer"
},
{
"id": "T026",
"title": "Implement project equipment group and items API",
"description": "Endpoints for project equipment groups: CRUD under /projects/{id}/equipmentgroups. Add equipment items to group (select from catalog or free-text). Include availability check.",
"dependencies": ["T025", "T022", "T013"],
"estimated_hours": 8,
"owner_agent": "implementation_engineer"
},
{
"id": "T027",
"title": "Project equipment management UI",
"description": "Within project, manage equipment groups and items. Search/autocomplete from catalog, set quantity, price, discount. Visual availability indicator. Drag-and-drop to add items (future).",
"dependencies": ["T026"],
"estimated_hours": 12,
"owner_agent": "implementation_engineer"
},
{
"id": "T028",
"title": "Implement crew assignment API",
"description": "Endpoints for assigning crew to project functions. POST /projects/{id}/functiongroups/{gid}/functions/{fid}/crew (assign crew member). Availability conflict detection.",
"dependencies": ["T025", "T016"],
"estimated_hours": 8,
"owner_agent": "implementation_engineer"
},
{
"id": "T029",
"title": "Crew assignment UI in project",
"description": "In project crew tab, show crew functions and assigned crew. Search/select crew, show availability conflicts. Drag-and-drop crew onto function.",
"dependencies": ["T028"],
"estimated_hours": 10,
"owner_agent": "implementation_engineer"
},
{
"id": "T030",
"title": "Implement vehicle assignment API and UI",
"description": "Endpoints to assign vehicles to project (similar to crew). UI under project transport tab.",
"dependencies": ["T025", "T019"],
"estimated_hours": 6,
"owner_agent": "implementation_engineer"
},
{
"id": "T031",
"title": "Create database models for Quotes, Invoices, Templates",
"description": "SQLAlchemy models: Quote, Invoice, Template. Migrations.",
"dependencies": ["T004"],
"estimated_hours": 3,
"owner_agent": "implementation_engineer"
},
{
"id": "T032",
"title": "Implement Quote and Invoice API",
"description": "Endpoints: POST /projects/{id}/quotes (generate from project items), GET/PUT quotes. POST invoices from quotes. Status transitions. Number auto-generation.",
"dependencies": ["T031", "T022"],
"estimated_hours": 10,
"owner_agent": "implementation_engineer"
},
{
"id": "T033",
"title": "Financial documents UI",
"description": "Quote list, create/edit form, PDF preview download. Invoice list with status badges. Payment status tracking. Email sending dialog.",
"dependencies": ["T032"],
"estimated_hours": 14,
"owner_agent": "implementation_engineer"
},
{
"id": "T034",
"title": "Template engine for quotes/invoices",
"description": "Backend: HTML template with placeholders, fill with project data, render to PDF (WeasyPrint). Admin UI for template CRUD with editor.",
"dependencies": ["T031"],
"estimated_hours": 10,
"owner_agent": "implementation_engineer"
},
{
"id": "T035",
"title": "Create database models for ProjectRequest",
"description": "Models: ProjectRequest, ProjectRequestEquipment. Migrations.",
"dependencies": ["T004"],
"estimated_hours": 2,
"owner_agent": "implementation_engineer"
},
{
"id": "T036",
"title": "Implement project request API and conversion",
"description": "Public endpoint POST /requests (without auth). Authenticated endpoints to list, update status, and convert request to project (copy fields, equipment items).",
"dependencies": ["T035", "T022"],
"estimated_hours": 8,
"owner_agent": "implementation_engineer"
},
{
"id": "T037",
"title": "Project request public form and admin UI",
"description": "Public page with form to submit a project request. Admin page to view requests, convert to project with confirmation dialog.",
"dependencies": ["T036"],
"estimated_hours": 8,
"owner_agent": "implementation_engineer"
},
{
"id": "T038",
"title": "Create database models for Documents",
"description": "SQLAlchemy model: Document (file metadata). Migrations. Configure file storage (local for dev, S3 for prod).",
"dependencies": ["T004"],
"estimated_hours": 3,
"owner_agent": "implementation_engineer"
},
{
"id": "T039",
"title": "Implement document upload/download API",
"description": "Endpoints: POST /documents (multipart upload), GET /documents/{id} (download or signed URL), DELETE. Associate with project.",
"dependencies": ["T038", "T006"],
"estimated_hours": 6,
"owner_agent": "implementation_engineer"
},
{
"id": "T040",
"title": "Document management UI",
"description": "File list within project, drag-and-drop upload, file preview (images, PDFs), delete with confirmation.",
"dependencies": ["T039"],
"estimated_hours": 6,
"owner_agent": "implementation_engineer"
},
{
"id": "T041",
"title": "Implement scheduling and timeline API",
"description": "Endpoints to fetch project timelines (Gantt data), resource utilization timelines (equipment, crew, vehicles availability overlaps).",
"dependencies": ["T022", "T013", "T016", "T019"],
"estimated_hours": 10,
"owner_agent": "implementation_engineer"
},
{
"id": "T042",
"title": "Gantt timeline and resource views UI",
"description": "Interactive Gantt chart for projects (horizontal bars, drag-resize to change dates). Resource utilization view with colored blocks. Zoom/pan.",
"dependencies": ["T041"],
"estimated_hours": 18,
"owner_agent": "implementation_engineer"
},
{
"id": "T043",
"title": "Implement iCal feed and external calendar integration",
"description": "Generate per-user iCal feed URL containing project events. Allow subscribing in Google Calendar etc.",
"dependencies": ["T022"],
"estimated_hours": 6,
"owner_agent": "implementation_engineer"
},
{
"id": "T044",
"title": "Create Task and TaskAssignment models and API",
"description": "Models for to-do tasks inside projects. CRUD endpoints with status (open, in progress, done), assignee.",
"dependencies": ["T004", "T021"],
"estimated_hours": 6,
"owner_agent": "implementation_engineer"
},
{
"id": "T045",
"title": "Task management UI",
"description": "Task list in project, personal to-do page, drag to change status, email reminders for due tasks.",
"dependencies": ["T044"],
"estimated_hours": 8,
"owner_agent": "implementation_engineer"
},
{
"id": "T046",
"title": "Reporting and analytics API",
"description": "Endpoints for financial KPIs, equipment utilization stats, project statistics. Use aggregation queries.",
"dependencies": ["T032", "T013"],
"estimated_hours": 8,
"owner_agent": "implementation_engineer"
},
{
"id": "T047",
"title": "Dashboard and reports UI",
"description": "Dashboard with configurable widgets (active projects, revenue, equipment utilization, open invoices). Drill-down links. Report pages with charts (using recharts). Export to CSV.",
"dependencies": ["T046"],
"estimated_hours": 16,
"owner_agent": "implementation_engineer"
},
{
"id": "T048",
"title": "Implement webhook management and dispatch",
"description": "Webhook CRUD for admins. Background task (Celery) to dispatch webhooks on configured events (project created, status changed, invoice created, etc.). Retry logic and log.",
"dependencies": ["T006", "T005"],
"estimated_hours": 8,
"owner_agent": "implementation_engineer"
},
{
"id": "T049",
"title": "Webhook configuration UI",
"description": "Admin page to manage webhooks: add URL, select events, secret key, test trigger, view delivery logs.",
"dependencies": ["T048"],
"estimated_hours": 6,
"owner_agent": "implementation_engineer"
},
{
"id": "T050",
"title": "Create audit log model and middleware",
"description": "AuditLog model. Middleware or event hook to record all CUD operations with user, action, entity, details. API to retrieve audit log (admin only).",
"dependencies": ["T004", "T006"],
"estimated_hours": 6,
"owner_agent": "implementation_engineer"
},
{
"id": "T051",
"title": "Audit log UI",
"description": "Admin page with searchable, filterable audit log table. Show who did what and when.",
"dependencies": ["T050"],
"estimated_hours": 4,
"owner_agent": "implementation_engineer"
},
{
"id": "T052",
"title": "Internationalization (i18n) setup",
"description": "Set up i18next in frontend, add DE and EN translation files. Backend: serve translations or use frontend-only. Implement language switcher.",
"dependencies": ["T003"],
"estimated_hours": 8,
"owner_agent": "implementation_engineer"
},
{
"id": "T053",
"title": "PWA (Progressive Web App) configuration and offline support for mobile",
"description": "Add Service Worker with Workbox, manifest.json, offline caching for project data, equipment lists, pack lists. Use IndexedDB for local storage. Implement sync logic.",
"dependencies": ["T003", "T022"],
"estimated_hours": 16,
"owner_agent": "implementation_engineer"
},
{
"id": "T054",
"title": "Barcode/QR scanning on mobile (PWA)",
"description": "Integrate Capacitor Barcode Scanner plugin. Implement camera scanning UI. On scan: show equipment info and allow status change, packing/unpacking.",
"dependencies": ["T053", "T014"],
"estimated_hours": 8,
"owner_agent": "implementation_engineer"
},
{
"id": "T055",
"title": "Mobile-specific UI (pack list, availability check)",
"description": "Build mobile-optimized views: pack list with checkboxes (offline capable), quick availability search. Use responsive design.",
"dependencies": ["T053"],
"estimated_hours": 10,
"owner_agent": "implementation_engineer"
},
{
"id": "T056",
"title": "Backend API documentation (OpenAPI/Swagger)",
"description": "Ensure all endpoints have proper Pydantic schemas, descriptions, and examples. Generate OpenAPI spec. Write developer README.",
"dependencies": ["T002"],
"estimated_hours": 6,
"owner_agent": "implementation_engineer"
},
{
"id": "T057",
"title": "Integration tests for critical flows",
"description": "Write pytest tests for auth, project workflow, equipment assignment, quote/invoice generation. Use test database (SQLite).",
"dependencies": ["T005", "T022", "T026", "T032"],
"estimated_hours": 16,
"owner_agent": "implementation_engineer"
},
{
"id": "T058",
"title": "CI/CD pipeline (GitHub Actions)",
"description": "Set up GitHub Actions workflow: run linting, type checks, tests, build Docker images, push to registry. (Optional) deploy to Coolify via webhook.",
"dependencies": ["T001"],
"estimated_hours": 8,
"owner_agent": "implementation_engineer"
},
{
"id": "T059",
"title": "Production deployment configuration (Coolify)",
"description": "Create Coolify service with Docker Compose, SSL, environment variables, database backup schedule. Document deployment steps.",
"dependencies": ["T001"],
"estimated_hours": 6,
"owner_agent": "implementation_engineer"
},
{
"id": "T060",
"title": "Performance optimization and final review",
"description": "Add database indexes missing, optimize heavy queries, implement Redis caching for dashboard stats, add pagination to all list endpoints. Final code review and cleanup.",
"dependencies": ["T047", "T041"],
"estimated_hours": 12,
"owner_agent": "implementation_engineer"
}
]