SmartStock é um sistema web com o principal objetivo de controlar de forma eficiente o estoque de produtos, principalmente produtos alimentícios.
-
Login com RBAC:
Login:Sistema de login com email e senha.Verificação de conta:Envio de email para verificação de conta.Recuperação de senha:Envio de email para recuperação de senha.Níveis de acesso:Diferentes tipos de usuários podem acessar recursos distintos:Admin:Acesso a todos os recursos do sistema, incluindo controle e cadastro de novos usuários.Padrão:Acesso a cadastro e geração de relatórios.Cadastro:Acesso somente ao cadastro de produtos.Geração:Acesso somente a geração e visualização de relatórios.
-
Controle de Estoque:
-
Produto Mestre:Cadastro mestre dos produtos com informações comuns como categoria, grupo, subgrupo e unidade de medida base. -
Entradas:Cadastros de entradas dos produtos a partir de um Produto Mestre. -
Saídas:Cadastro de saídas a partir do cadastro do produto com validação de estoque disponível. -
Ajustes:Cadastro ajustes positivos e negativos para correção de estoque. -
Edição:Edição total de produtos mestres e edição parcial de produtos. -
Exclusão:Exclusão de produtos e produtos mestres. -
Visualização:Os registros de produtos mestres são organizados em tabela com agrupamento por categorias. Visualização completa de todos os produtos cadastrados em uma única tabela com agrupamento por categorias.
-
-
Controle de Usuários:
-
Cadastro:Cadastro de usuários somente com: Nome, Email, Nível de Acesso. -
Edição:Edição total de usuários, incluindo troca do nível de acesso. -
Exclusão:Exclusão de usuários.
-
-
Geração de Relatórios:
Visualização:Os relatórios são gerados dentro do sistema, onde é possível visualizar ou gerar novos.Impressão:Todos os relatórios gerados podem ser exportados como PDF ou impressos.Tipos:Entre os principais tipos de relatórios estão:- Produtos por data de validade;
- Produtos doados;
- Produtos comprados;
- Produtos por recebedor;
- Produtos por fornecedor;
- Inventário de todos os produtos cadastrados;
- Entradas de todos as entradas;
- Saídas de todos as saídas;
- Ajustes de todos os ajustes.
-
Alertas:
Funcionamento:O sistema verifica os alertas quando é aberto e de forma automática a 30 minutos.Controle de validades:Alerta de produtos prestes a vencer e vencidos.Quantidade em estoque:Alerta de produtos com estoque zerado.Aviso:Quando o sistema pela primeira vez, é disparado um aviso com o total de alertas não lidos e, quando um novo alerta é encontrado, também é disparado um aviso.Lidos/Não Lidos:Organização dos alertas em lidos e não lidos.
-
Sistema de Logs:
-
Geração de Logs:Logs de interação do usuário com as principais partes do sistema como criação, edição e exclusão de registros. -
Visualização:Painel para visualização de todos os logs gerados pelo sistema separados por Entradas, Saídas, Ajustes e Diversos.
-
-
Organização:
-
Dashboard:Tela inicial em formato Dashboard, onde pode ser visualizado total de estoque, produtos próximos do vencimento e alertas. -
Pesquisa e filtros:É possível pesquisar ou filtrar por algum registro específico presente nas tabelas, facilitando a busca por registros específicos. -
Separação:Os registros são separados por grupo ou categoria, onde os registros deste grupo são organizados por lote e data de validade.
-
-
Dispositivos Móveis:
Otimização:O sistema é totalmente otimizado para permitir uso em dispositivos móveis.
- Node.js >= 22
- PNPM >= 10
- Docker
- Docker Compose
-
Instalar e atualizar dependências:-
Instalar e atualizar pacotes:
pnpm update
-
Instalar pacotes respeitando a versão fornecida:
pnpm install
-
-
Configurar as variáveis de ambiente globais:renomeie o arquivo.env.examplepara.env -
Configurar Banco de Dados:Criar Banco de Dados:execute o comando abaixo para iniciar e executar o banco de dados utilizando o Docker:docker-compose up -d
Credenciais (Opcional):caso necessite alterar as credenciais de acesso ao Banco de Dados altere esta variável no arquivo.env:DATABASE_URL="postgresql://root:12345@localhost:5432/smartstock?schema=public"
-
Configurar Auth.js:pnpm dlx auth secret
- Será gerado um arquivo
.env.localcom a variávelAUTH_SECRET, copie toda a variável e substituaAUTH_SECRETno arquivo.env, após exclua o arquivo.env.local:
- Será gerado um arquivo
-
Configura o Prisma Client:-
Gera o Prisma Client:
pnpm dlx prisma generate
-
Executa as migrations no Banco de Dados:
pnpm dlx prisma migrate deploy
-
-
Configurar geração e envio de email:-
Para
DESENVOLVIMENTO: acessehttps://ethereal.email/createpara criar uma conta e gerar as credenciais de teste, altere as variáveisETHEREAL_USERNAMEeETHEREAL_PASSWORDno arquivo.env. Agora com estas credenciais é possível acessar sua conta Ethereal. -
Para
PRODUÇÃO:- Usando
GMAIL: acesse o arquivo.enve altereGMAIL_SMTP_USEReGMAIL_SMTP_PASSpara as credenciais da sua conta do Google (é necessário criar uma 'Senha de App'). - Usando
OUTRO PROVEDOR: para usar outro provedor SMTP consulte a documentação doNODEMAILERe altere as configurações do mesmo emlib/mail.ts.
- Usando
-
Remetente dos emails:A variávelMAIL_FROM(definida no arquivo .env) especifica o endereço que aparecerá como remetente em todos os envios.-
Se você atribuir um valor a MAIL_FROM, esse será usado como remetente.
-
Se MAIL_FROM não for definida, o remetente padrão será o usuário SMTP configurado (valor de GMAIL_SMTP_USER ou ETHEREAL_USERNAME).
-
-
-
Executar o projeto:pnpm dev
docker-compose up -d- Cria e executa o container docker necessáriopnpm dev- Executa o servidor em modo de desenvolvimento com Turbopackpnpm build- Compila o projeto para produçãopnpm start- Inicia o servidor em modo de produçãopnpm lint- Executa o linter ESLintpnpm format:check- Executa a verificação de formatação dos arquivos utilizando Prettierpnpm format- Executa a formatação somente de arquivos .ts e .tsx utilizando Prettierpnpm format:all- Executa a formatação de todos os arquivos utilizando Prettierpnpm type-check- Executa a verificação de tipos TypeScript em modo watchpnpm prepare- Executa manualmente as verificações do Huskypnpm dlx prisma generate- Gera o Prisma Clientpnpm dlx prisma migrate deploy- Executa as migrations já criadas ou as pendentespnpm dlx prisma migrate dev- Cria e executa uma nova migration (executar novamente sempre que alterar o schema.prisma)pnpm dlx prisma migrate status- Verifica quais migrations foram aplicadas no banco atualpnpm dlx prisma migrate reset- Reseta o banco e aplica todas as migrations
TypeScriptNode.js - 24React.js - 19Next.js - 16Next.js Server ActionsPostgreSQL - 18Prisma - 7Auth.js - 5Nodemailer - 8jsPDF - 3Zod - 4Tailwind CSS - 4shadcn/ui




