| 📋 Sobre | 🚀 Setup | 📦 Tecnologias | 🏗️ Arquitetura | 🧪 Testes | 👨💻 Contribuir |
|---|---|---|---|---|---|
| Clique | Clique | Clique | Clique | Clique | Clique |
DevStore é uma plataforma de e-commerce moderna desenvolvida como um projeto educacional.
O projeto demonstra as melhores práticas de desenvolvimento web com Next.js 16,
incluindo renderização no servidor (SSR), geração estática (SSG), API routes, e otimizações de performance.
- ✅ Catálogo de Produtos - Listagem completa com busca em tempo real
- ✅ Carrinhos Dinâmicos - Gerenciamento de carrinho com Context API
- ✅ Página de Produto - Detalhes completos com imagens otimizadas
- ✅ API REST - Endpoints para produtos e busca
- ✅ Testes E2E - Cobertura com Cypress
- ✅ Performance - Otimizações automáticas do Next.js
- Node.js 18.17 ou superior
- pnpm 8.0+ (gerenciador de pacotes recomendado)
1. Clone o repositório
git clone https://github.com/emmanuelmarcosdeoliveira/devstore.git
cd devstore2. Instale as dependências
pnpm install3. Configure as variáveis de ambiente
Crie um arquivo .env.local na raiz do projeto:
# Exemplo de configuração
NEXT_PUBLIC_API_URL=http://localhost:30004. Execute o servidor de desenvolvimento
pnpm devAcesse http://localhost:3000 no seu navegador.
| Comando | Descrição |
|---|---|
pnpm dev |
Inicia o servidor de desenvolvimento |
pnpm build |
Cria a build de produção |
pnpm start |
Inicia o servidor em produção |
pnpm lint |
Executa verificações ESLint |
pnpm test |
Executa testes com Cypress |
| Tecnologia | Versão | Propósito |
|---|---|---|
| Next.js | 16.0.0 | Framework React com SSR/SSG |
| React | 19.2.0 | Biblioteca UI |
| React DOM | 19.2.0 | Renderização no DOM |
| TypeScript | 5.x | Tipagem estática |
| Tecnologia | Versão | Propósito |
|---|---|---|
| Tailwind CSS | 4.x | Framework CSS utilitário |
| PostCSS | 4.x | Processamento de CSS |
| Tailwind Merge | 3.3.1 | Merge de classes Tailwind |
| Tecnologia | Versão | Propósito |
|---|---|---|
| Zod | 4.1.12 | Validação de esquemas TypeScript |
| @t3-oss/env-nextjs | 0.13.8 | Validação de variáveis de ambiente |
| Tecnologia | Versão | Propósito |
|---|---|---|
| Lucide React | 0.548.0 | Ícones SVG reutilizáveis |
| Tecnologia | Versão | Propósito |
|---|---|---|
| ESLint | 9.x | Análise estática de código |
| Cypress | 15.6.0 | Testes end-to-end |
| Babel React Compiler | 1.0.0 | Compilação otimizada de React |
devstore/
├── src/
│ ├── app/ # Next.js App Router
│ │ ├── (store)/ # Grupo de rotas da loja
│ │ │ ├── (home)/ # Página inicial
│ │ │ ├── product/ # Página de produtos
│ │ │ └── search/ # Página de busca
│ │ ├── api/ # API Routes
│ │ │ └── products/ # Endpoints de produtos
│ │ └── layout.tsx # Layout raiz
│ ├── components/ # Componentes React reutilizáveis
│ ├── context/ # Context API para estado global
│ ├── data/ # Tipos e utilitários de dados
│ └── env.ts # Validação de variáveis de ambiente
├── cypress/ # Testes E2E
├── public/ # Arquivos estáticos
└── package.json # Dependências do projeto
- Componentes Next.js renderizados no servidor por padrão
- Reduz JavaScript no cliente e melhora SEO
- Gerenciamento de estado global do carrinho
- Evita prop drilling
- Endpoints RESTful nativos do Next.js
- Localizado em
src/app/api/
- Tipagem forte de dados
- Validação em tempo de compilação
- Modo strict ativado
- Type safety em todo o projeto
Os testes estão localizados em cypress/e2e/:
Executar testes:
pnpm cypress runTestes Inclusos:
- ✅ Adicionar produto ao carrinho
- ✅ Busca de produtos
- ✅ Navegação entre páginas
Este projeto foi desenvolvido como material de estudo baseado na formação da RocketSeat.
Para aprender mais: RocketSeat
Crie um arquivo .env.local com as configurações necessárias:
# Exemplo
NEXT_PUBLIC_API_URL=http://localhost:3000
NODE_ENV=development# Instale o Vercel CLI
npm install -g vercel
# Faça deploy
vercelSua contribuição é bem-vinda! Aqui estão os passos para contribuir:
📌 Clique para ver o guia completo de contribuição
- Leia a documentação incluída
- Explore o código e sua estrutura
- Entenda como o projeto funciona
Crie uma cópia (fork) do repositório em sua conta do GitHub.
git clone https://github.com/SEU-USUARIO/devstore.git
cd devstoregit checkout -b feature/sua-feature
# ou
git checkout -b fix/seu-fixConvenção de nomes:
feature/- Para novas funcionalidadesfix/- Para correções de bugsdocs/- Para documentaçãorefactor/- Para refatoração
- Implemente suas mudanças
- Adicione testes se necessário
- Mantenha o código limpo (execute
pnpm lint)
git add .
git commit -m "feat: descrição clara das alterações"
git push origin feature/sua-featurePadrão de mensagens de commit:
feat:Nova funcionalidadefix:Correção de bugdocs:Mudanças na documentaçãostyle:Formatação de códigorefactor:Refatoração de códigotest:Adição de testes
Acesse o repositório original e clique em "New Pull Request". Descreva claramente:
- O que foi mudado
- Por que foi mudado
- Como testar as alterações
Os mantedores podem sugerir alterações. Colabore e faça os ajustes necessários.
Este projeto está sob a licença MIT. Veja o arquivo LICENSE para mais detalhes.
Lançado em 2025.

