alessandro-avila / project-oagents

Experimental AI Agents Framework
Creative Commons Attribution 4.0 International
0 stars 0 forks source link

DevLead.Plan chain for #70 #72

Closed project-oagent-gh-app[bot] closed 1 month ago

project-oagent-gh-app[bot] commented 1 month 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 todo 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. To Todo List Application also offers collaboration features, such as sharing tasks with others or assigning tasks to team members. Additionally, the Todo List application will 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 (waf).

project-oagent-gh-app[bot] commented 1 month ago

{ "steps": [ { "step": "1", "description": "Set up the development environment", "subtasks": [ { "subtask": "1.1", "description": "Install necessary software and tools", "prompt": "{ 'code': \"# Install Azure CLI\ncurl -sL https://aka.ms/InstallAzureCLIDeb | sudo bash\n\n# Install .Net Core SDK\nwget https://download.visualstudio.microsoft.com/download/pr/95e91e8e-496e-4f22-8d12-573aa5aa67f6/32cc5f113a3a10f6e6c4d8a4e2d6f203/dotnet-sdk-3.1.100-preview3-014645-linux-x64.tar.gz\nmkdir -p $HOME/dotnet && tar zxf dotnet-sdk-3.1.100-preview3-014645-linux-x64.tar.gz -C $HOME/dotnet\nexport DOTNET_ROOT=$HOME/dotnet\nexport PATH=$PATH:$HOME/dotnet\" }" }, { "subtask": "1.2", "description": "Create a new .NET Web API project", "prompt": "{ 'code': \"dotnet new webapi -n TodoListApp\" }" } ] }, { "step": "2", "description": "Design the application architecture", "subtasks": [ { "subtask": "2.1", "description": "Design the data model for the task entity", "prompt": "{ 'code': \"public class Task\n{\n public int Id { get; set; }\n public string Name { get; set; }\n public string Description { get; set; }\n public DateTime DueDate { get; set; }\n public string Priority { get; set; }\n public bool IsComplete { get; set; }\n public string AssignedTo { get; set; }\n}\n\" }" }, { "subtask": "2.2", "description": "Design the service layer for handling business logic", "prompt": "{ 'code': \"public interface ITaskService\n{\n Task<List> GetTasks();\n Task GetTask(int id);\n Task AddTask(Task task);\n Task UpdateTask(Task task);\n Task DeleteTask(int id);\n}\n\" }" }, { "subtask": "2.3", "description": "Design the API controllers for handling HTTP requests", "prompt": "{ 'code': \"[Route('api/[controller]')]\npublic class TasksController : ControllerBase\n{\n private readonly ITaskService _taskService;\n\n public TasksController(ITaskService taskService)\n {\n _taskService = taskService;\n }\n\n [HttpGet]\n public async Task GetTasks()\n {\n return Ok(await _taskService.GetTasks());\n }\n\n // Add other API methods here\n}\n\" }" } ] }, { "step": "3", "description": "Implement data access layer", "subtasks": [ { "subtask": "3.1", "description": "Define the DbContext for interacting with the database", "prompt": "{ 'code': \"public class TaskDbContext : DbContext\n{\n public DbSet Tasks { get; set; }\n\n protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)\n {\n optionsBuilder.UseSqlServer('Your_Connection_String');\n }\n}\n\" }" }, { "subtask": "3.2", "description": "Implement a repository for encapsulating data access", "prompt": "{ 'code': \"public class TaskRepository : ITaskRepository\n{\n private readonly TaskDbContext _context;\n\n public TaskRepository(TaskDbContext context)\n {\n _context = context;\n }\n\n public async Task<List> GetTasks()\n {\n return await _context.Tasks.ToListAsync();\n }\n\n // Add other repository methods here\n}\n\" }" } ] }, { "step": "4", "description": "Create Azure resources", "subtasks": [ { "subtask": "4.1", "description": "Create an Azure App Service for hosting the web application", "prompt": "{ 'code': \"az appservice plan create --name myAppServicePlan --resource-group myResourceGroup --sku F1 --is-linux\naz webapp create --resource-group myResourceGroup --plan myAppServicePlan --name myWebApp --runtime \"DOTNETCORE|3.1\" --deployment-local-git\n\" }" }, { "subtask": "4.2", "description": "Create an Azure SQL Database for storing data", "prompt": "{ 'code': \"az sql server create --name mySqlServer --resource-group myResourceGroup --location eastus --admin-user myAdmin --admin-password myPassword\naz sql db create --resource-group myResourceGroup --server mySqlServer --name mySqlDb --service-objective S0\n\" }" } ] }, { "step": "5", "description": "Deploy the application to Azure", "subtasks": [ { "subtask": "5.1", "description": "Push the application code to the local Git repository of the Azure App Service", "prompt": "{ 'code': \"git init\ngit add .\ngit commit -m \"Initial commit\"\ngit remote add azure https://username:password@myWebApp.scm.azurewebsites.net/myWebApp.git\ngit push azure master\n\" }" } ] } ] }