Skip to content

drefahl/todo-list

Repository files navigation

Todo List Application

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.

🚀 Tecnologias Utilizadas

Frontend (Web)

  • 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

Backend (API)

  • 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

Banco de Dados

  • PostgreSQL - Banco de dados relacional robusto

DevOps

  • 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

📁 Estrutura do Projeto

todo-list/
├── api/              # Backend API (Node.js + Fastify)
├── web/              # Frontend (Vue.js)
├── shared/           # Schemas compartilhados (Zod)
├── docker-compose.yml
├── pnpm-workspace.yaml
└── README.md

🛠️ Executando o Projeto

Pré-requisitos

  • Node.js (>= 22.12.0)
  • pnpm (>= 10.0.0)
  • Docker & Docker Compose (para ambiente containerizado)

⚠️ Importante: Variáveis de Ambiente

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=development

web/.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

Opção 1: Executar com Docker (Recomendado)

  1. Clone o repositório:

    git clone https://github.com/drefahl/todo-list
    cd todo-list
  2. Execute com Docker Compose:

    Para desenvolvimento:

    # Apenas banco de dados, frontend e backend executam localmente
    docker compose -f docker-compose.dev.yml up -d

    Para produção (aplicação completa):

    # Todas as aplicações containerizadas
    docker compose up --build
  3. Acesse as aplicações:

Opção 2: Executar Localmente

  1. Clone e instale dependências:

    git clone https://github.com/drefahl/todo-list
    cd todo-list
    pnpm install
  2. 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
  3. Inicie o banco de dados:

    # Usar docker-compose.dev.yml para banco de desenvolvimento
    docker compose -f docker-compose.dev.yml up -d
  4. Execute as migrações:

    cd api
    pnpm prisma migrate dev
  5. Inicie a API:

    cd api
    pnpm dev
  6. Inicie o Frontend (em outro terminal):

    cd web
    pnpm dev
  7. Acesse as aplicações:

�📚 Documentação Detalhada

About

Lista de tarefas fullstack com Vue 3 + TypeScript, Node.js/Fastify, PostgreSQL e Docker. Projeto de aprendizado explorando arquitetura moderna e boas práticas de desenvolvimento.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors