{ "project-files": [ { "id": "file-1", "name": "page.tsx", "path": "/src/app/page.tsx", "content": "'use client'\n\nimport { ThemeProvider } from '@mui/material/styles'\nimport CssBaseline from '@mui/material/CssBaseline'\nimport { theme } from '@/theme'\nimport { Box, Typography, Button } from '@mui/material'\n\nexport default function Home() {\n return (\n \n \n \n \n Welcome to Your App\n \n \n \n \n )\n}", "language": "typescript" }, { "id": "file-2", "name": "layout.tsx", "path": "/src/app/layout.tsx", "content": "export const metadata = {\n title: 'My Next.js App',\n description: 'Generated with CodeForge',\n}\n\nexport default function RootLayout({\n children,\n}: {\n children: React.ReactNode\n}) {\n return (\n \n {children}\n \n )\n}", "language": "typescript" } ], "project-models": [ { "id": "model-1", "name": "User", "fields": [ { "id": "field-1", "name": "id", "type": "String", "isRequired": true, "isUnique": true, "isArray": false, "defaultValue": "uuid()" }, { "id": "field-2", "name": "email", "type": "String", "isRequired": true, "isUnique": true, "isArray": false }, { "id": "field-3", "name": "name", "type": "String", "isRequired": false, "isUnique": false, "isArray": false }, { "id": "field-4", "name": "createdAt", "type": "DateTime", "isRequired": true, "isUnique": false, "isArray": false, "defaultValue": "now()" } ] }, { "id": "model-2", "name": "Post", "fields": [ { "id": "field-5", "name": "id", "type": "String", "isRequired": true, "isUnique": true, "isArray": false, "defaultValue": "uuid()" }, { "id": "field-6", "name": "title", "type": "String", "isRequired": true, "isUnique": false, "isArray": false }, { "id": "field-7", "name": "content", "type": "String", "isRequired": false, "isUnique": false, "isArray": false }, { "id": "field-8", "name": "published", "type": "Boolean", "isRequired": true, "isUnique": false, "isArray": false, "defaultValue": "false" }, { "id": "field-9", "name": "authorId", "type": "String", "isRequired": true, "isUnique": false, "isArray": false, "relation": "User" } ] } ], "project-components": [ { "id": "comp-1", "type": "Button", "name": "PrimaryButton", "props": { "variant": "contained", "color": "primary" }, "children": [] }, { "id": "comp-2", "type": "Card", "name": "UserCard", "props": { "elevation": 2 }, "children": [ { "id": "comp-3", "type": "CardContent", "name": "CardContent", "props": {}, "children": [] } ] } ], "project-workflows": [ { "id": "workflow-1", "name": "User Registration Flow", "description": "Complete user registration and onboarding workflow", "nodes": [ { "id": "node-1", "type": "trigger", "name": "Form Submit", "position": { "x": 100, "y": 100 }, "data": { "label": "Registration Form Submitted" }, "config": { "triggerType": "event" } }, { "id": "node-2", "type": "action", "name": "Validate Input", "position": { "x": 300, "y": 100 }, "data": { "label": "Validate User Data" } }, { "id": "node-3", "type": "database", "name": "Create User", "position": { "x": 500, "y": 100 }, "data": { "label": "Insert User Record" }, "config": { "databaseQuery": "INSERT INTO users" } } ], "connections": [ { "id": "conn-1", "source": "node-1", "target": "node-2" }, { "id": "conn-2", "source": "node-2", "target": "node-3" } ], "isActive": true, "status": "success", "lastRun": 1704153600000, "createdAt": 1704067200000, "updatedAt": 1704067200000 }, { "id": "workflow-2", "name": "Email Notification Pipeline", "description": "Send automated email notifications to users", "nodes": [ { "id": "node-4", "type": "trigger", "name": "Schedule Trigger", "position": { "x": 100, "y": 100 }, "data": { "label": "Daily at 9 AM" }, "config": { "triggerType": "schedule", "scheduleExpression": "0 9 * * *" } }, { "id": "node-5", "type": "database", "name": "Fetch Users", "position": { "x": 300, "y": 100 }, "data": { "label": "Get Active Users" }, "config": { "databaseQuery": "SELECT * FROM users WHERE active = true" } }, { "id": "node-6", "type": "lambda", "name": "Send Emails", "position": { "x": 500, "y": 100 }, "data": { "label": "Process Email Queue" }, "config": { "lambdaCode": "// Send email logic" } } ], "connections": [ { "id": "conn-3", "source": "node-4", "target": "node-5" }, { "id": "conn-4", "source": "node-5", "target": "node-6" } ], "isActive": true, "status": "running", "lastRun": 1704240000000, "createdAt": 1704067200000, "updatedAt": 1704240000000 }, { "id": "workflow-3", "name": "Payment Processing", "description": "Handle payment transactions and update order status", "nodes": [ { "id": "node-7", "type": "trigger", "name": "Payment Event", "position": { "x": 100, "y": 100 }, "data": { "label": "Payment Received" }, "config": { "triggerType": "webhook" } }, { "id": "node-8", "type": "api", "name": "Validate Payment", "position": { "x": 300, "y": 100 }, "data": { "label": "Check Payment Gateway" }, "config": { "httpMethod": "POST", "apiEndpoint": "https://api.stripe.com/v1/charges" } }, { "id": "node-9", "type": "condition", "name": "Payment Valid?", "position": { "x": 500, "y": 100 }, "data": { "label": "Check Status" }, "config": { "condition": "payment.status === 'succeeded'" } }, { "id": "node-10", "type": "database", "name": "Update Order", "position": { "x": 700, "y": 100 }, "data": { "label": "Mark as Paid" }, "config": { "databaseQuery": "UPDATE orders SET status = 'paid'" } } ], "connections": [ { "id": "conn-5", "source": "node-7", "target": "node-8" }, { "id": "conn-6", "source": "node-8", "target": "node-9" }, { "id": "conn-7", "source": "node-9", "target": "node-10" } ], "isActive": true, "status": "failed", "lastRun": 1704226800000, "createdAt": 1704067200000, "updatedAt": 1704226800000 }, { "id": "workflow-4", "name": "Data Backup Task", "description": "Automated database backup and archival", "nodes": [ { "id": "node-11", "type": "trigger", "name": "Nightly Backup", "position": { "x": 100, "y": 100 }, "data": { "label": "Every Night at 2 AM" }, "config": { "triggerType": "schedule", "scheduleExpression": "0 2 * * *" } }, { "id": "node-12", "type": "database", "name": "Export Data", "position": { "x": 300, "y": 100 }, "data": { "label": "Create Backup" }, "config": { "databaseQuery": "pg_dump database" } }, { "id": "node-13", "type": "lambda", "name": "Upload to S3", "position": { "x": 500, "y": 100 }, "data": { "label": "Store Backup" }, "config": { "lambdaCode": "// S3 upload logic" } } ], "connections": [ { "id": "conn-8", "source": "node-11", "target": "node-12" }, { "id": "conn-9", "source": "node-12", "target": "node-13" } ], "isActive": false, "status": "success", "lastRun": 1704171600000, "createdAt": 1704067200000, "updatedAt": 1704171600000 } ], "project-lambdas": [ { "id": "lambda-1", "name": "processUserData", "description": "Process and transform user data", "code": "export async function handler(event) {\n const { userId, data } = event;\n // Process user data\n return {\n statusCode: 200,\n body: JSON.stringify({ success: true })\n };\n}", "language": "typescript", "runtime": "nodejs20.x", "handler": "index.handler", "timeout": 30, "memory": 256, "environment": { "NODE_ENV": "production" }, "triggers": [ { "id": "trigger-1", "type": "http", "config": { "method": "POST", "path": "/api/process-user" } } ], "createdAt": 1704067200000, "updatedAt": 1704067200000 } ], "project-playwright-tests": [ { "id": "test-1", "name": "User Login Flow", "description": "Test user authentication flow", "pageUrl": "/login", "steps": [ { "id": "step-1", "action": "navigate", "value": "/login" }, { "id": "step-2", "action": "fill", "selector": "#email", "value": "test@example.com" }, { "id": "step-3", "action": "fill", "selector": "#password", "value": "password123" }, { "id": "step-4", "action": "click", "selector": "button[type='submit']" }, { "id": "step-5", "action": "expect", "selector": ".dashboard", "assertion": "toBeVisible" } ] } ], "project-storybook-stories": [ { "id": "story-1", "componentName": "Button", "storyName": "Primary", "args": { "variant": "primary", "children": "Click me", "disabled": false }, "description": "Primary button variant", "category": "Components" }, { "id": "story-2", "componentName": "Card", "storyName": "Default", "args": { "title": "Card Title", "description": "Card description", "elevation": 2 }, "description": "Default card component", "category": "Layout" } ], "project-unit-tests": [ { "id": "test-1", "name": "Button Component Tests", "description": "Unit tests for Button component", "testType": "component", "targetFile": "/src/components/Button.tsx", "testCases": [ { "id": "case-1", "description": "renders with correct text", "assertions": [ "expect(screen.getByText('Click me')).toBeInTheDocument()" ] }, { "id": "case-2", "description": "calls onClick handler when clicked", "assertions": [ "expect(handleClick).toHaveBeenCalledTimes(1)" ] } ] } ], "project-component-trees": [ { "id": "tree-1", "name": "Main App Layout", "description": "Primary application layout tree", "rootNodes": [ { "id": "root-1", "type": "Container", "name": "AppContainer", "props": { "maxWidth": "xl" }, "children": [ { "id": "header-1", "type": "AppBar", "name": "Header", "props": { "position": "sticky" }, "children": [] }, { "id": "main-1", "type": "Box", "name": "MainContent", "props": { "sx": { "py": 4 } }, "children": [] } ] } ], "createdAt": 1704067200000, "updatedAt": 1704067200000 } ] }