Skip to content

API RESTful para gerenciamento de tarefas, construída com Fastify, Prisma ORM e PostgreSQL. Totalmente containerizada com Docker, oferece endpoints para CRUD de tarefas e ferramentas como Prisma Studio para visualização do banco.

Notifications You must be signed in to change notification settings

Adryanrr/todo-list

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

📝 ToDo List API – Fastify

API RESTful para gerenciamento de tarefas, desenvolvida com Fastify, usando Prisma ORM com PostgreSQL, e containerizada com Docker para facilitar o desenvolvimento e a implantação.


📦 Tecnologias

  • Node.js + Fastify
  • PostgreSQL
  • Prisma ORM
  • Docker & Docker Compose

🚀 Como executar

✅ Com Docker

docker-compose up --build

Isso sobe a aplicação e o banco PostgreSQL. O Prisma será inicializado automaticamente, desde que você configure os scripts corretamente.

🛑 Parar

docker-compose down

⚙️ Configuração

Crie um arquivo .env na raiz do projeto com as variáveis:

PORT=3000
DATABASE_URL=postgresql://postgres:postgres@db:5432/todolist

A URL db é o nome do serviço no docker-compose.yml.


🧬 Prisma

Gerar cliente Prisma:

npx prisma generate

Rodar as migrations:

npx prisma migrate dev

Visualizar o banco com Studio:

npx prisma studio

📚 Endpoints

Método Rota Descrição
GET /tasks Lista todas as tarefas
GET /tasks/:id Retorna uma tarefa específica
POST /tasks Cria uma nova tarefa
PUT /tasks/:id Atualiza uma tarefa existente
DELETE /tasks/:id Remove uma tarefa

Exemplo de payload:

{
  "title": "Estudar Docker",
  "description": "Ler documentação oficial do Docker"
}

🐳 Docker

Dockerfile

FROM node:18

WORKDIR /app

COPY package*.json ./
RUN npm install

COPY . .

EXPOSE 3000
CMD ["npm", "run", "dev"]

docker-compose.yml

version: "3.8"

services:
  app:
    build: .
    ports:
      - "3000:3000"
    volumes:
      - .:/app
    env_file:
      - .env
    depends_on:
      - db
    command: sh -c "npx prisma migrate deploy && npm run dev"

  db:
    image: postgres:16
    environment:
      POSTGRES_USER: postgres
      POSTGRES_PASSWORD: postgres
      POSTGRES_DB: todolist
    ports:
      - "5432:5432"
    volumes:
      - postgres-data:/var/lib/postgresql/data

volumes:
  postgres-data:

📁 Estrutura do Projeto

.
├── prisma/
│   ├── schema.prisma
│   └── migrations/
├── src/
│   ├── controllers/
│   ├── routes/
│   ├── server.js
├── .env
├── Dockerfile
├── docker-compose.yml
├── package.json
└── README.md

📄 Licença

Distribuído sob a licença MIT.

About

API RESTful para gerenciamento de tarefas, construída com Fastify, Prisma ORM e PostgreSQL. Totalmente containerizada com Docker, oferece endpoints para CRUD de tarefas e ferramentas como Prisma Studio para visualização do banco.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published