Este projeto é um sistema de gerenciamento de tarefas com autenticação via Firebase. Ele permite que usuários se cadastrem, façam login e gerenciem suas tarefas de forma visual e interativa.
- ASP.NET Core Web API
- Entity Framework Core
- SQL Server (pode ser local ou remoto)
- Firebase Admin SDK (autenticação)
- Angular Standalone Components
- Angular Forms + HttpClient
- Firebase REST API para login
git clone https://github.com/seu-usuario/task-app.git
cd task-app- .NET 9 SDK
- SQL Server (ou Azure SQL, LocalDB etc.)
- Firebase Admin SDK + chave JSON (arquivo
firebase-key.json)
- No
appsettings.json, configure suaDefaultConnectionpara apontar para o seu banco SQL:
"ConnectionStrings": {
"DefaultConnection": "Server=localhost;Database=TaskDb;Trusted_Connection=True;TrustServerCertificate=True"
}- Execute os comandos:
cd TaskAPI/TaskApi
dotnet ef database update
dotnet runO servidor estará rodando em: http://localhost:5261
- Node.js (18+)
- Angular CLI
cd TaskAngular/TaskAngular
npm install
npm startA aplicação Angular estará em: http://localhost:4200
-
Vá até o Firebase Console
-
Crie um novo projeto
-
Ative o provedor de autenticação por E-mail e Senha
-
Crie uma chave de serviço (JSON) em:
Configurações do projeto > Contas de serviço > Gerar nova chave privada -
Coloque esse JSON no backend e renomeie para:
firebase-key.json
- Registro de usuários (com Firebase Auth)
- Login e proteção de rotas (com Firebase token)
- Criar, editar, excluir e listar tarefas por usuário
- Atualização rápida de status
- Interface responsiva com componentes standalone
- A aplicação é modular e separada por pastas de pages e componentes
- O
NavbarComponentexibe o nome do usuário logado e botão de logout - O
AuthGuardprotege a página de tarefas caso o usuário não esteja logado
- Acesse
/registerno frontend - Preencha nome, email e senha válidos
- Após login, clique em "Criar Nova Tarefa"
- Preencha os campos e salve
- Use os botões diretamente nas tarefas
Abaixo estão os diagramas UML que representam a estrutura e os fluxos do projeto:


