Este projeto foi desenvolvido durante o evento NLW da Rocketseat. Ele consiste em uma aplicação fullstack com um backend em Node.js/TypeScript e frontend em React, utilizando bibliotecas modernas e padrões de projeto atuais.
- Node.js + TypeScript
- Fastify: Framework web para APIs rápidas.
- Zod: Validação de esquemas e tipos.
- Drizzle ORM: ORM para PostgreSQL.
- drizzle-seed: Seed de banco de dados.
- PostgreSQL: Banco de dados relacional.
- pgvector: Extensão para vetores no PostgreSQL.
- @fastify/cors: Suporte a CORS.
- dotenv: Variáveis de ambiente.
- React 19 + TypeScript
- Vite: Bundler e dev server rápido.
- React Router DOM: Rotas SPA.
- @tanstack/react-query: Gerenciamento de dados assíncronos.
- Tailwind CSS: Utilitários CSS.
- class-variance-authority, clsx, tailwind-merge: Utilitários para composição de classes.
- Radix UI: Componentes acessíveis.
- lucide-react: Ícones SVG.
- Monorepo: Separação clara entre
server/(backend) eweb/(frontend). - Type-safe: Uso extensivo de TypeScript e Zod para validação e tipagem.
- Componentização: Frontend baseado em componentes reutilizáveis.
- Configuração por ambiente: Uso de arquivos
.envpara variáveis sensíveis.
- Node.js 18+
- Docker (para banco de dados PostgreSQL com pgvector)
- Copie
.env.examplepara.enve ajuste as variáveis conforme necessário. - Suba o banco de dados com Docker:
docker-compose up -d
- Instale as dependências:
cd server npm install - Rode as migrations e seeds:
npm run db:seed
- Inicie o servidor:
npm run dev
- Instale as dependências:
cd web npm install - Inicie o servidor de desenvolvimento:
npm run dev
Acesse a aplicação web em http://localhost:5173.
Projeto desenvolvido durante o NLW da Rocketseat.