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.
- Node.js + Express
- TypeScript
- Prisma ORM
- SQLite
- JWT (Json Web Token)
- Jest (para testes automatizados)
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
git clone https://github.com/seu-usuario/api_todo.git
cd api_todo
npm install
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"
npx prisma migrate reset
npm run test:backend:cov
Os testes utilizam o banco test.db
, garantindo isolamento entre ambiente de desenvolvimento e testes.
npm run dev
A API estará disponível em:
http://localhost:3333
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.
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. |
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 |
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