{"id":30196219,"url":"https://github.com/johancalat/devworkshop-taskapi","last_synced_at":"2026-05-18T03:35:23.412Z","repository":{"id":309004743,"uuid":"1034860660","full_name":"JohanCalaT/DevWorkshop-TaskAPI","owner":"JohanCalaT","description":"🛠️ TaskFlowPro - Sistema de Gestión de Tareas y Equipos con Clean Architecture (.NET 9) - Plantilla Educativa","archived":false,"fork":false,"pushed_at":"2025-08-09T06:11:08.000Z","size":53,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-08-09T08:27:08.748Z","etag":null,"topics":["api","clean-architecture","csharp","dotnet","educational","entity-framework","jwt","repository-pattern","rest","template"],"latest_commit_sha":null,"homepage":null,"language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/JohanCalaT.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-08-09T06:03:44.000Z","updated_at":"2025-08-09T06:11:12.000Z","dependencies_parsed_at":"2025-08-09T08:27:10.515Z","dependency_job_id":"320a0d8d-bc03-4c86-9ada-a7f15bd531c1","html_url":"https://github.com/JohanCalaT/DevWorkshop-TaskAPI","commit_stats":null,"previous_names":["johancalat/devworkshop-taskapi"],"tags_count":null,"template":true,"template_full_name":null,"purl":"pkg:github/JohanCalaT/DevWorkshop-TaskAPI","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JohanCalaT%2FDevWorkshop-TaskAPI","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JohanCalaT%2FDevWorkshop-TaskAPI/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JohanCalaT%2FDevWorkshop-TaskAPI/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JohanCalaT%2FDevWorkshop-TaskAPI/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/JohanCalaT","download_url":"https://codeload.github.com/JohanCalaT/DevWorkshop-TaskAPI/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JohanCalaT%2FDevWorkshop-TaskAPI/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":270183606,"owners_count":24541341,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-13T02:00:09.904Z","response_time":66,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["api","clean-architecture","csharp","dotnet","educational","entity-framework","jwt","repository-pattern","rest","template"],"created_at":"2025-08-13T05:17:06.343Z","updated_at":"2026-05-18T03:35:23.372Z","avatar_url":"https://github.com/JohanCalaT.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🛠️ DevWorkshop-TaskAPI\n\n[![.NET](https://img.shields.io/badge/.NET-9.0-blue.svg)](https://dotnet.microsoft.com/)\n[![Entity Framework](https://img.shields.io/badge/Entity%20Framework-9.0.7-green.svg)](https://docs.microsoft.com/en-us/ef/)\n[![Clean Architecture](https://img.shields.io/badge/Architecture-Clean-orange.svg)](https://blog.cleancoder.com/uncle-bob/2012/08/13/the-clean-architecture.html)\n\nPlantilla educativa de API REST con **.NET 9** y **Clean Architecture**. Incluye patrones Repository/Unit of Work, Entity Framework Core y TODOs estructurados para estudiantes.\n\n## 🎯 Características\n\n- **Clean Architecture** (Domain, Application, Infrastructure, API)\n- **Repository \u0026 Unit of Work** patterns\n- **Entity Framework Core** + SQL Server\n- **AutoMapper** + **Swagger/OpenAPI**\n- **URLs descriptivas** (`/api/roles/getAll`, `/api/users/create`)\n- **RolesController** completamente implementado (ejemplo)\n- **TODOs** para Users, Tasks y Auth (práctica)\n\n## 🏗️ Estructura\n\n```\n📁 DevWorkshop-TaskAPI/\n├── 📁 Domain/          # Entidades y reglas de negocio\n├── 📁 Application/     # DTOs, servicios e interfaces\n├── 📁 Infrastructure/  # EF Core, Repositories, Unit of Work\n└── 📁 Api/             # Controladores y configuración\n```\n\n## 🚀 Instalación\n\n**Prerrequisitos**: [.NET 9 SDK](https://dotnet.microsoft.com/download/dotnet/9.0) + [SQL Server](https://www.microsoft.com/sql-server/sql-server-downloads)\n\n```bash\n# 1. Clonar o usar template\ngit clone https://github.com/JohanCalaT/DevWorkshop-TaskAPI.git\ncd DevWorkshop-TaskAPI\n\n# 2. Configurar BD en appsettings.json\n# \"DefaultConnection\": \"Server=(localdb)\\\\mssqllocaldb;Database=TaskFlowProDB;Trusted_Connection=true\"\n\n# 3. Crear BD\ndotnet ef database update --project DevWorkshop.TaskAPI.Infrastructure --startup-project DevWorkshop.TaskAPI.Api\n\n# 4. Ejecutar\ndotnet run --project DevWorkshop.TaskAPI.Api\n\n# 5. Probar: https://localhost:7000/swagger\n```\n\n## 📚 Endpoints\n\n### **🎭 Roles ✅ IMPLEMENTADO**\n- `GET /api/roles/getAll` - Obtener todos\n- `GET /api/roles/getById/{id}` - Obtener por ID\n- `GET /api/roles/getStatistics` - Estadísticas\n- `POST /api/roles/create` - Crear (TODO)\n- `PUT /api/roles/update/{id}` - Actualizar (TODO)\n- `DELETE /api/roles/delete/{id}` - Eliminar (TODO)\n\n### **👥 Usuarios 📝 TODO**\n- `GET /api/users/getAll` - Obtener todos\n- `POST /api/users/create` - Crear usuario\n- `PUT /api/users/update/{id}` - Actualizar\n- `DELETE /api/users/delete/{id}` - Eliminar\n\n### **📋 Tareas 📝 TODO**\n- `GET /api/tasks/getAll` - Obtener todas\n- `POST /api/tasks/create` - Crear tarea\n- `PUT /api/tasks/update/{id}` - Actualizar\n- `DELETE /api/tasks/delete/{id}` - Eliminar\n\n### **🔐 Auth 📝 TODO**\n- `POST /api/auth/login` - Login\n- `POST /api/auth/register` - Registro\n\n## 🎓 Para Estudiantes\n\n1. **Estudiar** `RolesController` (ejemplo completo)\n2. **Buscar** comentarios `// TODO: ESTUDIANTE`\n3. **Implementar** siguiendo el mismo patrón\n\n### **Pasos para nuevo endpoint:**\n1. DTOs en `Application/DTOs/`\n2. Interfaz en `Application/Interfaces/`\n3. Servicio en `Application/Services/`\n4. Controlador en `Api/Controllers/`\n5. Registrar en `Program.cs`\n\n## 🚨 Problemas Comunes\n\n```bash\n# Error de BD\ndotnet ef database drop --force\ndotnet ef database update\n\n# Error de migraciones\ndotnet ef migrations remove --force\ndotnet ef migrations add InitialCreate\ndotnet ef database update\n```\n\n## 📚 Recursos\n\n- [Clean Architecture](https://blog.cleancoder.com/uncle-bob/2012/08/13/the-clean-architecture.html)\n- [Entity Framework Core](https://docs.microsoft.com/en-us/ef/core/)\n- [Repository Pattern](https://docs.microsoft.com/en-us/dotnet/architecture/microservices/microservice-ddd-cqrs-patterns/infrastructure-persistence-layer-design)\n\n---\n\n**¿Necesitas ayuda?** Abre un [issue](https://github.com/JohanCalaT/DevWorkshop-TaskAPI/issues)\n\n**¿Te gusta el proyecto?** ¡Dale una ⭐!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjohancalat%2Fdevworkshop-taskapi","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjohancalat%2Fdevworkshop-taskapi","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjohancalat%2Fdevworkshop-taskapi/lists"}