Uma ferramenta de linha de comando para ajudar estudantes a planejar sua grade horária e matrícula em disciplinas.
- Carrega dados de disciplinas de um arquivo CSV ou de uma planilha do Google
- Permite buscar disciplinas por código, nome ou horário
- Detecta automaticamente conflitos de horário
- Exibe a grade horária semanal das disciplinas selecionadas
- Salva suas seleções para uso posterior
- Suporte a busca aproximada por nome de disciplinas
- Permite adicionar e remover disciplinas do cronograma
- Clone ou baixe este repositório
- Instale as dependências:
python -m venv env
# No Linux/MacOS:
source ./env/bin/activate
# No Windows:
.\env\Scripts\activate.ps1pip install -r requirements.txtExecute o programa com o comando:
./planner.py <comando> [opções]Use -h/--help no comando principal ou em qualquer subcomando para ver opções detalhadas:
./planner.py -h
./planner.py <comando> -hBaixa dados de disciplinas do SecGrad (planilha Google publicada em formato "pubhtml") e formata como CSV.
Uso:
./planner.py download <url> [--output <arquivo>]Opções:
<url>: URL da planilha.--output,-o: arquivo CSV de saída (padrão: disciplinas.csv).
Lista todas as disciplinas a partir do CSV.
Uso:
./planner.py list [--csv <arquivo>]Busca disciplinas por código, nome ou horário.
Uso:
./planner.py search [--csv <arquivo>] <tipo> <valor>Tipos:
code <codigo_da_disciplina>: busca por código exato da disciplina.name <nome ...>: busca aproximada por nome.time <codigo_de_horário>: busca por código de horário SIGAA (ex.: 2M123).
Exemplos:
./planner.py search -c disciplinas.csv code IF688
./planner.py search -c disciplinas.csv name "Teo.Implemen."
./planner.py search -c disciplinas.csv time 3T123Adiciona uma disciplina ao cronograma (por padrão, salva em selecoes.json). Suporta adicionar por código ou por nome (busca aproximada).
Uso:
./planner.py add [--csv <arquivo>] [--savefile <arquivo>] <tipo> <valor>Tipos:
code <codigo_da_disiciplina>: adiciona a turma correspondente ao código.name <nome...>: busca aproximada por nome; se houver múltiplos resultados, especifique por código.
Exemplos:
./planner.py add -c disciplinas.csv -s selecoes.json code CIN0132
./planner.py add -c disciplinas.csv name "Matemática Discreta"Remove uma disciplina selecionada do cronograma. Atualmente só há remoção por código. Se houver múltiplas turmas selecionadas para o mesmo código, o comando lista as turmas para que você especifique a desejada.
Uso:
./planner.py remove [--csv <arquivo>] [--savefile <arquivo>] code <codigo_da_disciplina>Exibe as disciplinas atualmente selecionadas e imprime um cronograma semanal.
Uso:
./planner.py schedule [--csv <arquivo>] [--savefile <arquivo>]Os horários são descritos pelos códigos do SIGAA. Ex.:
2M123: Segunda-feira, Manhã, 1ª, 2ª e 3ª horas4T45: Quarta-feira, Tarde, 4ª e 5ª horas
- Dias:
2= Segunda-feira3= Terça-feira4= Quarta-feira5= Quinta-feira6= Sexta-feira7= Sábado
- Períodos:
M= ManhãT= TardeN= Noite
- Horas:
- Manhã:
1= 06:00 - 06:502= 07:00 - 07:503= 08:00 - 08:504= 09:00 - 09:505= 10:00 - 10:506= 11:00 - 11:50
- Tarde:
1= 12:00 - 12:502= 13:00 - 13:503= 14:00 - 14:504= 15:00 - 15:505= 16:00 - 16:506= 17:00 - 17:50
- Noite:
1= 18:00 - 18:502= 18:50 - 19:403= 19:40 - 20:304= 20:30 - 21:205= 21:20 - 22:106= 22:10 - 23:00
- Manhã: