Skip to content

coder-gaia/api_todo

Repository files navigation

🧠 API Todo

Node.js Express Prisma SQLite Jest TypeScript


🧩 Descrição

API Todo é o backend da aplicação de gerenciamento de tarefas que integra com o frontend da Task Board App.
O projeto foi desenvolvido com Node.js, Express e Prisma ORM, utilizando SQLite como banco de dados.

Ele fornece autenticação JWT, papéis de usuário (owner e admin), e controle de acesso para criação e gerenciamento de boards e tasks.


⚙️ Tecnologias

  • Node.js + Express
  • TypeScript
  • Prisma ORM
  • SQLite
  • JWT (Json Web Token)
  • Jest (para testes automatizados)

📂 Estrutura do Projeto

api_todo/
├── prisma/
│   ├── schema.prisma
│   ├── dev.db
│   └── test.db
├── src/
│   ├── controllers/
│   ├── middlewares/
│   ├── models/
│   ├── routes/
│   ├── services/
│   ├── app.ts
│   └── server.ts
├── tests/
│   └── *.test.ts
├── .env
├── .env.test
├── package.json
├── tsconfig.json
└── README.md

🚀 Como Rodar o Projeto

1️⃣ Clonar o repositório

git clone https://github.com/seu-usuario/api_todo.git
cd api_todo

2️⃣ Instalar as dependências

npm install

3️⃣ Configurar o ambiente

Crie um arquivo .env na raiz com o conteúdo:

DATABASE_URL="file:./dev.db"
JWT_SECRET=supersecret123

E um .env.test para os testes:

DATABASE_URL="file:./test.db"
JWT_SECRET="testsecret"

4️⃣ Resetando o banco de dados antes de iniciar

npx prisma migrate reset

5️⃣ Rodando os Testes

npm run test:backend:cov

Os testes utilizam o banco test.db, garantindo isolamento entre ambiente de desenvolvimento e testes.

6️⃣ Executando o Servidor

npm run dev

A API estará disponível em:

http://localhost:3333

🧱 Integração com o Frontend

A interface (frontend) consome diretamente os endpoints dessa API, permitindo:

  • Login e registro de usuários (owner e admin);
  • Criação e gerenciamento de boards;
  • Criação, edição e exclusão de tasks;
  • Controle de acesso baseado em papéis;
  • Persistência dos dados via Prisma + SQLite.

🔗 Não é necessário testar as rotas manualmente via Postman — toda a comunicação é feita pela interface frontend.


👥 Roles e Permissões

Papel Permissões principais
Owner Criação de boards, tasks e atribuição de administradores.
Admin Gerenciamento de tasks e colaboração em boards atribuídos.

💡 Scripts Úteis

Comando Descrição
npm run dev Inicia o servidor em modo de desenvolvimento
npm run test:backend Executa todos os testes automatizados
npx prisma studio Abre o painel visual do Prisma
npx prisma migrate dev Aplica ou cria migrações no banco de dados

📜 Licença

Este projeto é de uso livre para fins de estudo e demonstração.

Autor: Alexandre Gaia
LinkedIn: linkedin.com/in/alexandre-gaia
E-mail: alexandregaia.dev@gmail.com

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published