katarinasvedman-ms / agent-test

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

DevLead.Plan chain for #85 #87

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

agent-app-kapeltol[bot] commented 8 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 8 months ago

{ "steps": [ { "step": "1", "description": "Project setup and initialization", "subtasks": [ { "subtask": "1.1", "description": "Create a new C# solution using .NET for the backend API", "prompt": "// Output a command to create a new C# solution using .NET\ndotnet new sln -n TodoListApplication" }, { "subtask": "1.2", "description": "Add a new C# Web API project to the solution for the backend", "prompt": "// Output a command to add a new C# Web API project to the solution\ndotnet new webapi -n TodoListAPI\ndotnet sln add TodoListAPI" }, { "subtask": "1.3", "description": "Set up a SQL database instance in Azure for data storage", "prompt": "// Output a command to create a new Azure SQL Database instance\naz sql db create --name TodoListDb --resource-group MyResourceGroup --server MyServer --service-objective S1" }, { "subtask": "1.4", "description": "Add Entity Framework Core to the API project for ORM", "prompt": "// Output a command to add Entity Framework Core to the API project\ndotnet add TodoListAPI package Microsoft.EntityFrameworkCore.SqlServer" }, { "subtask": "1.5", "description": "Create a new Angular project for the frontend web application", "prompt": "// Output a command to create a new Angular project\nng new TodoListWebApp" }, { "subtask": "1.6", "description": "Set up a Xamarin project for mobile application development", "prompt": "// Output a command to create a new Xamarin.Forms project\ndotnet new xamarinforms -n TodoListMobileApp\ndotnet sln add TodoListMobileApp" } ] }, { "step": "2", "description": "Backend API development", "subtasks": [ { "subtask": "2.1", "description": "Define the task model and DbContext for Entity Framework", "prompt": "// Output C# code to define the task model and DbContext\nnamespace TodoListAPI.Models\n{\n public class TaskItem\n {\n public int Id { get; set; }\n public string Title { get; set; }\n public string Description { get; set; }\n public DateTime DueDate { get; set; }\n public bool IsComplete { get; set; }\n // Additional properties like Priority, Category, etc.\n }\n\n public class TodoListDbContext : DbContext\n {\n public TodoListDbContext(DbContextOptions options) : base(options)\n {\n }\n\n public DbSet TaskItems { get; set; }\n }\n}" }, { "subtask": "2.2", "description": "Implement CRUD operations for tasks in a controller", "prompt": "// Output C# code to implement CRUD operations in a controller\nusing Microsoft.AspNetCore.Mvc;\nusing TodoListAPI.Models;\n\nnamespace TodoListAPI.Controllers\n{\n [ApiController]\n [Route(\"api/[controller]\")]\n public class TasksController : ControllerBase\n {\n // Assume _context is injected and available\n\n [HttpGet]\n public IActionResult Get()\n {\n // Code to get all tasks\n }\n\n [HttpGet(\"{id}\")]\n public IActionResult Get(int id)\n {\n // Code to get a single task by id\n }\n\n [HttpPost]\n public IActionResult Create([FromBody] TaskItem task)\n {\n // Code to create a new task\n }\n\n [HttpPut(\"{id}\")]\n public IActionResult Update(int id, [FromBody] TaskItem task)\n {\n // Code to update an existing task\n }\n\n [HttpDelete(\"{id}\")]\n public IActionResult Delete(int id)\n {\n // Code to delete a task\n }\n }\n}" }, { "subtask": "2.3", "description": "Implement user authentication and authorization", "prompt": "// Output C# code to implement user authentication and authorization using ASP.NET Identity\nusing Microsoft.AspNetCore.Identity;\nusing Microsoft.AspNetCore.Authentication;\n\nnamespace TodoListAPI\n{\n // Code to set up ASP.NET Identity and authentication/authorization middleware\n}" } ] }, { "step": "3", "description": "Frontend web application development", "subtasks": [ { "subtask": "3.1", "description": "Set up Angular services to communicate with the backend API", "prompt": "// Output TypeScript code to set up Angular service for HTTP communications\nimport { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ApiService {\n constructor(private http: HttpClient) { }\n\n // Methods for CRUD operations\n}" }, { "subtask": "3.2", "description": "Create Angular components for the Todo List views", "prompt": "// Output TypeScript code to create Angular components for Todo List views\nimport { Component } from '@angular/core';\n\n@Component({\n selector: 'app-todo-list',\n templateUrl: './todo-list.component.html',\n styleUrls: ['./todo-list.component.css']\n})\nexport class TodoListComponent {\n // Component logic here\n}" }, { "subtask": "3.3", "description": "Implement state management in Angular using NgRx or services", "prompt": "// Output TypeScript code for state management in Angular\nimport { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class TodoStateService {\n private readonly _todos = new BehaviorSubject<Todo[]>([]);\n\n readonly todos$ = this._todos.asObservable();\n\n // Methods to manage state such as add, remove, update\n}" } ] }, { "step": "4", "description": "Mobile application development", "subtasks": [ { "subtask": "4.1", "description": "Implement Xamarin.Forms views for the Todo List features", "prompt": "// Output C# code to implement Xamarin.Forms views for Todo List\nnamespace TodoListMobileApp.Views\n{\n public partial class TaskListPage : ContentPage\n {\n public TaskListPage()\n {\n InitializeComponent();\n // Code to initialize the view\n }\n\n // Code for event handlers and data binding\n }\n}" }, { "subtask": "4.2", "description": "Set up Xamarin services to communicate with the backend API", "prompt": "// Output C# code to set up Xamarin services for HTTP communications\nusing System.Net.Http;\n\nnamespace TodoListMobileApp.Services\n{\n public class ApiService\n {\n private readonly HttpClient _httpClient;\n\n public ApiService()\n {\n _httpClient = new HttpClient();\n // Initialize HttpClient and set base address\n }\n\n // Methods for CRUD operations\n }\n}" }, { "subtask": "4.3", "description": "Implement local data storage for offline access using SQLite", "prompt": "// Output C# code for local data storage using SQLite\nusing SQLite;\n\nnamespace TodoListMobileApp.Services\n{\n public class LocalDatabase\n {\n private readonly SQLiteAsyncConnection _database;\n\n public LocalDatabase(string dbPath)\n {\n _database = new SQLiteAsyncConnection(dbPath);\n // Code to initialize and manage the SQLite database\n }\n\n // CRUD operations for local data storage\n }\n}" } ] }, { "step": "5", "description": "Deployment and automation", "subtasks": [ { "subtask": "5.1", "description": "Configure Azure DevOps pipelines for CI/CD", "prompt": "// Output YAML configuration for Azure DevOps CI/CD pipelines\ntrigger:\n- main\n\npool:\n vmImage: 'ubuntu-latest'\n\nstages:\n- stage: Build\n jobs:\n - job: Build\n steps:\n - script: dotnet build TodoListApplication.sln\n displayName: 'Build solution'" }, { "subtask": "5.2", "description": "Deploy the backend API to Azure using Azure Functions", "prompt": "// Output Azure CLI commands to deploy the backend API to Azure Functions\naz functionapp create --name TodoListFunctionApp --storage-account MyStorageAccount --consumption-plan-location westus --resource-group MyResourceGroup --runtime dotnet" }, { "subtask": "5.3", "description": "Deploy the frontend web application to Azure static web apps", "prompt": "// Output Azure CLI commands to create and deploy Azure static web apps\naz staticwebapp create --name TodoListWebApp --source TodoListWebApp --location westus --resource-group MyResourceGroup --branch main --token " }, { "subtask": "5.4", "description": "Set up automated database migrations using Entity Framework Core", "prompt": "// Output command to execute Entity Framework Core migrations\ndotnet ef database update" } ] } ] }

katarinasvedman-ms commented 8 months ago

Nice!