image

Access unlimited bootcamps and 650+ courses forever

60
%OFF
Article image
Thaís Lotti
Thaís Lotti14/10/2024 15:43
Share

Desenvolvendo o "Track My Habits" com Python: Minha Experiência

    Oi, pessoal! Hoje eu queria compartilhar com vocês um projeto simples que desenvolvi em Python e que me ajudou muito a organizar minha rotina: o Track My Habits. 🌱

    Sempre gostei de acompanhar meus hábitos diários, mas percebi que muitos dos aplicativos disponíveis ou são muito complicados ou têm muitas funcionalidades que eu não precisava. Então, decidi criar uma solução personalizada e, claro, simples de usar!

    Como surgiu a ideia?

    A ideia nasceu de uma necessidade pessoal. Eu queria algo rápido e fácil de acessar, sem depender de conexões constantes com a internet ou aplicativos pesados. E, como estou sempre buscando novos projetos para praticar Python, esse foi o casamento perfeito!

    O que o app faz?

    O Track My Habits permite adicionar novos hábitos para rastrear, marcar quais deles eu completei em um determinado dia e ainda visualizar o histórico de tudo o que foi realizado. A simplicidade era a chave aqui — nada de menus complicados ou configurações difíceis.

    Aqui está a lógica por trás das funcionalidades principais:

    Adicionar hábitos: Eu criei uma função simples para permitir adicionar novos hábitos, como "fazer exercícios" ou "ler por 20 minutos". Esses hábitos são salvos em um arquivo .txt para que o progresso não seja perdido quando o programa for fechado.

    Marcar hábitos concluídos: Uma vez que o hábito foi criado, você pode marcá-lo como concluído. O app grava a data de conclusão em um arquivo separado, que funciona como um histórico.

    Visualizar o progresso: Para acompanhar como eu estava indo, criei uma função que lê o arquivo de histórico e me mostra tudo o que já foi concluído até o momento. Isso me dá um incentivo extra para continuar!

    Como foi o desenvolvimento?

    O desenvolvimento foi bem tranquilo, e eu consegui praticar algumas habilidades básicas, como manipulação de arquivos, listas e funções em Python. Uma das partes mais legais foi implementar o registro de datas com a biblioteca datetime, que ajuda a organizar o histórico de forma clara.

    Aqui está o código completo do projeto, que você pode personalizar e expandir de acordo com suas necessidades (deixei alguns comentários para que vocês possam entender um pouco melhor cada parte):

    from datetime import datetime
    
    # Função para carregar os hábitos do arquivo
    def carregar_habitos():
      try:
          with open('habitos.txt', 'r') as arquivo:
              habitos = [linha.strip() for linha in arquivo.readlines()]
      except FileNotFoundError:
          habitos = []
      return habitos
    
    # Função para salvar os hábitos no arquivo
    def salvar_habitos(habitos):
      with open('habitos.txt', 'w') as arquivo:
          for habito in habitos:
              arquivo.write(habito + '\n')
    
    # Função para adicionar novos hábitos
    def adicionar_habito(habitos):
      novo_habito = input("Digite o novo hábito que deseja rastrear: ")
      habitos.append(novo_habito)
      salvar_habitos(habitos)
      print(f'Hábito "{novo_habito}" adicionado com sucesso!')
    
    # Função para marcar hábitos como concluídos
    def marcar_habito(habitos):
      for i, habito in enumerate(habitos):
          print(f'{i + 1}. {habito}')
      escolha = int(input("Selecione o número do hábito concluído hoje: ")) - 1
      
      with open('historico.txt', 'a') as historico:
          historico.write(f'{habitos[escolha]} - concluído no dia {obter_data()}\n')
    
      print(f'Hábito "{habitos[escolha]}" marcado como concluído hoje!')
    
    # Função para visualizar o histórico de hábitos concluídos
    def visualizar_historico():
      try:
          with open('historico.txt', 'r') as historico:
              print(historico.read())
      except FileNotFoundError:
          print("Nenhum histórico encontrado.")
    
    # Função utilitária para obter a data atual
    def obter_data():
      return datetime.now().strftime('%d/%m/%Y')
    
    # Função principal do menu
    def exibir_menu():
      habitos = carregar_habitos()
      while True:
          print("\n1. Adicionar hábito\n2. Marcar hábito como concluído\n3. Visualizar histórico\n4. Sair")
          escolha = input("Escolha uma opção: ")
    
          if escolha == '1':
              adicionar_habito(habitos)
          elif escolha == '2':
              marcar_habito(habitos)
          elif escolha == '3':
              visualizar_historico()
          elif escolha == '4':
              print("Saindo do programa. Até a próxima!")
              break
          else:
              print("Opção inválida! Tente novamente.")
    
    if __name__ == '__main__':
      exibir_menu()
    

    O que eu aprendi com isso?

    Além de me ajudar na minha rotina, esse projeto foi uma ótima oportunidade para reforçar alguns conceitos básicos e pensar em maneiras de melhorar a usabilidade. Como a ideia era um app simples, a experiência foi focada em funcionalidades essenciais, mas também me deu várias ideias para futuras melhorias.

    Próximos Passos

    Estou pensando em expandir o Track My Habits adicionando uma interface gráfica com Tkinter, o que tornaria o uso ainda mais intuitivo. Além disso, poderia incluir gráficos para visualizar o progresso ao longo do tempo, o que seria bem legal! Se você também está começando com Python e quer um projeto simples para praticar, recomendo muito tentar algo parecido! Qualquer dúvida ou sugestão, deixe um comentário. 😄

    Share
    Comments (3)

    GA

    Gustavo Avelar - 15/10/2024 06:47

    Muito bom mesmo Thaís!

    Colocar em modo gráfico vai ficar ainda melhor, gostei muito da sua ideia, parabéns!!

    Kyska Harrington
    Kyska Harrington - 14/10/2024 18:30

    Parabens, gostei muito da ideia!!!!

    Leonardo Pereira
    Leonardo Pereira - 14/10/2024 18:01

    Bem legal Thaís, parabéns!