Uma API moderna para autenticação e gerenciamento de usuários, construída com FastAPI seguindo os princípios de Layered Architecture e Repository Pattern.
O projeto segue uma arquitetura em camadas bem definida:
api_certify/
├── core/ # Lógica de negócio central
├── models/ # Modelos de dados e entidades
├── schemas/ # Esquemas Pydantic para validação
├── repositories/ # Camada de acesso a dados (Repository Pattern)
├── service/ # Camada de serviços
├── routes/ # Endpoints da API
├── dependencies.py # Injeção de dependências
├── exceptions/ # Tratamento de exceções
├── infra/ # Configurações de infraestrutura
└── main.py # Ponto de entrada da aplicação
- FastAPI 0.104.1 - Framework web moderno
- Python 3.9+ - Linguagem de programação
- MongoDB - Banco de dados (via Motor/PyMongo)
- Poetry - Gerenciamento de dependências
- Pydantic 2.12.2 - Validação de dados
- bcrypt 4.1.2 - Criptografia de senhas
- Ruff - Linting e formatação
- Pytest - Framework de testes
- Python 3.9+
- Poetry
- MongoDB
- Clone o repositório
git clone <repository-url>
cd api-certify- Instale as dependências
poetry install- Configure as variáveis de ambiente
cp .env.example .envVariáveis necessárias:
DB_URL=mongodb+srv://project_name:<password>@cluster0.salfi3n.mongodb.net/?appName=Cluster0
DB_NAME=CERTIFY
- Execute a aplicação
poetry run task runpoetry run task run # Inicia servidor de desenvolvimento
poetry run task lint # Executa linting
poetry run task format # Formata código
poetry run task pre_format # Correções automáticas do lintpoetry run task test # Executa testes com coverage
poetry run task pre_test # Roda lint antes dos testesO projeto inclui uma suíte de testes completa:
# Executar todos os testes
pytest
# Com coverage report
pytest --cov=api_certify
# Testes específicos
pytest tests/ -vSiga o padrão de commits semânticos:
feat:Nova funcionalidadefix:Correção de bugdocs:Documentaçãostyle:Formataçãorefactor:Refatoraçãotest:Testes
feat/nome-da-featurefix/descricao-do-bugchore/ajuste-menor
- Autenticação de usuários
- Criptografia de senhas com bcrypt
- Validação de dados com Pydantic v2
- Repository Pattern para acesso a dados
- Injeção de dependências
- Tratamento centralizado de exceções
- Documentação automática da API (Swagger/OpenAPI)
Após iniciar o servidor, acesse:
- Swagger UI: http://localhost:8000/docs
- Redoc: http://localhost:8000/redoc
Consulte o CONTRIBUTING.md para diretrizes detalhadas de contribuição.
Este projeto está sob a licença MIT.
Desenvolvido por Comunidade Frontend Fusion