Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

TechStore

E-commerce full-stack de produtos de tecnologia. Loja dark, moderna e rápida.

  • Frontend: Next.js 14 (App Router) + Tailwind CSS + Zustand + React Query + framer-motion
  • Backend: Node.js + Fastify + Knex + JWT (access + refresh com rotação)
  • Banco: PostgreSQL 16
  • Infra: Docker Compose (um comando sobe tudo)

Subir com um comando

docker compose up --build

Serviços disponíveis após subir:

Serviço URL Descrição
Frontend http://localhost:3000 Loja
Backend http://localhost:4000 API (health em /api/health)
Postgres localhost:5432 Banco de dados
Mailpit UI http://localhost:8025 Caixa de entrada do e-mail mockado

Na primeira inicialização, migrations e seed rodam automaticamente.

Acessos de demonstração

Papel E-mail Senha
Admin admin@techstore.com Admin@123
Cliente cliente@techstore.com Cliente@123

Formas de pagamento (mock):

  • Cartão de crédito: número terminado em 1000 a 1999aprovado. Qualquer outro final válido → recusado.
  • PIX: gera um QR code com expiração de 15 minutos; a confirmação é simulada via endpoint de simulação.

Rodar os testes

docker compose exec backend npm test

Estrutura

.
├── docker-compose.yml
├── .env.example
├── backend/        # API Fastify + Knex
│   ├── src/
│   │   ├── modules/    # auth, products, orders, payments, admin, email, cep
│   │   ├── middleware/ # auth (JWT), requireRole, rateLimit
│   │   ├── schemas/    # validação Zod (frontend e backend)
│   │   └── plugins/    # knex, errors, swagger
│   ├── migrations/
│   └── seeds/
└── frontend/       # Next.js App Router
    └── src/
        └── app/   # (store) e (admin)

Variáveis de ambiente

Veja .env.example. Em produção, troque todos os segredos.

Scripts úteis

# Logs
docker compose logs -f backend frontend

# Recriar o banco do zero
docker compose down -v && docker compose up --build

Decisões de arquitetura

Decisões importantes documentadas inline no código e na seção "Resumo" entregue ao final. Pontos-chave: cookies httpOnly+SameSite em vez de localStorage; rotação de refresh tokens com detecção de reuso; rate limiting em login/checkout; validação Zod compartilhada; erros normalizados com handler centralizado; autorização por papel em todas as rotas protegidas.

About

E-commerce full-stack de produtos de tecnologia. Loja dark, moderna e rápida.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages