Code Monkey home page Code Monkey logo

boo's Introduction

Boo - Automatizador de Gastos

Boo tem a proposta de:

  • Ajudar no balanço financeira mensal
  • Agilizar o processo de preenchimento de planilhas
  • Categorizar suas despesas e rendas

Como utilizar

  • O usuário primeiramente informará qual foi seu balanço geral do último mês ou da sua última visita ao aplicativo.

    • Esse balanço é o saldo total do mês anterior, podendo ser representados de forma negativa ou positiva
    • Os números decimais só podem ser representados com "."
  • Após isso o usuário será redirecionado para as opções de adicionar rendas ou despesas

    • O usuário só deve colocar valores positivos independente da opção
    • Os números decimais só podem ser representados com "."
  • Será criada uma planilha do tipo CSV na Home do usuário

Visão Geral

  • Interface Inicial

                              Bem vindo(a) ao Boo
                    
    
      1. Despesas Imediatas
    
      2. Plano de Receita Mensal
    
      3. Plano de Despesas Mensal
    
    
      Digite o item que deseja acessar
    
  • Aqui o usuário irá adicionar despesas emergenciais ou que não podem ser contabilizados no início do mês

                          Despesas Imediatas
                    
    
    
      Estas despesas estão fora do seu planejamento de despesas mensal
    
      Gasto:
    
      Tipo de Gasto:
    
      Valor:
    
      Deseja adicionar outro gasto? [Y/N]
    
  • Este é o espaço para organizar suas rendas mensais e fazer seu balanceamento mensal

                          Plano de Receitas Mensal
                  
    
    
    
    Aqui você vai registar seu ganho mensal
    
    
    Renda fixa é o dinheiro que você tem disponível no início do mês
    Renda extra é o dinheiro que você ganha exporadicamente durante o mês
    Poupança é sua meta de economia no mês
    
    
    Renda Fixa
    
    Renda Extra
    
    
    Digite o item que deseja acessar
    
                       
                      Renda Fixa
                       
    
    Renda:
    
    Valor:
    
    
    Deseja adicionar outra renda? [Y/N]
    
    
                       
                      Renda Extra
                       
    
    Renda:
    
    Valor:
    
    
    Deseja adicionar outra renda? [Y/N]
    
  • Este é o espaço para organizar suas despesas mensais e fazer seu balanceamento mensal

                  Plano de Despesas Mensal
                 
    
    
     Despesas fixas são despesas que terá durante um grande período de tempo como água, luz, entre outros...
     Outras despesas são gastos que você sabe que terá no mês mas são variáveis como supermercado, transporte, lazer, educação...
    
    
     1. Despesas Fixas
    
     2. Outras Despesas
    
     3. Poupança
    
    
     Digite o item que deseja acessar
    
  • Aqui o usuário irá preencher as informações de despesas fixas, como aluguel, luz, água, internet e afins

                     Despesas Fixas
                      
    
     Gasto:
    
     Valor:
    
     Vencimento:
    
     Deseja adicionar outro gasto? [Y/N]
    
  • Aqui o usuário irá adicionar as despesas que são variáveis mas sabe que terá no mês como, alimentação, transporte, material de limpeza, entretenimento e afins

                      Outras Despesas
                       
    
     Tipos de tag
    
     Despesas da Vida: Supermercado, materiais de limpeza, roupas essenciais, medicamentos, transportes...
     Cultura e Educação: Cursos e treinamento, ingressos para eventos culturais, livros...
     Entretenimento: Cinema, saída com os amigos, viagens curtas, cosméticos...
     Outros: Despesas que não são incluídos nas outras categorias
    
    
     Despesa:
    
     Tag:
    
     Valor:
    
    
     Deseja adicionar outra despesa? [Y/N]
    
  • Aqui o usuário irá especificar quanto está guardando no mês para alcancar uma meta

                   Poupança
                    
    
     Meta:
    
     Valor:
    
    
     Deseja adicionar outra meta? [Y/N]
    

boo's People

Contributors

sunlower avatar

Watchers

 avatar

boo's Issues

Repetição de código

Eu vi que em algumas partes do código são utilizadas estruturas de validação e de cálculos iguais ou muito parecidas. Como por exemplo:

        if renda == "" {
            print("\n\tNenhum campo pode ficar em branco, preencha novamente")
            rExtra()
        }
        media += Double(valor!)
        media = round(media * 100) / 100.0

        UserDefaults.standard.set(media, forKey: "media")
        UserDefaults.standard.synchronize()
        
        let lista: String = ("\(renda.capitalized), \(tipo), \(tag), \( valor!), \(formattedDate),,\(media)")
        writeFile(lista: lista)

Essa estrutura se repete em praticamente todos os arquivos .swift da pasta Functions. Nesse cenário, seria interessante transformar isso em uma outra função e utilizar os parâmetros para lidar com as mudanças que a estrutura pode ter.

Essa alteração vai facilitar em possíveis mudanças de código. Por exemplo, se fosse preciso adicionar uma nova mensagem, não seria necessário modificar todos os arquivos para isso, apenas um trecho único de código.

Duvidas sobre o programa

Quando abri o programa no Xcode ele não estava rodando (como foi relatada em outra issue), mas o Xcode sugeriu algumas correções e, após permitir que ele as fizessem, o código rodou. Porém não sei se ele está funcionando corretamente, pois as informações que eu coloco não estão aparecendo, ou sendo salvas :( Se possível queria conversar com você um pouco mais sobre o seu programa para que eu pudesse entendê-lo melhor :)

De qualquer forma parabéns pelo programa! O código me parece muito bem feito e organizado

Comentários.

Eae Ieda 🙃,

Gostei muito do seu programinha, funcionou bem aqui. Um conselho que posso lhe dar é simplesmente evitar de usar comentários tao extensos no código. Uma boa opção é coloca-lo em um Gist como forma de documentar para si ou até mesmo como parte do CBL, no mais você está de parabéns :)

O link para o Gist : https://gist.github.com

Sugestão de Ordem inicial

Adorei seu programa está bastante completo, incrível mesmo! Gostaria de dar uma sugestão no começo do código ele já pergunta o balanço geral do mês passado, talvez seria mais interessante começar com o Bem vindo e explicar um pouquinho do que o programa faz nesse começo.

desacoplamento

Boo/Boo/csvCR.swift

Lines 16 to 24 in ec1a33c

if fileVerify() {
do {
let handle = try FileHandle(forWritingTo: URL(fileURLWithPath: filePath))
handle.seekToEndOfFile()
handle.write("Nome, Tipo, Tag, Valor, Data,,Total\n".data(using: .utf8)!)
handle.closeFile()
} catch {
print(error)
}

Você poderia transformar o conteúdo desse if em uma função para simplificar o entendimento da estrutura do código, então ficaria:

if fileVerify() { 
	function()
}

Sugestão de organização de cód

Oiee Ieda, teu programa ficou muito massa, parabéns! Uma boa dica que tenho pra te sugerir é você fazer todas as functions em um arquivo, acho que é uma boa prática. E outra coisa, pra tentar diminuir as linhas você poderia criar um arquivo de functions só pra telas.
Ou seja criar dois arquivos de function um para os print e outro backend.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.