<div align="center"> </br> <img src="https://gazincombr-my.sharepoint.com/personal/valdecir_junior_gazin_com_br/Documents/logo%20genesis%20(1).png" height="150" width="200" style="border-radius: 10px;"/> <h1>Backend Controladoria</h1> </div> <hr> ## 📄 Contexto <p> Aplicação backend do sistema de controladoria, que tem como objetivo unificar os planos de contas das empresas, centralizar todos lançamentos contábeis em um único sistema para geração de relatórios gerenciais e desenvolver o sistema orçamentário onde serão realizados os orçamentos por conta contábil. </p> ## 🏃 Executando aplicação #### Produção ```bash # gere o arquivo de envs a partir do arquivo de exemplo $ cp .exemple.env .prod.env # instale as dependências do projeto $ yarn # aplique as migrações do banco de dados $ yarn migration:run # gere a versão transpilada do código $ yarn build # execute a aplicação transpilada $ yarn start ``` Feito isso a aplicação ficará disponível na porta definida na env `PORT` #### Desenvolvimento ```bash # gere o arquivo de envs a partir do arquivo de exemplo $ cp .exemple.env .dev.env # instale as dependências do projeto $ yarn # aplique as migrações do banco de dados $ yarn migration:run # execute a aplicação $ yarn start:dev ``` Feito isso a aplicação ficará disponível na porta definida na env `PORT` ## 🧪 Testes Execute o seguinte comando para executar todos os testes da aplicação ```bash $ yarn test ``` #### Cobertura de testes Execute o seguinte comando para rodar todos os testes e exibir o report com a porcentagem de cobertura de teste em cada um dos arquivos da aplicação ```bash $ yarn test:ci ``` ## 🛠 Tecnologias - [Nodejs](https://nodejs.org/) - Plataforma para execução de código JavaScript no server-side, utilizado na construção da API. - [TypeScript](https://www.typescriptlang.org/) - Superset da linguagem JavaScript, fornecendo classes, interfaces e tipagem estática opcional. - [PostgreSQL](https://www.postgresql.org/) - SGBDRe Utilizado para gerenciamento do banco de dados da aplicação - [Typeorm](https://typeorm.io/) - ORM utilzado no mapeamente das entidades da aplicação para o banco de dados, e vice e versa - [Express](https://expressjs.com/) - Framework Javascript utilizado para facilitar a construção de APIs no Nodejs - [Jest](https://jestjs.io/) - Framework Javascript utilizado para facilitar a construção de testes ## 🚩 Convenção de commits - build: Mudanças que afetam o sistema de build ou dependências externas (exemplo de escopos: gulp, broccoli, npm) - ci: Mudanças nos arquivos e scripts de configuração de CI (exemplo de escopos: Travis, Circle, BrowserStack, SauceLabs) - docs: Alterações apenas na documentação - feat: Uma nova funcionalidade - fix: A correção de algum bug - perf: Uma mudança de código que melhora o desempenho - refactor: Uma mudança de código que não corrige um bug nem adiciona um recurso - style: Mudanças que não afetam o significado do código, apenas a forma como ele se parece(espaços em branco, formatação, etc) - test: Adição de testes faltantes ou correção de testes existentes