TaskCraft es una API RESTful moderna para gestión de proyectos y tareas, construida con .NET 10 y siguiendo principios de Clean Architecture.
- ✅ Autenticación JWT - Sistema seguro de autenticación y autorización
- ✅ Clean Architecture - Separación clara de responsabilidades
- ✅ FluentValidation - Validación robusta de datos con 13 validadores
- ✅ Tests Unitarios - 199 tests con 100% de cobertura en validadores
- ✅ CI/CD - Pipeline automatizado con GitHub Actions
- ✅ Code Coverage - Reportes de cobertura en cada PR
- ✅ Swagger/OpenAPI - Documentación interactiva de la API
- ✅ CORS - Configurado para integración frontend
TaskCraft/
├── TaskCraft.Core/ # Entidades, Enums, Interfaces base
├── TaskCraft.Application/ # DTOs, Servicios, Validadores
├── TaskCraft.Infrastructure/ # Repositorios, DbContext, Configuración
├── TaskCraft.API/ # Controllers, Middleware, Program.cs
└── TaskCraft.Tests/ # Tests unitarios (xUnit)
- .NET 10 SDK
- SQL Server (LocalDB, Express, o completo)
- Visual Studio 2026 o VS Code
-
Clonar el repositorio
git clone https://github.com/YOUR_USERNAME/TaskCraft.git cd TaskCraft -
Configurar la base de datos
Edita
TaskCraft.API/appsettings.jsoncon tu connection string:{ "ConnectionStrings": { "DefaultConnection": "Server=(localdb)\\mssqllocaldb;Database=TaskCraftDb;Trusted_Connection=true;" } } -
Aplicar migraciones
dotnet ef database update --project TaskCraft.Infrastructure --startup-project TaskCraft.API
-
Ejecutar la aplicación
dotnet run --project TaskCraft.API
-
Acceder a Swagger
Abre tu navegador en:
https://localhost:7000/swagger
dotnet testdotnet test --collect:"XPlat Code Coverage" --results-directory ./coveragedotnet tool install --global dotnet-reportgenerator-globaltool
reportgenerator -reports:./coverage/**/coverage.cobertura.xml -targetdir:./coverage-report -reporttypes:HtmlEl proyecto mantiene alta cobertura de código con especial énfasis en:
- ✅ 199 tests unitarios para validadores
- ✅ 100% cobertura en capa de validación
- ✅ Tests para casos edge y escenarios de error
- ✅ Reportes automáticos en cada PR
Ver TaskCraft.Tests/README.md para más detalles.
La API usa JWT Bearer tokens. Para autenticarte:
-
Registrar usuario
POST /api/auth/register Content-Type: application/json { "username": "usuario", "email": "usuario@ejemplo.com", "password": "Password123!", "firstName": "Nombre", "lastName": "Apellido" }
-
Login
POST /api/auth/login Content-Type: application/json { "username": "usuario", "password": "Password123!" }
-
Usar el token
GET /api/projects Authorization: Bearer {tu-token-aqui}
- Guía de Validación - Detalles sobre validadores y reglas
- Tests Unitarios - Estructura y ejecución de tests
- Validadores - Catálogo de validadores
El proyecto usa GitHub Actions para CI/CD:
- ✅ Build automático en cada push y PR
- ✅ Tests automáticos con reporte de resultados
- ✅ Cobertura de código con reportes visuales
- ✅ Comentarios en PRs con métricas de cobertura
- ✅ Artifacts de reportes de cobertura
Ver .github/workflows/ci.yml para la configuración completa.
- Framework: .NET 10
- ORM: Entity Framework Core
- Autenticación: JWT Bearer
- Validación: FluentValidation
- Base de datos: SQL Server
- Tests: xUnit + FluentAssertions
- Coverage: Coverlet
- API Docs: Swagger/OpenAPI
- CI/CD: GitHub Actions
Las contribuciones son bienvenidas! Por favor:
- Fork el proyecto
- Crea una rama para tu feature (
git checkout -b feature/AmazingFeature) - Commit tus cambios (
git commit -m 'Add some AmazingFeature') - Push a la rama (
git push origin feature/AmazingFeature) - Abre un Pull Request
- Todos los PRs deben pasar los tests
- Mantener cobertura de código > 80%
- Seguir convenciones de C# y .NET
- Incluir tests para nuevas funcionalidades
| Endpoint | Método | Descripción |
|---|---|---|
/api/auth/register |
POST | Registrar nuevo usuario |
/api/auth/login |
POST | Iniciar sesión |
/api/auth/refresh |
POST | Renovar token |
/api/users |
GET | Listar usuarios |
/api/projects |
GET/POST | Gestionar proyectos |
/api/projects/{id} |
GET/PUT/DELETE | Operaciones en proyecto específico |
/api/tasks |
GET/POST | Gestionar tareas |
/api/tasks/{id} |
GET/PUT/DELETE | Operaciones en tarea específica |
/api/comments |
GET/POST | Gestionar comentarios |
/api/tags |
GET/POST | Gestionar etiquetas |
Ver la documentación completa en Swagger UI.
Las siguientes características están planeadas para futuras versiones:
- 🎨 10. Email Service - Servicio de notificaciones por correo electrónico
- 🎨 11. File Upload - Sistema de carga y gestión de archivos adjuntos
- 🎨 12. SignalR for Real-time - Comunicación en tiempo real para actualizaciones instantáneas
Este proyecto está bajo la Licencia MIT. Ver el archivo LICENSE para más detalles.
- Tu Nombre - Trabajo Inicial - TuGitHub
- Comunidad de .NET
- Contribuidores de FluentValidation
- Equipo de xUnit
- GitHub Actions
⭐ Si este proyecto te resulta útil, considera darle una estrella!