Ponto_Eletronico_API

API de Ponto Eletrônico

Esta é uma API RESTful para registro e consulta de pontos eletrônicos de funcionários. Desenvolvida com Flask e Flask-RESTX, a API oferece funcionalidades para registrar pontos de entrada e saída, consultar pontos de um usuário específico, atualizar e excluir registros de ponto, além de fornecer documentação interativa usando o Swagger.

Índice


Visão Geral

Esta API permite que os administradores registrem, consultem, atualizem e excluam pontos eletrônicos de usuários, com base em suas informações (nome, e-mail, departamento, cargo, etc.). A API também oferece documentação automática utilizando o Swagger, facilitando o entendimento e o uso dos endpoints.


Tecnologias Utilizadas


Instalação

Requisitos

  1. Python 3.x - Certifique-se de ter o Python 3.x instalado em sua máquina.
  2. Dependências - As dependências podem ser instaladas utilizando o pip.

Passos para instalação:

  1. Clone o repositório:
     git clone https://github.com/seu-usuario/ponto-eletronico-api.git
     cd ponto-eletronico-api
    
  2. Crie um ambiente virtual (opcional, mas recomendado):
     python -m venv venv
     source venv/bin/activate  # Para Windows, use: venv\Scripts\activate
    
  3. Instale as dependências:
     pip install -r requirements.txt
    
  4. Crie o banco de dados e as tabelas: O banco de dados será criado automaticamente na primeira execução da aplicação.

Uso da API

Iniciar o Servidor

Para iniciar o servidor, execute o seguinte comando:

python pontoEletronico.py

O servidor estará disponível em http://localhost:5000/.

Acessar a Documentação Swagger

A documentação da API pode ser acessada através do Swagger na seguinte URL:

http://localhost:5000/

Endpoints

Aqui estão os principais endpoints da API:

1. Registrar Ponto

Corpo da Requisição (JSON):

{
  "nome": "João Silva",
  "email": "joao.silva@email.com",
  "departamento": "TI",
  "cargo": "Desenvolvedor",
  "id": "12345",
  "tipo": "entrada"
}

Resposta:


2. Consultar Todos os Pontos

Resposta:

{
  "pontos": [
    {
      "usuario": {
        "nome": "João Silva",
        "email": "joao.silva@email.com",
        "departamento": "TI",
        "cargo": "Desenvolvedor",
        "id": "12345"
      },
      "tipo": "entrada",
      "hora": "09-03-2025 08:00:00"
    }
  ]
}

3. Consultar Pontos de um Usuário Específico

Parâmetro de Caminho:

Resposta:

{
  "pontos": [
    {
      "usuario": {
        "nome": "João Silva",
        "email": "joao.silva@email.com",
        "departamento": "TI",
        "cargo": "Desenvolvedor",
        "id": "12345"
      },
      "tipo": "entrada",
      "hora": "09-03-2025 08:00:00"
    }
  ]
}

4. Atualizar um Ponto

Parâmetro de Caminho:

Corpo da Requisição (JSON):

{
  "nome": "João Silva",
  "email": "joao.silva@email.com",
  "departamento": "TI",
  "cargo": "Desenvolvedor",
  "id": "12345",
  "tipo": "saida"
}

Resposta:


5. Deletar um Ponto

Parâmetro de Caminho:

Resposta:


Exemplos de Requisição e Resposta

Exemplo de Requisição para Registrar Ponto

curl -X POST "http://localhost:5000/PontoEletronico/registrar_ponto" -H "Content-Type: application/json" -d '{
  "nome": "João Silva",
  "email": "joao.silva@email.com",
  "departamento": "TI",
  "cargo": "Desenvolvedor",
  "id": "12345",
  "tipo": "entrada"
}'

Exemplo de Resposta:

{
  "mensagem": "Ponto de entrada registrado com sucesso!"
}


Licença

Este projeto está licenciado sob a licença MIT - veja o arquivo LICENSE para mais detalhes.