Uma API desenvolvida em .NET CORE 6 que fornece ferramentas para que seja feito o rastremento de horas de cada tarefa realizada por um colaborador em um projeto cadastrado.
4. Rotas
4. Testes
-
Usuarios
-
Colaboradores: Cadastro, confirmação de email e Equesci minha senha;
-
Admin: Cadastro com poderes de admin,criar projetos e realizar o vínculo de colaboradores com o projeto;
-
-
Lançamento de Horas
-
Lançamento de horas com o ínico e fim da tarefa, projeto ao qual aquela tarefa deverá ser atribuída e descrição da tarefa;
-
O sistema permite a edição do lançamento de horas e até mesmo do projeto ao qual aquela tarefa foi atribuída. O limite de tempo para alteração é de 48h;
-
O histórico de edições do sistema é salvo em uma tabela de log no banco de dados;
-
As informações de lançamento de tarefas poderão ser acessadas por filtros de esta semana, este mês e mês passado;
-
As informações de lançamento poderão ser acessadas por filtros de projeto;
-
-
Administrador
-
Permissão para criar projetos e vincular colaboradores a eles;
-
Informações cadastradas pelos colaboradores poderão ser visiveis, editadas e excluíveis pelo admin;
-
Acesso ao relatório de tarefas por colaborador e por projeto
-
-
Colaborador
-
Lançar horas;
-
Ver, editar e excluir horas lançadas por ele;
-
-
Relacionamento Usuario : Projeto
Um usuário(Colaborador) pode pertencer a vários projetos e um projeto pode ter vários usuários
-
Relacionamento Projeto : Cliente
Um projeto pertence a um cliente, mas um cliente pode ter vários projetos
-
Relacionamento Lançamento de Horas : Projeto
Um lançamento de horas pertence a um projeto, mas um projeto pode ter vários lançamentos
# Clone este repositório
$ git clone https://gitlab.com/Lili200Cardoso/horas_raras.git
# Acesse a pasta do projeto no terminal/cmd
$ cd horas_raras
# Vá para a pasta da API
$ cd HorasRaras.Api
# Execute a aplicação em modo de desenvolvimento
$ dotnet run
# O servidor inciará na porta:7233 - acesse http://localhost:7233/swagger
- Para utilizar a aplicação com permissões de admin é necessário fazer o login com as informações abaixo
{
"senha": "1234Horas*",
"email": "horas.raro@gmail.com"
}
Endpoint para manipular ou mostrar informações relacionada à conta
-
Criar conta :
POST /conta/cadastro/
-
Confirmar email :
PATCH /conta/email/:hash/
-
Autenticar(login) :
POST /conta/login/
-
Enviar hash para alterar senha :
PUT /conta/hash-senha/
-
Alterar senha :
PUT /conta/senha/:hash/
-
Criar Projeto :
POST /projeto/
-
Obter Projetos :
GET /projeto/
-
Obter Projeto :
GET /projeto/:id/
-
Obter Horas :
GET /projeto/hora/:id/
-
Vincular Usuario :
PATCH /projeto/usuario/
-
Deletar Projeto :
DELETE /projeto/:id/
-
Alterar projeto :
PUT /conta/senha/:id/
-
Criar Tarefa :
POST /tarefa/
-
Obter Tarefas :
GET /tarefa/
-
Obter Tarefas semana :
GET /tarefa/semana/
-
Obter Tarefas mês :
GET /tarefa/mes/
-
Obter Tarefas dia :
GET /tarefa/dia/
-
Obter Tarefas Projeto :
GET /tarefa/projeto/:id/
-
Obter Tarefa :
GET /tarefa/:id/
-
Atualiza HoraFinal :
PATCH /tarefa/hora-final/:id/
-
Deletar Tarefa :
DELETE /tarefa/:id/
-
Alterar Tarefa :
PUT /conta/senha/:id/
-
Obter Usuários :
GET /projeto/
-
Criar Admin :
POST /conta/cadastro/
-
Obter Usuario :
GET /projeto/:id/
-
Deletar Usuario :
DELETE /projeto/:id/
-
Alterar usuario :
PUT /conta/senha/:id/
-
Criar Cliente :
POST /tarefa/
-
Obter Clientes :
GET /projeto/
-
Obter Cliente :
GET /projeto/:id/
-
Deletar Cliente :
DELETE /projeto/:id/
-
Alterar Cliente :
PUT /conta/senha/:id/
- Integrar dados do Toggl :
POST /toggl/integracao
Foi utilizado um banco de dados relacional para armazenar as informações do sistema e o Sql Server como SGBD(Sistema de gerenciamento de banco de dados);
Como ORM(Mapeamento objeto relacional) foi utilizado o Entity Framework, pois fornece suporte a consultas LINQ, controle de alterações, atualizações e migrações de esquema.
O sistema conta com uma ampla cobertura de testes unitáiros. A ferramenta utilizada para os testes é o xUnit, gratuita e de código aberto para o .Net Core
- Coverege
- Line Coverage 81.4%
- Branch Coverage 64.7%
Pedro Henrique 👨🚀 |
Lili 👨🚀 |
Luigi 👨🚀 |