Um sistema completo de gerenciamento de tarefas construído com uma arquitetura de microserviços, utilizando .NET 8 para o backend e Angular para o frontend.
- .NET 8
- Entity Framework Core
- SQLite
- JWT Authentication
- CQRS Pattern
- MediatR
- Swagger/OpenAPI
- Angular 17
- Angular Material
- RxJS
- TypeScript
- .NET SDK 8.0
- Node.js (versão 18 ou superior)
- Angular CLI
- Git
git clone https://github.com/atualise/task_manager_csharp_angular.git
cd task-management
cd backend/UserService
dotnet restore
dotnet run
O serviço estará disponível em: http://localhost:5022
cd backend/TaskService
dotnet restore
dotnet run
O serviço estará disponível em: http://localhost:5023
cd frontend
npm install
ng serve
A aplicação estará disponível em: http://localhost:4200
- POST /user/register - Registra um novo usuário
- POST /user/login - Realiza login e retorna token JWT
- GET /task - Lista todas as tarefas
- POST /task - Cria uma nova tarefa
- PUT /task/{id} - Atualiza uma tarefa
- DELETE /task/{id} - Remove uma tarefa
- GET /task/export - Exporta tarefas para Excel
O sistema utiliza autenticação JWT. Para acessar endpoints protegidos:
- Faça login para obter o token
- Inclua o token no header das requisições:
Authorization: Bearer {seu-token}
├── backend/
│ ├── UserService/ # Microserviço de autenticação
│ └── TaskService/ # Microserviço de tarefas
├── frontend/
│ └── app/ # Aplicação Angular
└── README.md
- Configure o arquivo appsettings.json em cada serviço:
{
"ConnectionStrings": {
"Default": "Data Source=app.db"
},
"Jwt": {
"Key": "sua-chave-secreta-aqui"
}
}
- Configure o ambiente Angular:
cd frontend
cp environment.example.ts environment.ts
# Backend
cd backend/TaskService
dotnet test
# Frontend
cd frontend
ng test
- UserService Swagger UI: http://localhost:5022
- TaskService Swagger UI: http://localhost:5023
- Autenticação completa de usuários
- CRUD de tarefas
- Filtros por status e prioridade
- Exportação para Excel
- Interface responsiva
- Proteção de rotas
- Documentação OpenAPI/Swagger
Este projeto está sob a licença MIT. Veja o arquivo LICENSE para mais detalhes.