Este é um aplicativo de gerenciamento de transações para praticar Node.js juntamente com TypeScript, incluindo o uso de um banco de dados Postgres com TypeORM e envio de arquivos com Multer. Este aplicativo permite o armazenamento de transações financeiras com entradas e saídas. Além disso o app permite o registro e listagem dessas transações, a criação de novos registros na base de dados, a remoção desses registros, e o envio de um arquivo csv para inserir várias transações simultaneamente.
- POST /transactions: Essa rota é responsável pela criação de transações financeiras. A rota recebe título, valor, tipo e categoria dentro do corpo da solicitação. O tipo deve ser income ou outcome apenas. Ao registrar uma nova transação, ela será armazenada no banco de dados contendo os campos id, título, valor, tipo, category_id, created_at, updated_at. Além disso, a categoria é uma tabela separada. Antes de criar uma nova categoria, o sistema verifica se já existe uma categoria com o mesmo título. Se existir, usa a id da categoria que já existe no banco de dados.
- GET /transactions: Esta rota retorna uma listagem de todas as transações registradas até o momento, junto com a soma das entradas, saques e o crédito total.
- DELETE /transactions/:id: Esta rota exclui uma transação com o id presente nos parâmetros da rota;
- POST /transactions/import: O backend permite ainda a importação de um arquivo .csv contendo as mesmas informações necessárias para criar uma transação: id, título, valor, tipo e categoria, onde cada linha de o arquivo CSV deve ser um novo registro para o banco de dados e, finalmente, retorna todas as transações que foram importadas para o seu banco de dados.
Para obter uma cópia deste projeto e executar em sua máquina local para fins de desenvolvimento e teste, você precisará clonar o projeto, execute o comando "yarn" em seu terminal para instalar todas as dependências e executar o comando "yarn dev:server" para iniciar o servidor. É importante notar que este projeto requer um banco de dados em execução, sugiro que você use Docker juntamente com Insomnia e DBeaver.
- PostgreSQL - Database
- Express - Server Framework
- NodeJs - Server Environment
- Insomnia - Rest Client
- DBeaver - DB administration tool
- Docker - Docker Container
- Typescript - Programming Language
Algumas dependências e bibliotecas do projeto incluem, mas não estão limitadas a:
- "cors": "^2.8.5",
- "csv-parse": "^4.8.8",
- "dotenv": "^8.2.0",
- "express": "^4.17.1",
- "express-async-errors": "^3.1.1",
- "multer": "^1.4.2",
- "pg": "^8.3.0",
- "reflect-metadata": "^0.1.13",
- "typeorm": "^0.2.24"
- "typescript": "~3.7.2"
- @devfel - Luiz Flávio Felizardo
- Agradecimento a equipe da RocketSeat pela proposta desse desafio e os ensinamentos até aqui. (Turma - Bootcamp GoStack 14)