Skip to content

guilherme-beltran/DesafioTecnico-ListaDeTarefas

Repository files navigation

Desafio técnico - Lista de tarefas

Repositório com arquivo do desafio técnico feito com intuito de aplicar conhecimentos em Web Api .Net.

Objetivo do desafio

Construir um sistema de gerenciamento de tarefas simples com autenticação e autorização.

Descrição

  • O sistema deve permitir que os usuários criem, atualizem e finalizem tarefas;
  • As tarefas devem ter título, descrição, data de entrega e status (Em andamento ou finalizada);

Requisitos

  • A linguagem deve ser C#, preferencialmente utilizando WEB API ou Razor;
  • Utilizar banco de dados SQL (SQL Server ou SQLite);
  • Implementar operações de CRUD para tarefas;
  • Possuir uma página com relatório de tarefas conclúidas e em andamento por usuário;
  • Implementar ativação de conta em 2 fatores, enviando um e-mail com código de ativação da conta do usuário e validando o código para ativa-la;
  • Implementar um sistema de autenticação simples, onde os usuários devem realizar o login para acessar ao sistema. Pode ser utilizado autenticação baseada em formulário ou autenticação de token

O que foi utilizado nesse projeto?

  • ASP.NET Core Web API;
  • SQL Server;
  • DDD;
  • CQRS;
  • Entity Framework;
  • Migrations;
  • Repository Pattern;
  • Testes de unidade;
  • Serviço de Email (SMTP);
  • Users Secrets;
  • Criptografia utilizando BCrypt;
  • Unit Of Work;
  • Jwt e Bearer Authentication;
  • Design By Contract
  • Flunt
  • Validações rápidas com Fail Fast Validations
  • SOLID;
  • Injeção de dependência;
  • KanBan para gerenciamento do projeto.

Avaliação

  • Funcionalidade completa do sistema;
  • Boas práticas de programação, organização do código, separação de responsabilidades e tratamento de erros;
  • Utilização adequada do banco de dados para armazenar as tarefas;
  • Validações para garantir integridade dos dados

Como rodar na minha máquina?

  1. Rodar um migration para criar a base

  2. Criar pelo banco de dados chamado "Administrador" e outro chamado "Padrão", utilizando os comandos

    INSERT INTO Perfil (Nome) values ('Administrador');

    INSERT INTO Perfil (Nome) values ('Padrão');

  3. Testar a api

Sugestões

  • Estou aberto a receber avaliações e sugestões para melhoria do código. A intenção inicial é aplicar conhecimentos adquiridos ao longo da carreira afim de evoluir a experiência em diversos cenários.
  • Também estou aberto a novos desafios, caso você possua algum desafio técnico, por favor entre em contato comigo através do meu e-mail: gtmbeltran@gmail.com

About

Repositório com arquivo do desafio técnico feito com intuito de aplicar conhecimentos em Web Api .Net.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages