Aplicação fullstack construída com Next.js (App Router), Prisma e MySQL, com autenticação (login, registro e logout) e um CRUD de tarefas com visualização em lista e Kanban.
Este README explica como configurar o ambiente e rodar o projeto localmente.
- Node.js >= 18 (recomendado LTS)
- npm
- Docker e Docker Compose (recomendado para subir o MySQL)
git clone https://github.com/mateusfj/hubfy-fullstack.git
cd hubfy-fullstackO projeto possui um arquivo .env.example na raiz. Crie um arquivo .env com base nele.
Exemplo de configuração para desenvolvimento local:
# MYSQL
MYSQL_ROOT_PASSWORD=hubfy_root
MYSQL_DATABASE=hubfy_db
MYSQL_USER=hubfy_user
MYSQL_PASSWORD=hubfy_password
MYSQL_HOST=localhost
MYSQL_PORT=3306
DATABASE_URL=mysql://root:hubfy_root@localhost:3306/hubfy_db
# API
NEXT_PUBLIC_API_URL=http://localhost:3000/api
# JWT
JWT_SECRET=525ccc4e376d63bdedf39477ff5ba10b7c98ea6671ba341172405f984eeb9b14
JWT_EXPIRES_IN=3600Observações:
- DATABASE_URL deve apontar corretamente para o MySQL.
- NEXT_PUBLIC_API_URL, em desenvolvimento, aponta para a própria API do Next.js.
- JWT_EXPIRES_IN está em segundos (3600 = 1 hora).
O projeto possui um docker-compose.yml configurado para o MySQL.
Para subir o banco:
docker compose up -dVerifique se o container está rodando:
docker psVocê deve ver um container chamado mysql_db em execução.
Na raiz do projeto:
npm installCom o banco rodando e o .env configurado:
npm run migrate
npm run generatePara iniciar o servidor:
npm run devA aplicação ficará disponível em:
- Frontend / API: http://localhost:3000
Com o projeto rodando:
- Swagger UI: http://localhost:3000/api-doc
- Documentação em Markdown: arquivo
API.mdna raiz do projeto
-
Acesse http://localhost:3000/register e crie um usuário.
-
Faça login em http://localhost:3000/login.
-
Após autenticar, você terá acesso à área privada, onde poderá:
- Criar tarefas.
- Visualizar tarefas em lista ou Kanban.
- Filtrar, ordenar e paginar tarefas.
- Atualizar status, editar e remover tarefas.
As mesmas operações estão disponíveis via API (ver Swagger ou API.md).
O projeto utiliza Jest.
Para executar os testes:
npm run testGerar build:
npm run buildExecutar em produção:
npm startPor padrão, a aplicação roda na porta 3000.
- Verifique se o MySQL está rodando (
docker ps). - Confira se as variáveis do
.envestão corretas.
Resetar o banco de desenvolvimento:
npx prisma migrate reset- Garanta que
JWT_SECRETesteja definido. - Confirme se
JWT_EXPIRES_INpossui um valor válido.
- Next.js
- Prisma
- Jest