Skip to content

Ayrton-Machado/auction-platform-api

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

35 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Auction Platform API

Tests Python Django Postgres JWT

API REST para plataforma de leilões online desenvolvida com TDD, seguindo Clean Architecture e aplicando princípios SOLID.

Arquitetura em camadas seguindo SRP com 95%+ de cobertura em 85+ testes, utilizando método ZOMBIES.


🔗 Principais Endpoints

Método Endpoint Descrição
POST /api/auth/register Registrar usuário
POST /api/auth/login Autenticar
POST /api/create_listing/ Criar leilão
POST /api/listing/:id/bid Fazer lance
POST /api/listing/:id/close Fechar leilão (dono)
GET /api/auctions/ Listar leilões ativos
GET /api/watchlist/ Ver favoritos

📖 Documentação completa: http://127.0.0.1:8000/api/docs


💻 Pré-requisitos


🚀 Instalação

1. Clone o repositório

git clone https://github.com/Ayrton-Machado/auction-platform-api
cd auction-platform-api

2. Configure o ambiente virtual

Instale o virtualenv (se necessário)

pip install virtualenv

Crie e ative o ambiente virtual

Linux/MacOS:

python -m venv venv
source venv/bin/activate

Windows:

python -m venv venv
venv\Scripts\activate

💡 Dica: Você verá (venv) no início da linha de comando quando o ambiente estiver ativo.

3. Instale as dependências

pip install -r requirements.txt

4. Configure o banco de dados

python manage.py makemigrations
python manage.py migrate

5. (Opcional) Crie um superusuário

python manage.py createsuperuser

💻 Usando

Inicie o servidor

python manage.py runserver

Executes os testes

pytest

Verificar coverage

1. Gerar .coverage

pytest --cov=auctions --cov-report=html --cov-report=term-missing

2. Verificar retorno coverage

coverage report

Servidor disponível em: http://127.0.0.1:8000/


🔐 Acessos Importantes


📝 Desativar ambiente virtual

deactivate

📊 Progresso do Projeto

✅ Concluído

  • API REST com Django REST Framework
  • Sistema de autenticação e registro
  • CRUD completo de leilões
  • Sistema de lances com validação
  • Watchlist e comentários
  • Testes unitários com pytest
  • Documentação com drf-spectacular

🚧 Em Desenvolvimento

Funcionalidades Core:

  • Autenticação JWT (substituir sessions)
  • Postgres (substituir SQLite3)
  • Sistema de notificações em tempo real (WebSockets)
  • Sistema de lances em tempo real (WebSockets)
  • Paginação e filtros avançados
  • Upload de múltiplas imagens

Infraestrutura:

  • Dockerização completa (Docker Compose)
  • CI/CD com GitHub Actions
    • Testes automáticos em PRs
  • Monitoramento com Prometheus + Grafana

Funcionalidades Futuras:

  • Implementação de IA + Dados
  • Incrementar Cripto como Pagamento

📄 Licença

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


About

Api de leilão onine com criação de listings, sistema de lances, comentários e watchlist

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Contributors

Languages