Projeto fullstack desenvolvido com Node.js e React, utilizando monorepo com pnpm workspaces.
- Node.js com TypeScript
- Fastify - Framework web
- Drizzle ORM - ORM para banco de dados
- PostgreSQL - Banco de dados
- Docker - Containerização do PostgreSQL
- Zod - Validação de schemas
- Swagger - Documentação da API
- Biome - Formatação de código
- React 19
- Vite - Build tool
- TypeScript
- Biome - Formatação de código
- Node.js (versão 18 ou superior)
- pnpm (versão 10.13.1)
- Docker e Docker Compose
- Clone o repositório:
git clone <url-do-repositorio>
cd node-react- Instale as dependências:
pnpm install- Configure o ambiente da API:
cd api
cp .env.example .env
# Edite o arquivo .env com suas configurações- Inicie o banco de dados:
cd api
docker-compose up -d- Execute as migrações do banco de dados:
cd api
pnpm db:generate
pnpm db:migratePara iniciar o projeto em modo de desenvolvimento:
API (Backend):
cd api
pnpm devA API estará disponível em http://localhost:3333
Web (Frontend):
cd web
pnpm devO frontend estará disponível em http://localhost:5173
API:
pnpm dev- Inicia o servidor em modo desenvolvimentopnpm start- Inicia o servidor em modo produçãopnpm db:studio- Abre o Drizzle Studio para gerenciar o bancopnpm db:generate- Gera as migraçõespnpm db:migrate- Executa as migraçõespnpm format- Formata o código
Web:
pnpm dev- Inicia o servidor de desenvolvimentopnpm build- Gera o build de produçãopnpm preview- Preview do build de produçãopnpm format- Formata o código
node-react/
├── api/ # Backend (Node.js + Fastify)
│ ├── src/
│ │ ├── db/ # Configuração do banco de dados
│ │ ├── routes/ # Rotas da API
│ │ └── server.ts # Servidor principal
│ └── docker-compose.yml
├── web/ # Frontend (React + Vite)
└── package.json # Configuração do workspace
Após iniciar o servidor da API, acesse a documentação Swagger em:
http://localhost:3333/docs
O projeto utiliza PostgreSQL rodando em container Docker. As credenciais padrão são:
- Host: localhost
- Porta: 5432
- Usuário: docker
- Senha: docker
- Database: webhooks