Geek Mania TCG
E-commerce de trading card games: catálogo com filtros combináveis, carrinho e área do cliente, servidos por uma API Django.
- 5
- TCGs no catálogo
- 45
- Produtos publicados
- 5
- Eixos de filtro combináveis
Loja online especializada em trading card games — Pokémon, One Piece, Digimon e Dragon Ball — vendendo cartas avulsas, produtos selados e acessórios. Construí a plataforma inteira: modelagem do catálogo, API, front-end e deploy.
O back-end é Django com Django REST Framework expondo endpoints para catálogo, filtros, carrinho e autenticação. O front-end é uma SPA em React que consome essa API, com o Django Admin servindo de back-office para cadastro de produtos, banners e estoque.
O catálogo é a parte crítica: cada carta tem TCG, categoria, raridade, idioma e estado de conservação, e todos esses eixos precisam ser filtráveis ao mesmo tempo sem derrubar o banco.
Decisões técnicas
Filtros combináveis sem estourar o banco
Os filtros de TCG, categoria, raridade, idioma e conservação viram query params num único endpoint. Montei o queryset dinamicamente com select_related e prefetch_related para evitar N+1, e as opções de filtro vêm de um endpoint próprio para o front nunca precisar adivinhar o que existe.
Carrinho e sessão entre SPA e Django
O carrinho vive no servidor e sobrevive ao refresh e à troca de dispositivo depois do login. A SPA busca o token CSRF antes de qualquer escrita, então a autenticação por sessão do Django funciona normalmente mesmo com o front desacoplado.
Catálogo que carrega rápido
Respostas paginadas, imagens servidas pela borda da Cloudflare e cache nos endpoints que quase não mudam (TCGs, categorias, banners). O usuário navega no catálogo sem esperar o banco a cada clique.
Próximo projeto
GeekMania — Portal de TCG