/GEFIN-GerenciadorFinanceiro

O objetivo deste projeto é focar na evolução do desenvolvimento da linguagem javascript. Para isso, decidi criar uma gerenciador financeiro, que apresentará as despesas e receitas pessoais, e o saldo total. O usuário será capaz de inserir e excluir itens adicionados à lista.

Primary LanguageJavaScript

Gerenciador financeiro - Gefin

O objetivo deste projeto é focar na evolução do desenvolvimento da linguagem javascript. Para isso, decidi criar um gerenciador financeiro, que apresentará as despesas e receitas pessoais, e o saldo total. O usuário será capaz de inserir e excluir itens adicionados à lista.

Ferramentas

🔨 Javascript 🔨 CSS3 🔨 HTML5

Considerações Iniciais

Estou muito feliz de concluir este projeto. Totalmente autoral, e principalmente por ter realizado a criação e execução da linha de código javascript de forma autônoma. Desta vez, todo o conhecimento que possuo no momento sobre javascript foram colocados em práticas, sem a necessidade de "copiar e colar" códigos na internet, como no projeto anterior da calculadora.

Desafios no Código

O primeiro código que desenvolvi para criação da lista ao submeter os lançamentos no input foram conforme observa-se abaixo:

      var lancamento = document.createElement('div')
      lancamento.setAttribute('class','lcm')
      lancamento.innerHTML = `<p>${Descricao.value}</p><p>${(Number(Valor.value)).toFixed(2)}</p><p>${tipo}</p>`
      lancamento.style.display = 'flex'
      lancamento.style.justifyContent = 'space-between'
      lancamento.style.fontSize = '15px'
      lancamento.style.margin = '10px 0px'
      var printInput = document.querySelector('#printInput')
      printInput.appendChild(lancamento)

Esse era o resultado:

lista-modelo-inicial

O grande problema, era que os lançamentos estavam sendo apresentados de forma desordenada na tela. Dependendo da descrição de cada lançamento, o texto não se alinhava com os demais, e visualmente isso era péssimo para o projeto. Posteriormente, lembrei que poderia utilizar tabelas em html, e decidi alterar a criação de elementos por tabela. isso resolveu totalmente a questão de alinhamentos, uma vez que cada item adicionado, se alinhava exatamente conforme desejado.

      var lancamento = document.createElement('tr')
      lancamento.setAttribute('class','lcm')
      var lanDescricao = document.createElement('td')
      var lanValor = document.createElement('td')
      var lanTipo = document.createElement('td')

      lanDescricao.innerText = `${Descricao.value}`
      lanValor.innerText = `${(Number(Valor.value)).toFixed(2)}`
      lanTipo.innerText = `${tipo}`
      
      lancamento.appendChild(lanDescricao)
      lancamento.appendChild(lanValor)
      lancamento.appendChild(lanTipo)

      var printCab = document.querySelector('.printCab')
      printCab.appendChild(lancamento)

Esse foi o resultado com alteração para tabela:

lista-modelo-tabela

Outras alterações realizadas durante o desenvolvimento do projeto, foi o desmembramento de funções. Inicialmente, todo o código estava dentro do evento clique do botão input, porém, com o decorrer, fui fazendo testes, e criando funções com os códigos que estavam dentro da função principal, e isso ajudou principalmente a não necessitar repetir o código para a execução de outro evento.

🧾 Resumo:

⚆ Cabeçalho de página com Logo e Nome do Produto
⚆ Página Inicial de identificação
⚆ Página de ação com cabeçalho de valores de entradas, saídas e saldo total
⚆ Página de ação com formulários de entradas de descrição, valores e tipo de lançamento
⚆ Página de ação com botão de input
⚆ Página de ação com lista de lançamentos

⚆ Todos os demais itens de tela, como orientação financeira, proporções de despesas e receitas por dia, proproção de despesas por real gasto, botão salvar, foram conteúdos que tive a idéia de colocar durante a execução do projeto.

🎞️ Capturas

Tela Inicial Desktop e Mobile:

Tela-Inicial-mobile Tela-Inicial-desktop

Tela de lançamentos:

Situação Financeira Saudável:

lançamentos-green

Situação Financeira Apertada:

lançamentos-yellow

Situação Financeira Preocupante:

lançamentos-red

Tela de lançamentos mobile:

lançamentos-mobile

💾 Arquivo salvo em .pdf

lançamentos-pdf