https://github.com/lucasvmarangoni/tasklist
Rest API for task list application, developed with Express, Typescript and Prism, applying TDD and principles of DDD
https://github.com/lucasvmarangoni/tasklist
bcript express express-openapi graceful-shutdown http-status-codes json-web-token mongodb mongodb-atlas node-config nodejs openapi overnightjs pino prisma-studio supertest typescript vitest
Last synced: 3 months ago
JSON representation
Rest API for task list application, developed with Express, Typescript and Prism, applying TDD and principles of DDD
- Host: GitHub
- URL: https://github.com/lucasvmarangoni/tasklist
- Owner: Lucasvmarangoni
- License: mit
- Created: 2023-01-20T22:48:31.000Z (over 2 years ago)
- Default Branch: master
- Last Pushed: 2023-09-25T20:21:38.000Z (about 2 years ago)
- Last Synced: 2025-06-07T15:47:00.018Z (4 months ago)
- Topics: bcript, express, express-openapi, graceful-shutdown, http-status-codes, json-web-token, mongodb, mongodb-atlas, node-config, nodejs, openapi, overnightjs, pino, prisma-studio, supertest, typescript, vitest
- Language: TypeScript
- Homepage:
- Size: 375 MB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: license
Awesome Lists containing this project
README
# Projeto Lista de Tarefas
# (Backend)

## Projeto
O projeto é uma API REST para servir uma aplicação de Lista de tarefas, seguindo o padrão CRUD, com sistema de notificação.
- Projeto planejado e desenvolvi por mim.
- Finalidade: aprendizado, prática e portfólio.
### Objetivo
Inicialmente teve o objetivo de consolidar meus conhecimentos de Back-end e Engenharia de Software, além de praticar a utilização de Node.js com Express e Prisma Studio. O objetivo agora é continuar utilizando esse projeto para praticar, aprimorando-o com as novas habilidades, tecnologias e ferramentas que adquiro.
## Instalação
npm i
### Database
É necessário criar um cluster no MongoDB Atlas ou configurar um banco de dados mongoDB para o prisma studio. A url deve ser colocada em uma variável de ambiente no arquivo .env nomeada de DATABASE_URL.
- Recomendo criar o cluster no Atlas, pois será muito mais rápido e fácil.## Tecnologias
v2.0.0
v2.1.0
TypeScript
Overnight.js
Node.js
Http status codes
Express
Pino
SQLite
Express pino logger
Prisma Studio
Node cache
Vitest
Supertest
Class-validator
SQLite → MongoDB
MongoDB Atlas
Swagger-ui express
Express openapi validator
Express rate limit
Github actions
Node Config
Bcrypt
Json Web Token
## Registro de Desenvolvimento
- Link para o código da versão nas badges.

O projeto teve seu desenvolvimento iniciado com um back-end simples e básico.

O projeto passou a ser uma API REST, CRUD, com sistema de notificação, desenvolvida com Node.js, Express e Typescript, aplicando testes unitários,
validações, DDD, TDD, in memory database, factory pattern, singleton, inversão de dependência e princípios SOLID.

Nesta atualização, estou aprimorando testes, mocks, testes end to end, tratando erros, status code, logging, cache, graceful
shutdown, troca do banco de dados, documentação OpenAPI, workflow, autenticação com criptografia e refatoração.