SyStock é um sistema completo de gestão de stock com foco em procurement, relatórios e emissão de recibos. Desenvolvido com tecnologias modernas para oferecer uma experiência intuitiva e eficiente.
- Frontend: React + Tailwind CSS
- Backend/Database: Supabase (PostgreSQL + Auth)
- PDF Generation: jsPDF
- Charts: Chart.js
- Icons: Lucide React
- Sistema de login com Supabase Auth
- Perfis de usuário com diferentes papéis:
- Administrador: Acesso total ao sistema
- Operador de Caixa: Vendas e gestão de caixa
- Gestor de Stock: Produtos, fornecedores e relatórios
- Controle de permissões baseado em papéis
- Abertura de caixa com saldo inicial
- Fecho de caixa com resumo de vendas
- Controle de sessões de caixa
- CRUD completo de produtos
- CRUD completo de fornecedores
- Associação obrigatória produto-fornecedor
- Controle de stock em tempo real
- Carrinho de vendas interativo
- Validação de stock disponível
- Redução automática de stock após venda
- Geração de recibos em PDF
- Armazenamento de recibos no Supabase Storage
- Relatório geral de vendas (filtros por período)
- Relatório de fornecedores
- Lista de produtos exportável em PDF
- Análise ABC do stock com gráficos:
- A: Baixa quantidade, alto valor
- B: Quantidade e valor moderados
- C: Alta quantidade, baixo valor
O sistema segue uma estrutura consistente com:
- Sidebar: Navegação principal com ícones e nomes
- Navbar: Informações do usuário, pesquisa e notificações
- Content: Área principal dos módulos
- Footer: Informações da aplicação
- Cores neutras com destaques em azul e verde
- Princípios AIDA Marketing aplicados:
- Atenção: Títulos e ícones chamativos
- Interesse: Gráficos e dashboards dinâmicos
- Desejo: Botões destacados para ações importantes
- Ação: Fluxo simples e direto
users (extends auth.users)
├── id (PK)
├── name
├── email
├── role (admin, operador, gestor)
└── created_at
suppliers
├── id (PK)
├── name
├── contact
├── address
└── created_at
products
├── id (PK)
├── name
├── code (unique)
├── category
├── quantity
├── purchase_price
├── sale_price
├── supplier_id (FK)
└── created_at
sales
├── id (PK)
├── user_id (FK)
├── sale_date
├── total_amount
├── receipt_url
└── created_at
sale_items
├── id (PK)
├── sale_id (FK)
├── product_id (FK)
├── quantity_sold
└── price_per_unit
cash_register
├── id (PK)
├── opening_amount
├── closing_amount
├── opened_by (FK)
├── closed_by (FK)
├── opened_at
└── closed_at- Node.js 16+
- npm ou yarn
- Conta Supabase (para produção)
- Clone o repositório:
git clone https://github.com/JCarlos-JC/systock.git
cd systock- Instale as dependências:
npm install- Configure as variáveis de ambiente:
# Copie o arquivo .env e configure suas credenciais Supabase
VITE_SUPABASE_URL=sua_url_do_supabase
VITE_SUPABASE_ANON_KEY=sua_chave_anonima- Execute o banco de dados:
# Use o arquivo database-schema.sql no seu projeto Supabase- Inicie o servidor de desenvolvimento:
npm run devSe as variáveis do Supabase não estiverem configuradas, o sistema rodará em modo demonstração com dados fictícios.
Credenciais de demo:
- Email:
demo@systock.com - Senha:
demo123
npm run build
npm run previewsrc/
├── components/ # Componentes reutilizáveis
│ ├── Layout.jsx # Layout principal
│ ├── Sidebar.jsx # Barra lateral de navegação
│ ├── Navbar.jsx # Barra superior
│ └── Footer.jsx # Rodapé
├── pages/ # Páginas da aplicação
│ ├── LoginPage.jsx # Página de login
│ └── DashboardPage.jsx # Dashboard principal
├── hooks/ # Hooks customizados
│ └── useAuth.jsx # Contexto de autenticação
├── lib/ # Utilitários e configurações
│ └── supabase.js # Configuração do Supabase
└── utils/ # Funções utilitárias
- Row Level Security (RLS) habilitado no Supabase
- Políticas de acesso baseadas em papéis
- Validação de dados no frontend e backend
- Senhas hasheadas pelo Supabase Auth
- Implementar módulos de vendas completos
- Adicionar gestão de produtos (CRUD)
- Criar sistema de fornecedores
- Implementar relatórios avançados
- Adicionar análise ABC com gráficos
- Geração de PDFs para recibos
- Sistema de notificações
- Testes automatizados
- Documentação da API
- Fork o projeto
- Crie uma branch para sua feature (
git checkout -b feature/AmazingFeature) - Commit suas mudanças (
git commit -m 'Add some AmazingFeature') - Push para a branch (
git push origin feature/AmazingFeature) - Abra um Pull Request
Este projeto está licenciado sob a MIT License - veja o arquivo LICENSE para detalhes.
- Email: suporte@systock.com
- Documentação: [Em desenvolvimento]
- Issues: GitHub Issues
SyStock - Gerencie seu stock com inteligência 📦✨