Uma aplicação completa de lista de tarefas construída com tecnologias modernas, utilizando Vue.js no frontend, Node.js/Fastify no backend e PostgreSQL como banco de dados.
- Vue.js 3 - Framework progressivo para interfaces de usuário
- TypeScript - Superset tipado do JavaScript
- Vite - Build tool rápida para desenvolvimento moderno
- PrimeVue - Biblioteca de componentes UI rica
- TailwindCSS - Framework CSS utilitário
- Pinia - Store reativo para Vue.js
- Axios - Cliente HTTP
- TanStack Query - Gerenciamento de estado de servidor
- Node.js - Runtime JavaScript
- Fastify - Framework web rápido e eficiente
- TypeScript - Tipagem estática
- Prisma - ORM moderno para banco de dados
- Zod - Validação de schemas
- Vitest - Framework de testes
- Swagger/OpenAPI - Documentação da API
- PostgreSQL - Banco de dados relacional robusto
- Docker - Containerização
- Docker Compose - Orquestração de containers
- pnpm - Gerenciador de pacotes eficiente
- ESLint - Linting de código
- Prettier - Formatação de código
todo-list/
├── api/ # Backend API (Node.js + Fastify)
├── web/ # Frontend (Vue.js)
├── shared/ # Schemas compartilhados (Zod)
├── docker-compose.yml
├── pnpm-workspace.yaml
└── README.md
- Node.js (>= 22.12.0)
- pnpm (>= 10.0.0)
- Docker & Docker Compose (para ambiente containerizado)
Para executar localmente, você DEVE criar os arquivos de ambiente:
api/.env (Backend):
DATABASE_URL="postgresql://postgres:password@localhost:5433/todo_list_dev"
PORT=3000
HOST=0.0.0.0
NODE_ENV=developmentweb/.env (Frontend):
VITE_API_BASE_URL=http://localhost:3000
VITE_NODE_ENV=development💡 Dica: Você pode copiar os arquivos de exemplo:
cp api/.env.example api/.env cp web/.env.example web/.env
-
Clone o repositório:
git clone https://github.com/drefahl/todo-list cd todo-list -
Execute com Docker Compose:
Para desenvolvimento:
# Apenas banco de dados, frontend e backend executam localmente docker compose -f docker-compose.dev.yml up -dPara produção (aplicação completa):
# Todas as aplicações containerizadas docker compose up --build -
Acesse as aplicações:
- Frontend: http://localhost:3000
- Backend API: http://localhost:3333
- Documentação da API: http://localhost:3333/docs
- Banco de dados: localhost:5432 (prod) ou localhost:5433 (dev)
-
Clone e instale dependências:
git clone https://github.com/drefahl/todo-list cd todo-list pnpm install -
Configure as variáveis de ambiente:
# Copie os arquivos de exemplo e ajuste se necessário cp api/.env.example api/.env cp web/.env.example web/.env -
Inicie o banco de dados:
# Usar docker-compose.dev.yml para banco de desenvolvimento docker compose -f docker-compose.dev.yml up -d -
Execute as migrações:
cd api pnpm prisma migrate dev -
Inicie a API:
cd api pnpm dev -
Inicie o Frontend (em outro terminal):
cd web pnpm dev -
Acesse as aplicações:
- Frontend: http://localhost:3000
- Backend API: http://localhost:3333
- Documentação da API: http://localhost:3333/docs
- Banco de dados: localhost:5433
- API Documentation - Como executar e desenvolver a API
- Web Documentation - Como executar e desenvolver o frontend