Desafio técnico
Painel do Lojista
Um MVP full-stack para gestão de loja, cobrindo autenticação, operação de caixa, controle de estoque e fluxo de vendas.
O que é
Este projeto foi construído como resolução de um desafio técnico com foco em um cenário realista de varejo. A proposta era entregar um painel funcional, não apenas telas isoladas.
Repositório: github.com/ericklucioh/Painel-do-Lojista
O problema que ele resolve
O sistema centraliza operações comuns de uma loja em um único painel:
- login com controle de sessão;
- gestão de usuários por perfil;
- cadastro e manutenção de produtos;
- movimentação de estoque;
- abertura de caixa;
- registro de vendas;
- emissão de resumo/recibo da venda.
Em vez de tratar cada tela como uma demo visual, a implementação conecta frontend, backend e banco de dados em um fluxo único de operação.
Arquitetura
2 apps
frontend em Next.js e backend em Express separados
Persistencia
Prisma + MySQL
schema, migrations e seed para fluxo local reproduzível
Sessão
JWT + refresh
cookies httpOnly e rotas protegidas por perfil
Entrega
Docker
setup local completo com compose, docs e scripts
Tecnologias usadas
Frontend
- Next.js + React + TypeScript para a aplicação web.
- App Router para separar fluxo de autenticação e dashboard.
- React Hook Form + Zod para formulários com validação previsível.
- Tailwind CSS + shadcn/ui para acelerar a construção da interface.
Backend
- Node.js + Express + TypeScript para a API.
- Prisma para modelagem, migrations e acesso ao banco.
- MySQL como base relacional para usuários, produtos, estoque e vendas.
- JWT + refresh token para autenticação e renovação de sessão.
Infra e qualidade
- Docker Compose para subir frontend, backend, MySQL e Adminer.
- ESLint, Prettier e testes para manter consistência e validar o fluxo.
- GitHub Actions para automação de checks no repositório.
O que eu aprendi
Esse projeto foi importante porque me forçou a ir além do CRUD básico.
- Separação de responsabilidades: frontend, backend e regras de negócio precisam de fronteiras claras para o projeto continuar escalável.
- Autenticação de verdade: não basta "fazer login"; é preciso pensar em cookies, refresh token, expiração, middleware e autorização por papel.
- Modelagem de fluxo: estoque, caixa e venda se conectam. Se a modelagem estiver errada, a aplicação inteira fica inconsistente.
- Ambiente reproduzível: documentação,
.env.example, seed e Docker fazem muita diferença para quem vai rodar o projeto pela primeira vez. - Desafio técnico bom se ganha na execução: não só pela stack, mas pela capacidade de transformar requisitos espalhados em um sistema coerente.
Principal aprendizado
O maior ganho aqui foi praticar integração de ponta a ponta: interface, validação, autenticação, persistência e regras de negócio trabalhando juntas em um cenário próximo de produção.
O que eu destacaria no portfólio
- projeto full-stack com escopo útil e claro;
- autenticação e sessão bem definidas;
- modelagem de domínio conectando usuários, produtos, estoque, caixa e venda;
- ambiente local reproduzível para avaliação técnica;
- documentação suficiente para outra pessoa rodar e entender a entrega.
Fechamento
O Painel do Lojista representa bem o tipo de projeto que eu gosto de construir: menos gimmick e mais sistema funcionando de ponta a ponta, com preocupação real com fluxo, dados, operação e experiência de uso.
