Este projeto demonstra uma implementação de busca de CEP com lógica de fallback entre múltiplas APIs (AwesomeCEP e ViaCEP), garantindo maior disponibilidade do serviço.
frontend/: Aplicação React + Vite + TailwindCSS + shadcn/ui.backend/: API Node.js + Express + TypeScript com lógica de fallback e segurança.
O projeto está totalmente containerizado com Docker Compose, oferecendo ambientes de desenvolvimento e produção isolados.
Modo Desenvolvimento (Hot Reload):
docker compose --profile dev up --build- Frontend:
http://localhost:5173 - Backend:
http://localhost:3333
Modo Produção:
docker compose --profile prod up --build- Frontend:
http://localhost:8080 - Backend:
http://localhost:3333
- Node.js (v18 ou superior)
- npm ou yarn
- Entre na pasta do backend:
cd backend - Instale as dependências:
npm install
- Configure as variáveis de ambiente:
- Copie o arquivo
.env.examplepara.env - Adicione seu token da AwesomeAPI se necessário (opcional para testes locais).
- Copie o arquivo
- Inicie o servidor em modo de desenvolvimento:
O backend estará disponível em
npm run dev
http://localhost:3333.
- Entre na pasta do frontend:
cd frontend - Instale as dependências:
npm install
- Inicie a aplicação:
O frontend estará disponível em
npm run dev
http://localhost:5173.
- Helmet: Adição de headers de segurança para proteção contra ataques comuns.
- CORS: Configurado para aceitar requisições apenas da URL do frontend.
- Rate Limit: Limite de 30 requisições por minuto por IP para evitar abusos na rota de CEP.
- Validação: Middleware para validar o formato do CEP antes de processar a busca.
Criado por Miguel.