Este projeto é uma aplicação full stack que permite consultar o valor do frete a partir de um CEP informado. Desenvolvido como parte de um desafio técnico, ele demonstra habilidades em desenvolvimento backend com Node.js e Express, além de frontend com React e TypeScript.
- Consulta de Frete: O usuário informa um CEP e recebe o valor do frete correspondente.
- Validação de CEP: O sistema valida o formato do CEP antes de processar a consulta.
- Interface Intuitiva: Frontend com campo de entrada estilizado em formato OTP para melhor usabilidade.
- Node.js: Ambiente de execução JavaScript no servidor.
- Express.js: Framework para construção de APIs RESTful.
- Axios: Cliente HTTP para comunicação com APIs externas.
- React 18 (Next.js): Biblioteca para construção de interfaces de usuário.
- TypeScript: Superset do JavaScript que adiciona tipagem estática.
- React Hook Form: Gerenciamento de formulários no React.
- Zod: Validação de esquemas de dados.
- Axios: Cliente HTTP para requisições ao backend.
- Tailwind CSS: Framework de estilos utilitários.
- Shadcn/ui: Componentes de interface reutilizáveis.
- Sonner: Biblioteca para notificações.
backend/
: Contém a API Express que consome a API do melhor envio que possibilita alterar a regra de cobrança do frete.frontend/
: Aplicação Next.js que fornece a interface para o usuário.src/pages/index.tsx
: Página principal com o formulário de consulta de frete.src/components/ui/
: Componentes reutilizáveis de interface.src/lib/
: Funções auxiliares e definições de tipos.
- Node.js instalado na máquina.
- Gerenciador de pacotes npm ou yarn.
-
Clone o repositório:
git clone https://github.com/viniblack/api-express.git
-
Instale as dependências do backend:
cd api-express/backend npm install
-
Inicie o servidor backend:
npm run start
-
Em outro terminal, instale as dependências do frontend:
cd ../frontend npm install
-
Inicie o servidor frontend:
npm run dev
-
Acesse a aplicação no navegador:
http://localhost:3000
O desafio envolvia construir uma solução robusta e escalável para cálculo de frete com base em dois CEPs. Optei por separar a aplicação em frontend e backend, garantindo manutenibilidade, e utilizei ferramentas modernas como TypeScript, validação com Zod e estilização com Tailwind CSS para uma boa experiência do usuário.
Caso tenha interesse em discutir mais sobre este projeto ou oportunidades na área de desenvolvimento, estou à disposição!
- Email: [email protected]
- LinkedIn: linkedin.com/in/viniblack
Este projeto demonstra minha capacidade de resolver desafios reais com boas práticas, organização de código e foco na experiência do usuário. Ideal para contextos que exigem soluções escaláveis e bem estruturadas.