katarinasvedman-ms / agent-test

Testing the AI dev team repo
0 stars 0 forks source link

DevLead.Plan chain for #42 #44

Closed agent-app-kapeltol[bot] closed 4 months ago

agent-app-kapeltol[bot] commented 4 months ago

I'd like to build a typical Todo List Application: a simple productivity tool that allows users to create, manage, and track tasks or to-do items. Key features of the Todo List application include the ability to add, edit, and delete tasks, set due dates and reminders, categorize tasks by project or priority, and mark tasks as complete. The Todo List applications also offer collaboration features, such as sharing tasks with others or assigning tasks to team members. Additionally, the Todo List application will offer offer mobile and web-based interfaces, allowing users to access their tasks from anywhere. Use C# as the language. The app needs to be deployed to Azure, be highly performant, cost effective and secure, following the rules of Well Architected Framework.

agent-app-kapeltol[bot] commented 4 months ago
{
    "steps": [
        {
            "step": "1",
            "description": "Set up the project infrastructure in Azure",
            "subtasks": [
                {
                    "subtask": "1.1",
                    "description": "Create Azure Resource Group for organizing related resources.",
                    "prompt": "// Use Azure CLI to create a Resource Group\naz group create --name TodoListResourceGroup --location eastus"
                },
                {
                    "subtask": "1.2",
                    "description": "Create an Azure App Service Plan for hosting the web and API applications.",
                    "prompt": "// Use Azure CLI to create an App Service Plan\naz appservice plan create --name TodoListAppServicePlan --resource-group TodoListResourceGroup --sku B1 --is-linux"
                },
                {
                    "subtask": "1.3",
                    "description": "Create Azure Functions for handling operational tasks.",
                    "prompt": "// Use Azure CLI to create a Function App\naz functionapp create --name TodoListFunctionApp --storage-account <STORAGE_ACCOUNT_NAME> --resource-group TodoListResourceGroup --plan TodoListAppServicePlan --runtime dotnet --functions-version 4"
                },
                {
                    "subtask": "1.4",
                    "description": "Create an Azure Cosmos DB account for data storage.",
                    "prompt": "// Use Azure CLI to create a Cosmos DB account\naz cosmosdb create --name TodoListCosmosDB --resource-group TodoListResourceGroup --kind GlobalDocumentDB --locations regionName=eastus failoverPriority=0 isZoneRedundant=False"
                }
            ]
        },
        {
            "step": "2",
            "description": "Implement the backend API using ASP.NET Core",
            "subtasks": [
                {
                    "subtask": "2.1",
                    "description": "Initialize a new ASP.NET Core Web API project.",
                    "prompt": "// Use dotnet CLI to create a new Web API project\ndotnet new webapi --name TodoListAPI --no-https"
                },
                {
                    "subtask": "2.2",
                    "description": "Add a new 'TodoItem' model class to represent tasks.",
                    "prompt": "// C# code for 'TodoItem' model class\npublic class TodoItem {\n    public Guid Id { get; set; }\n    public string Title { get; set; }\n    public string Description { get; set; }\n    public DateTime DueDate { get; set; }\n    public bool IsCompleted { get; set; }\n    public string Priority { get; set; }\n    public string Category { get; set; }\n}"
                },
                {
                    "subtask": "2.3",
                    "description": "Add a new 'TodoItemsController' with CRUD operations.",
                    "prompt": "// C# code to create a controller with CRUD operations\n// Add using directives and dependency injections as needed\n[ApiController]\n[Route(\"api/[controller]\")]\npublic class TodoItemsController : ControllerBase {\n    // Add methods for Get, Post, Put, Delete\n}"
                },
                {
                    "subtask": "2.4",
                    "description": "Integrate Azure Cosmos DB SDK for data storage operations.",
                    "prompt": "// C# code to integrate Cosmos DB SDK in the API\n// Add the necessary using directives, dependency injections, and configurations\nclass CosmosDbService { /* ... */ }"
                },
                {
                    "subtask": "2.5",
                    "description": "Implement service layer and dependency injection for the controller.",
                    "prompt": "// C# code to create a service layer and setup dependency injection\npublic interface ITodoService { /* ... */ }\npublic class TodoService : ITodoService { /* ... */ }\n// Add code in Startup.cs to configure services\nservices.AddScoped<ITodoService, TodoService>();"
                }
            ]
        },
        {
            "step": "3",
            "description": "Develop the frontend application using Blazor",
            "subtasks": [
                {
                    "subtask": "3.1",
                    "description": "Initialize a new Blazor WebAssembly project.",
                    "prompt": "// Use dotnet CLI to create a new Blazor WebAssembly project\ndotnet new blazorwasm --name TodoListFrontend --output TodoListFrontend"
                },
                {
                    "subtask": "3.2",
                    "description": "Create components for displaying and managing Todo Items.",
                    "prompt": "// C# code to create Razor components for Todo items\n// Example: TodoList.razor, AddEditTodoItem.razor\n@"
                },
                {
                    "subtask": "3.3",
                    "description": "Implement HTTP Client services to interact with the backend API.",
                    "prompt": "// C# code to create a service for HTTP operations in the Blazor app\npublic class HttpTodoService { /* ... */ }"
                },
                {
                    "subtask": "3.4",
                    "description": "Add routing and navigation for the Blazor application.",
                    "prompt": "// C# code to set up routing in the Blazor application\n// Example: Add <Router> and <NavLink> components in App.razor and MainLayout.razor\n@"
                }
            ]
        },
        {
            "step": "4",
            "description": "Implement user authentication and authorization",
            "subtasks": [
                {
                    "subtask": "4.1",
                    "description": "Set up Azure Active Directory for managing user identities.",
                    "prompt": "// Use Azure CLI to create an Azure Active Directory application registration\naz ad app create --display-name TodoListApp"
                },
                {
                    "subtask": "4.2",
                    "description": "Integrate Azure AD authentication in the backend API.",
                    "prompt": "// C# code to integrate Azure AD authentication in the API Startup.cs\nservices.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)\n    .AddMicrosoftIdentityWebApi(Configuration.GetSection(\"AzureAd\"));"
                },
                {
                    "subtask": "4.3",
                    "description": "Implement secure API calls from the Blazor application.",
                    "prompt": "// C# code to implement secure API calls in the Blazor application\n// Use the 'Microsoft.AspNetCore.Components.WebAssembly.Authentication' library\n@"
                }
            ]
        },
        {
            "step": "5",
            "description": "Set up CI/CD pipelines for automatic deployment",
            "subtasks": [
                {
                    "subtask": "5.1",
                    "description": "Create Azure DevOps project and Git Repositories for API and Frontend.",
                    "prompt": "// Use Azure CLI to create an Azure DevOps project and Git repositories\naz devops project create --name TodoListProject\naz repos create --name TodoListAPI\naz repos create --name TodoListFrontend"
                },
                {
                    "subtask": "5.2",
                    "description": "Configure build pipelines for the API and the Frontend applications.",
                    "prompt": "// YAML configuration for Azure DevOps build pipeline\ntrigger:\n- main\n\npool:\n  vmImage: 'ubuntu-latest'\n\nsteps:\n- script: dotnet build --configuration Release\n  displayName: 'Build project'"
                },
                {
                    "subtask": "5.3",
                    "description": "Configure release pipelines to deploy the API and Frontend to Azure App Service and Azure Static Web Apps respectively.",
                    "prompt": "// YAML configuration for Azure DevOps release pipeline\ntrigger:\n- main\n\npool:\n  vmImage: 'ubuntu-latest'\n\nsteps:\n- script: echo 'Deploy to Azure App Service'\n  displayName: 'Deploy API'\n- script: echo 'Deploy to Azure Static Web Apps'\n  displayName: 'Deploy Frontend'"
                }
            ]
        }
    ]
}
katarinasvedman-ms commented 4 months ago

Nice!