Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/brendon3578/project-nest-my-financies-api
API made with Nest JS and Prisma for project-angular-my-financies Angular application
https://github.com/brendon3578/project-nest-my-financies-api
Last synced: about 1 month ago
JSON representation
API made with Nest JS and Prisma for project-angular-my-financies Angular application
- Host: GitHub
- URL: https://github.com/brendon3578/project-nest-my-financies-api
- Owner: Brendon3578
- Created: 2023-10-14T03:21:46.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2023-10-18T20:44:49.000Z (about 1 year ago)
- Last Synced: 2023-10-19T11:11:35.904Z (about 1 year ago)
- Language: TypeScript
- Size: 582 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
Projeto NestJS - API De FinanƧas
![NestJS](https://img.shields.io/badge/nestjs-%23E0234E.svg?style=for-the-badge&logo=nestjs&logoColor=white)
![Prisma](https://img.shields.io/badge/Prisma-3982CE?style=for-the-badge&logo=Prisma&logoColor=white)
![SQLite](https://img.shields.io/badge/sqlite-%2307405e.svg?style=for-the-badge&logo=sqlite&logoColor=white)
![NodeJS](https://img.shields.io/badge/node.js-6DA55F?style=for-the-badge&logo=node.js&logoColor=white)
![JWT](https://img.shields.io/badge/JWT-black?style=for-the-badge&logo=JSON%20web%20tokens)
![TypeScript](https://img.shields.io/badge/typescript-%23007ACC.svg?style=for-the-badge&logo=typescript&logoColor=white)
![Swagger](https://img.shields.io/badge/-Swagger-%23Clojure?style=for-the-badge&logo=swagger&logoColor=white)
## šæ Projeto
Essa aplicaĆ§Ć£o Ć© um Backend de um domĆnio de **Controle Financeiro**, no qual um usuĆ”rio ou grupo de usuĆ”rios pode controlar seus gastos financeiros (receitas e despesas) e visualizĆ”-las filtrando por mĆŖs e ano, ou visualizĆ”-los por responsĆ”veis.
> Um **UsuĆ”rio autenticado** cria uma **OrganizaĆ§Ć£o** e nela, Ć© criada as **entradas financeiras** (receitas e despesas), que sĆ£o **categorizadas** por meio de **Categorias** que o prĆ³prio usuĆ”rio cria.
>
> Ć possĆvel que **UsuĆ”rios** crie quantas **OrganizaƧƵes** ele desejar, e convidar outros **usuĆ”rios** para participar tambĆ©m do controle financeiro dessa organizaĆ§Ć£oA arquitetura desse Backend baseia-se sendo um servidor web RESTful criado com o framework **NestJS**, que utiliza do **Prisma ORM** para fazer consultas no banco de dados **SQLite** criado localmente.
Ele tem a finalidade de validar as requisiƧƵes feitas pela interface web (outra aplicaĆ§Ć£o [Minhas Financias](https://github.com/Brendon3578/project-angular-my-financies) criada em Angular), validando essas requisiƧƵes antes de interagirem propriamente com o Banco de dados.
Com ele Ć© possĆvel:
- Cadastrar e autenticar usuƔrio via JWT (JSON Web Tokens)
- Criar financias de despesa e entrada para controle financeiro e categorizĆ”-las via tags de categorias
- Criar organizaƧƵes para centralizar os gastos financeiros de equipes ou setores
- Adicionar ou remover UsuĆ”rios dentro dessa organizaĆ§Ć£o permitindo a colaboraĆ§Ć£o e monitoramento continuo nos gastos## š„ Iniciar a aplicaĆ§Ć£o
```bash
# Baixar as dependĆŖncias
npm install# Popular o banco de dados atravƩs do Prisma (prisma/seed.ts)
npx prisma db seed# Iniciar o servidor nest no ambiente de desenvolvimento na porta 3000 (http://localhost:3000)
npm run start:dev
```Os endpoints da API foi documentados utilizando o Swagger UI, para acessar a documentaĆ§Ć£o basta inicializar a aplicaĆ§Ć£o e abrir a seguinte URL `http://localhost:3000/v1/docs`
## āØ Tecnologias
- [NestJS](https://nestjs.com/) - framework utilizado para criar a aplicaĆ§Ć£o do servidor
- [Prisma](https://www.prisma.io/) - Object-Relational Mapping (ORM) utilizado para facilitar a conexĆ£o entre o servidor web Nest e o banco de dados SQLite criado localmente (no arquivo `db.json`)
- [SQLite Database](https://www.sqlite.org/) - Banco de dados utilizado para a implementaĆ§Ć£o um banco de dados simples e rĆ”pido dentro da aplicaĆ§Ć£o de forma local
- [PassportJS](https://www.passportjs.org/) - biblioteca para autenticaĆ§Ć£o de rotas do nest via estratĆ©gia [JWT ( JSON Web Token)](https://jwt.io/)
- [Swagger UI](https://swagger.io/tools/swagger-ui/) - ferramenta utilizada para documentar a API atravĆ©s de uma Interface fĆ”cil de ser usada e manipular a API em tempo real## š® Estrutura da aplicaĆ§Ć£o
Para ver a estrutura da aplicaĆ§Ć£o o funcionamento de cada parte da aplicaĆ§Ć£o, veja [š Estrutura da AplicaĆ§Ć£o](./docs/application.md)
## Estrutura do Banco de Dados
Diagrama de Entidade-Relacionamento (ER) do Banco de Dados, gerado via linguagem DBML (Database Markup Language) e a plataforma [DB Diagram](https://dbdiagram.io/d)
## Outros comandos
```bash
# aplicaĆ§Ć£o no ambiente de desenvolvimento
$ npm run start# aplicaĆ§Ć£o no ambiente watch mode (observaĆ§Ć£o)
$ npm run start:dev# aplicaĆ§Ć£o no ambiente de produĆ§Ć£o
$ npm run start:prod# Rodar testes unitƔrios
$ npm run test# Rodar testes e2e
$ npm run test:e2e# Ver cobertura dos testes
$ npm run test:cov
```
Feito com ā por Brendon Gomes