Front end projeto ponto eletronico
Go to file
2025-05-07 13:11:58 -03:00
docs tabelas de settings inseridas 2025-05-07 13:11:58 -03:00
models tabelas de settings inseridas 2025-05-07 13:11:58 -03:00
routes tabelas de settings inseridas 2025-05-07 13:11:58 -03:00
seeds tabelas de settings inseridas 2025-05-07 13:11:58 -03:00
Tests versao atualizada api 2025-03-17 15:00:51 -03:00
.dockerignore versao atualizada api 2025-03-17 15:00:51 -03:00
.env.example versao atualizada api 2025-03-17 15:00:51 -03:00
.gitignore versao atualizada api 2025-03-17 15:00:51 -03:00
app.py tabelas de settings inseridas 2025-05-07 13:11:58 -03:00
docker-compose.yml versao atualizada api 2025-03-17 15:00:51 -03:00
Dockerfile versao atualizada api 2025-03-17 15:00:51 -03:00
extensions.py versao atualizada api 2025-03-17 15:00:51 -03:00
README.md versao atualizada api 2025-03-17 15:00:51 -03:00
requirements.txt versao atualizada api 2025-03-17 15:00:51 -03:00
TODO.txt versao atualizada api 2025-03-17 15:00:51 -03:00
utils.py ultima versao api 2025-04-16 19:48:09 -03:00
wait-for-it.sh versao atualizada api 2025-03-17 15:00:51 -03:00

API de Usuários e Grupos

Esta é uma API simples construída com Flask, SQLAlchemy e JWT para autenticação. Ela permite a criação de usuários, grupos, e a gestão desses dados.

Tecnologias

  • Flask: Framework web em Python.
  • SQLAlchemy: ORM para interação com o banco de dados.
  • JWT: Autenticação baseada em tokens JWT.
  • SQLite: Banco de dados leve e simples para desenvolvimento.

Instalação


Pré-requisitos

  • Python 3.12 ou superior
  • Pip (gerenciador de pacotes Python)

Passos para instalar

  1. Clone o repositório:

    git clone <URL_DO_REPOSITORIO>
    cd <nome_do_repositorio>
    
  2. Crie um ambiente virtual (opcional, mas recomendado):

    python3 -m venv venv
    source venv/bin/activate  # No Windows use venv\Scripts\activate
    
  3. Instale as dependências:

    pip install -r requirements.txt
    
  4. Configure o banco de dados:

    • O banco de dados será criado automaticamente quando você rodar as migrações, mas você pode definir a URI do banco no arquivo config.py.

Execução da Aplicação

Rodando Manualmente (sem Docker)

  1. Rodar a aplicação localmente:

    Para rodar a aplicação manualmente, você pode usar o comando abaixo:

    python app.py
    

    A API estará disponível em http://127.0.0.1:5000/.

  2. Executar as migrações e seed:

    Se você precisar rodar as migrações e seed de banco de dados, siga os passos abaixo antes de rodar a aplicação:

    • Inicializar o banco de dados (se necessário):

      flask db init
      
    • Gerar as migrações:

      flask db migrate -m "Descrição da migração"
      
    • Aplicar as migrações:

      flask db upgrade
      
    • Rodar o seed de dados:

      python seed.py
      

Rodando com Docker

Se você preferir rodar a aplicação em um container Docker, siga os passos abaixo.

  1. Construir a imagem Docker:

    Se ainda não construiu a imagem, execute o seguinte comando para construir a imagem Docker a partir do Dockerfile:

    docker build -t flask-app .
    
  2. Rodar a aplicação com Docker Compose:

    Se você tiver o arquivo docker-compose.yml configurado corretamente, basta executar o comando abaixo para iniciar a aplicação com o Docker Compose:

    docker-compose up
    

    Isso irá iniciar a aplicação no container e a API estará disponível em http://127.0.0.1:5000/.

Migrações e Seed

Migrações com Flask-Migrate

  1. Iniciar o repositório de migrações:

    Se for a primeira vez que você está configurando as migrações no projeto, execute:

    flask db init
    
  2. Gerar migração:

    Sempre que você modificar o modelo do banco de dados (como adicionar uma nova tabela ou coluna), execute:

    flask db migrate -m "Descrição da migração"
    
  3. Aplicar migrações:

    Para aplicar as migrações e atualizar o banco de dados:

    flask db upgrade
    

Seed de Banco de Dados

Para popular o banco de dados com dados iniciais, execute o seguinte comando:

python -m app.seeds.run_seeds

Isso vai inserir dados padrão no banco de dados, como um usuário administrador, se o script seed.py estiver configurado corretamente.

Endpoints

Criar Usuário

  • Método: POST
  • URL: /users/
  • Autenticação: Bearer Token (JWT)
  • Requisição:
{
  "username": "novo_usuario",
  "password": "senha_segura",
  "group_id": 1
}
  • Respostas:
    • 201: Usuário criado com sucesso.
    • 400: Usuário já existe.
    • 404: Grupo não encontrado.
    • 422: Dados ausentes ou inválidos.

Listar Usuários

  • Método: GET
  • URL: /users/
  • Autenticação: Bearer Token (JWT)
  • Respostas:
    • 200: Lista de usuários.

Criar Grupo

  • Método: POST
  • URL: /groups/
  • Autenticação: Bearer Token (JWT)
  • Requisição:
{
  "name": "admin"
}
  • Respostas:
    • 201: Grupo criado com sucesso.
    • 400: Nome de grupo já existe.
    • 422: Dados inválidos.

Contribuindo

  1. Faça um fork deste repositório.
  2. Crie uma branch com suas mudanças: git checkout -b minha-nova-feature.
  3. Faça commit das suas mudanças: git commit -am 'Adicionando nova feature'.
  4. Envie para o repositório remoto: git push origin minha-nova-feature.
  5. Abra um pull request.

Licença

Este projeto está licenciado sob a MIT License.