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. 😄