academy_logo Horas Raras

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.

🔍 Índice

1. Sobre a Ferramenta

  1. Funcionalidades
  2. Regras de acesso

2. Modelo Lógico

3. Como rodar a aplicação

4. Rotas

  1. Rota Conta
  2. Rota Projeto
  3. Rota Tarefa
  4. Rota Cliente
  5. Rota Integração

4. Banco de dados

4. Testes

5. Informações Git Flow

6. Colaboradores

💻 Sobre a Ferramenta

Funcionalidades

  • 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;

Regras de acesso

  • 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;

🔍 Modelo Lógico

  • 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



academy_logo

🎲 Como rodar a aplicação

# 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"
}

🚘 Rotas

Rota Conta

Endpoint para manipular ou mostrar informações relacionada à conta

Rota Projeto

Rota Tarefa

Rota Usuário

Rota Cliente

Rota Integração Toggl

💾 Banco de dados

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.

✅ Testes Unitários

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%

🌊 Informações Git flow

  • Issues : Issues do Projeto GitLab
  • PRs : PRs do Projeto GitLab

🚀 Colaboradores


Pedro Henrique

👨‍🚀

Lili

👨‍🚀

Luigi

👨‍🚀