alyssonbarrera / enterprise-management-api

Enterprise Management API

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

API

Enterprise Management API

Department

Requisitos Funcionais

  • Deve ser possível cadastrar um departamento;
  • Deve ser possível consultar informações de um departamento;
  • Deve ser possível consultar todos os departamentos;
  • Deve ser possível atualizar um departamento;
  • Deve ser possível deletar um departamento.

Regras de Negócio

  • Não deve ser possível cadastrar um departamento com nome duplicado;
  • Não deve ser possível deletar um departamento se houver projeto ativo;
  • Não deve ser possível deletar um departamento se houver funcionários ativos.

Employee

Requisitos Funcionais

  • Deve ser possível cadastrar um funcionário;
  • Deve ser possível consultar informações de um funcionário;
  • Deve ser possível consultar todos os funcionários;
  • Deve ser possível atualizar um funcionário;
  • Deve ser possível deletar um funcionário.

Regras de Negócio

  • Não deve ser possível cadastrar um funcionário caso já exista um funcionário com mesmo nome, cpf ou rg;
  • Não deve ser possível um funcionário supervisionar ou trabalhar em um projeto que exceda sua carga horária.

Project

Requisitos Funcionais

  • Deve ser possível cadastrar um projeto;
  • Deve ser possível consultar um projeto;
  • Deve ser possível consultar todos os projetos;
  • Deve ser possível atualizar um projeto;
  • Deve ser possível deletar um projeto;
  • Deve ser possível substituir todos os funcionários do projeto;
  • Deve ser possível adicionar funcionários a um projeto;
  • Deve ser possível remover funcionários de um projeto;
  • Deve ser possível obter as estatísticas do projeto;
  • Deve ser possível marcar um projeto como concluído.

Regras de Negócio

  • A quantidade de horas necessárias para a conclusão do projeto deve ser calculada com base na quantidade de horas concluídas pelos funcionários e no número de horas restantes;
  • A quantidade de horas realizadas no projeto deve ser baseada na quantidade de horas trabalhadas pelos funcionários e no número de semanas passadas desde o último cálculo;
  • Não deve ser possível adicionar um funcionário ou supervisor em um projeto caso eles não tenham horas disponíveis;
  • Os funcionários devem ser desassociados do projeto ao marcá-lo como concluído.

Requisitos Não-funcionais

  • Os dados da aplicação precisam estar persistidos em um banco MySQL;
  • Todas as listas de dados precisam estar paginadas com 20 itens por página;
  • A API deve conter testes automatizados;
  • A API deve conter documentação.

Documentação: https://documenter.getpostman.com/view/20700565/2s93Xx1jaa


💻 Para rodar em sua máquina, siga os passos abaixo:


📄 Clone o projeto em sua máquina;

🔐 Tendo feito isso, entre na pasta do projeto e crie o arquivo .env;

📄 Uma vez criado, ele deverá conter:

DATABASE_NAME=database
DATABASE_USER=docker
DATABASE_PASSWORD=docker
DATABASE_HOST=db_api_enterprise_management
DATABASE_PORT=3306

📂 Em seguinda, abra o terminal na pasta do projeto e rode o seguinte comando:

docker compose up

⏳ Aguarde até que os containers estejam em execução;

📡 Com os containers prontos, você poderá acessar o servidor usando:

http://localhost:8000

🧪 Caso queira executar os testes, use:

python manage.py test

Techs

About

Enterprise Management API


Languages

Language:Python 99.3%Language:HTML 0.6%Language:Dockerfile 0.1%