Stockly é uma aplicação moderna de gestão de estoque desenvolvida com Next.js 14, oferecendo uma interface intuitiva para controle de produtos, vendas e análise de dados.
- Framework: Next.js 14 (App Router)
- Linguagem: TypeScript
- Estilização: Tailwind CSS
- UI Components: Radix UI
- Formulários: React Hook Form + Zod
- Banco de Dados: Prisma ORM
- Deploy: AWS (via SST)
- Gráficos: Recharts
- Notificações: Sonner
- 📊 Dashboard com métricas em tempo real
- 📦 Gestão completa de produtos
- 💰 Controle de vendas
- 📈 Análise de dados e relatórios
app/
├─ _components/ # Componentes reutilizáveis
├─ _actions/ # Server actions
├─ _data-access/ # Acesso a dados
├─ _lib/ # Utilitários
├─ _helpers/ # Funções auxiliares
├─ dashboard/ # Página principal
├─ products/ # Gestão de produtos
└─ sales/ # Gestão de vendas
O Stockly oferece flexibilidade de deploy, suportando tanto a Vercel quanto a AWS, permitindo escolher a melhor opção baseada nas necessidades do projeto:
- Ideal para: Projetos que precisam de deploy rápido e simples
- Vantagens:
- Deploy automático via GitHub
- Preview deployments para cada PR
- Edge Network global
- Otimizado para Next.js
- Zero configuração necessária
- Suporta streaming
-
Ideal para: Projetos que necessitam de mais controle e serviços AWS
-
Vantagens:
- Acesso completo à infraestrutura AWS
- Escalabilidade sob demanda
- Integração com outros serviços AWS (RDS, S3, etc.)
- Controle granular de recursos
- Custo-benefício para aplicações maiores
-
Desvantagens:
- Não suporta streaming na versão utilizada até o momento
A versão atual está hospedada na AWS utilizando SST (Serverless Stack): Stockly Production
💡 Dica: Para projetos menores ou em fase inicial, é recomendado utilizar a Vercel para deploy. À medida que o projeto cresce e surge necessidade de utilização de mais serviços AWS, a migração para SST se torna uma opção viável.
- Clone o repositório
- Instale as dependências:
npm install- Configure as variáveis de ambiente:
cp .env.example .env- Configure o banco de dados:
Você pode escolher entre duas opções para o banco de dados PostgreSQL:
docker run --name stockly-postgres -e POSTGRES_PASSWORD=password -p 5432:5432 -d postgresConfigure o .env como no arquivo de exemplo env-example situado na pasta raiz do projeto
Você pode utilizar serviços como:
- Neon (https://neon.tech)
- Supabase (https://supabase.com)
- AWS RDS
- Railway (https://railway.app)
Configure o .env com a URL fornecida pelo seu provedor:
DATABASE_URL=sua_url_do_banco_cloud- Execute as migrações do banco de dados:
npx prisma migrate dev- Inicie o servidor de desenvolvimento:
npm run dev- Utilizado
server-onlypara funções exclusivas do servidor - Siga a estrutura de diretórios com prefixo
_para componentes não-rotas - Mantido a consistência com Conventional Commits
- Todas as ações do servidor são protegidas
- Validação de dados com Zod
- Sanitização de inputs