/Projeto-IF968-2019

College project conclusion: Python Todo script with Tkinter GUI without POO (only functions) and Telegram bot.

Primary LanguagePython

TODO.TXT - Projeto IF968, CIn UFPE

Um Shell Script simples para admnistração de seu arquivo todo.txt.

"O objetivo deste trabalho é praticar a escrita de funções e programas em Python, em particular, programas envolvendo strings, vetores, listas, tuplas, dicionários e arquivos. Além disso, é a primeira oportunidade que os alunos têm, no contexto do curso de Sistemas de Informação, de desenvolver um sistema não-trivial, ainda que simples." ~Fernando Castor.

Leia sobre o projeto para saber o desenvolvimento.

Obtenção do Script

Download

Download direto pelo botão verde Clone or Download ou abra o VSCode, pressione Ctrl+Shift+P e digite "Git clone" e cole https://github.com/Tiodonilo/Projeto-IF968-2019.git para salvar em um repositório local.

Instruções e Comandos

# Abra o Shell: CMD/Bash... Dentro do repositório local.
# Tente Python, Python3 ou py dependendo da versão e configuração do python!
# Para testar abra o Prompt de comando e digite python se abrir o 2.6 ou dar erro, então tente python3.
# Se der erro de syntax ou quaisquer outras circunstâncias, tente py ou verifique se o python está no path.

Comandos

Comando adicionar: a

>> python agenda.py a (data) (hora) (prioridade) (descrição) (contexto) (projeto)

NOTA: Sempre nessa ordem, a única informação obrigatória é a descrição, que é a informação da tarefa.

NOTA2: Pode adicionar mais de uma tarefa colocando " ~~ " entre elas, sem as aspas.

  • Data: A data referente a criação ou objetivo da tarefa, pode ser referenciado no comando Listar.
    • Formato 1: DDMMAAAA, sem espaço, apenas números.
    • Formato 2: "ontem" ou "hoje" ou "amanhã", sempre minúsculo, sem aspas.
  • Hora: A hora referente a criação ou objetivo da tarefa, pode ser referenciado no comando Listar.
    • Formato 1: HHMM, sem espaço, apenas números.
    • Formato 2: "agora", sempre minúsculo, sem aspas.
  • Prioridade: Quão importante é a tarefa, podem ser referenciados e serão anexados no início do comando Listar.
    • Formato 1: (A) - (Z), com ou sem parênteses.
    • Formato 2: (a) - (z), com ou sem parênteses.
  • Contexto: Contexto da tarefa para ser referenciado depois no comando Listar, formato: @Contexto.
  • Projeto: Projeto relacionado à tarefa, para ser referenciado no comando Listar, formato: +Projeto.

Comando listar: l

>> python agenda.py l (data, hora, prioridade, contexto ou projeto, opcional.)

NOTA: Comando L, sempre minúsculo. Quando sozinho irá listar todos os itens do arquivo todo.txt

Serão usados os mesmos formatos do comando adicionar, se o contexto/projeto estiver sem o sinal, aparecerá ambos.

Comando remover: r

>> python agenda.py r (index da tarefa)
Irá remover a tarefa do todo.txt, pode vários indices separados por espaço, números inteiros, sem parênteses.

Comando fazer: f

>> python agenda.py f (index da tarefa)
Irá retirar a tarefa do todo.txt e move-lo para o done.txt. Mesmas regras do comando R.

Comando prioridade: p

>> python agenda.py p (prioridade) (indice da tarefa)
Irá adicionar ou alterar a prioridade de uma determinada tarefa. Mesmas regras do comando R e A, um por vez.

Comando help: h

>> python agenda.py h
Irá mostrar o formato do comando A. Não recebe parâmetros.

Comando interface: i

>> python agenda.py i
Irá mostrar mostrar uma interface para listar/filtrar ou fazer/remover vários de uma vez. Não recebe parâmetros.

Novidades

  • Projeto funcional.

  • Filtragem dinâmica data/hora/prioridade... @Cont ou +Proj ou Cont/Proj.

  • README.md atualizado!

  • Help adicionado aos comandos, e várias adições e modificações!

  • Modularização da datação (ontem, hoje, amanhã, agora), programa principal, e outros.

  • Criação de uma interface gráfica funcional, com ícone próprio.

  • Correção de bugs na interface, datação, programa e afins.

  • Possibilidade de adicionar/deletar/finalizar várias tarefas em uma só linha no Shell e adicionar mais de um projeto/pesquisa por comando!

  • Linhas de código mais enxutas com Docstrings!

  • Interface completamente compatível com linux.

  • Enviando os dados por e-mail!

  • Compatibilidade com um bot no Telegram!

Contribuidores

José Danilo, Centro de Informática, UFPE.