Aplicação completa de e-commerce desenvolvida com foco em arquitetura moderna, boas práticas e integração com serviços reais como autenticação e pagamentos.
Em breve (adicione aqui o link da sua aplicação em produção)
Este projeto simula um e-commerce real, permitindo que usuários naveguem por produtos, adicionem itens ao carrinho e realizem compras com pagamento integrado.
Foi desenvolvido com foco em:
- Arquitetura escalável
- Boas práticas de desenvolvimento
- Integração com serviços externos
- Experiência do usuário
- Next.js (App Router)
- React
- TypeScript
- Tailwind CSS
- Next.js API Routes / Server Actions
- Node.js
- PostgreSQL
- Prisma ORM
- Clerk
- Stripe
- Login e registro de usuários
- Proteção de rotas privadas
- Controle de sessão com Clerk
- Listagem de produtos
- Filtro por categorias
- Página de detalhes do produto
- Adicionar/remover produtos
- Atualizar quantidade
- Cálculo de subtotal e total
- Persistência:
- Usuário logado → banco de dados
- Usuário não logado → localStorage
- Integração com Stripe
- Criação de sessão de pagamento
- Redirecionamento para checkout seguro
- Confirmação automática de pagamento
- Criação de pedidos no banco
- Armazenamento de itens comprados
- Listagem de pedidos do usuário
- Visualização de status
- Histórico de compras
- CRUD de produtos
- CRUD de categorias
- Controle de acesso por role (ADMIN)
src/
├── app/
│ ├── (public)/
│ ├── (auth)/
│ ├── (protected)/
│ ├── admin/
│ ├── api/
│ ├── layout.tsx
│ ├── globals.css
│ └── not-found.tsx
│
├── components/
├── lib/
├── prisma/
├── hooks/
├── context/
- User
- Category
- Product
- Cart
- Order
- OrderItem
- Uma categoria possui vários produtos
- Um usuário possui vários pedidos
- Um pedido possui vários itens
git clone https://github.com/ivanrods/commercefly.git
cd commercefly
yarn installCrie um arquivo .env na raiz do projeto:
DATABASE_URL=
NEXT_PUBLIC_APP_URL=
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=
CLERK_SECRET_KEY=
CLERK_WEBHOOK_SIGNING_SECRET=
NEXT_PUBLIC_CLERK_SIGN_IN_URL=
NEXT_PUBLIC_CLERK_SIGN_IN_FALLBACK_REDIRECT_URL=
NEXT_PUBLIC_CLERK_SIGN_UP_FALLBACK_REDIRECT_URL=
STRIPE_SECRET_KEY=
NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY=
STRIPE_WEBHOOK_SECRET=npx prisma migrate dev
npm run devyarn run dev