Projeto

Painel do Lojista

MVP full-stack para operação de loja, com autenticação, estoque, caixa e vendas, construído como desafio técnico.

Painel do Lojista
19/06/2026#full-stack#varejo#painel-admin#desafio-tecnico

Stack

Next.js • React • TypeScript • Node.js • Express • Prisma • MySQL • Docker

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.