Skip to content

Registro e acompanhamento de pontos eletrônicos - Projeto desenvolvido para processo seletivo.

Notifications You must be signed in to change notification settings

carlosmfreitas2409/time-and-attendance-api

Repository files navigation

Time & Attendance

Registre e acompanhe seus pontos eletrônicos de maneira simples e fácil!

Versão 1.0

Sobre   |    Tecnologias   |    Rotas   |    Instalação   |    Requisitos e RN   |    Licença

Github Top Language Github Language Count GitHub last commit Project License


💡 Sobre

O Time & Attendance é uma aplicação em que você pode registrar e acompanhar seus pontos eletrônicos de maneira simples e fácil!

Este projeto foi um desafio desenvolvido para uma avaliação técnica.

OBS: Esta é a versão back-end do projeto.

🛠️ Tecnologias

Esse projeto foi desenvolvido usando as seguintes tecnologias:

🍃 Rotas

Após a inicialização da API, você pode navegar para o path /api-docs, em que encontrará a documentação da API com Swagger.

Exemplo: http://localhost:3333/api-docs

ℹ️ Instalação e uso

Para clonar e executar esta aplicação, você precisará do Git e Yarn. A partir de sua linha de comando:

# Clone este repositório
$ git clone https://github.com/carlosmfreitas2409/time-and-attendance-api

# Entre no repositório
$ cd time-and-attendance-api

# Instale as dependências
$ yarn

# Preencha as variáveis ambientes em .env

# Crie o serviço docker da Database
$ docker-compose up

# Gere as seeds
$ yarn seed:skills
$ yarn seed:admin

# Rode a aplicação
$ yarn dev

# A API estará ativa em http://localhost:3333
# OBS: A senha do usuário admin (seed) é "admin"

🚧 Requisitos e Regras de negócio

### Requisitos

- [x] Deve ser possível cadastrar uma nova skill
- [x] Deve ser possível listar as skills
- [x] Deve ser possível deletar uma skill
- [X] Deve ser possível cadastrar um novo colaborador
- [X] Deve ser possível atualizar novo colaborador
- [X] Deve ser possível adicionar Skills ao colaborador
- [X] Deve ser possível listar os colaboradores em ordem alfabética
- [X] Deve ser possível listar os colaboradores com o status
- [X] Deve ser possível retornar um colaborador pela matricula
- [X] Deve ser possível gravar um ponto
- [X] Deve ser possível fechar um ponto
- [X] Deve ser possível cadastrar um novo usuário
- [X] Deve ser possível se autenticar como usuário
- [x] Deve ser possível tornar um usuário administrador
- [x] Deve ser possível validar um colaborador

---

### Regras de negócio

- [x] Não deve ser possível cadastrar uma nova skill já existente
- [x] Não deve ser possível deletar uma nova skill não existente
- [X] Não deve ser possível cadastrar um novo colaborador com e-mail ou CPF já existente
- [X] Não deve ser possível retornar um colaborador não existente
- [x] Não deve ser possível cadastrar um colaborador se os dados não estiverem válidos
- [X] Não deve ser possível atualizar um colaborador com e-mail ou CPF já existente
- [X] Não deve ser possível gravar um ponto com colaborador não existente.
- [X] Não deve ser possível gravar um ponto se um já estiver em andamento.
- [X] Não deve ser possível gravar um ponto se o colaborador não estiver validado.
- [X] Não deve ser possível cadastrar um novo usuário com e-mail já existente
- [X] Não deve ser possível se autenticar se o e-mail/senha estiverem incorretos.
- [x] Não deve ser possível tornar um usuário administrador se o atual não for administrador
- [x] Não deve ser possível tornar um usuário administrador para o usuário atual
- [X] Não deve ser possível validar um colaborador se não for usuário admin

⚙️ Como contribuir

  • Faça um fork desse repositório;
  • Crie uma branch com a sua feature: git checkout -b minha-feature;
  • Faça commit das suas alterações: git commit -m 'feat: Minha nova feature';
  • Faça push para a sua branch: git push origin minha-feature;

📝 Licença

Esse projeto está sob a licença MIT. Veja o arquivo LICENSE para mais detalhes.


Feito com 💜 por Carlos Eduardo 👋 Confira meu LinkedIn

About

Registro e acompanhamento de pontos eletrônicos - Projeto desenvolvido para processo seletivo.

Resources

Stars

Watchers

Forks

Languages