Aplicação desktop local de produtividade, 100% offline, em Python + CustomTkinter + SQLite. Esquema visual laranja (#E8670A) e branco.
- Autenticação multiusuário com hash SHA-256.
- Página principal: calendário mensal unificado com pílulas coloridas para compromissos, lembretes com data, férias e treinamentos.
- Agenda Semanal: visão de 7 colunas, validação de conflito de horário.
- Importantes: notas livres organizadas por categoria (auto-complete), busca textual.
- Férias: cadastro de colaboradores, agrupamento por status (Em férias agora / Vencendo em ≤30 dias / Histórico), filtro por setor.
- Treinamentos: agrupamento por status (Em andamento / Agendados / Concluídos recentes / Histórico).
- Lembretes: ativos/arquivados, opcionalmente com data (aparecem no calendário).
- Documentos: armazena dados textuais sensíveis com máscara visual
••••••e botão para revelar. - Campo Livre: editor de rascunhos com auto-save (debounce 2s).
- Notificações desktop (via
plyer) configuráveis por compromisso. - Backup: exportar / importar arquivo
agenda.dbpela sidebar. - Contexto Profissional / Pessoal com seletor global na topbar.
- Tema claro / escuro.
- Idioma: português-BR fixo (meses, dias, datas dd/mm/aaaa).
O banco SQLite fica em:
- Windows:
%APPDATA%\TaskPad\agenda.db - Outros SOs:
~/.taskpad/agenda.db
A pasta é criada automaticamente na primeira execução.
pip install -r requirements.txt
python main.pyPython 3.10+ é necessário.
No login há o link "Esqueci minha senha". Informe o usuário, a senha
mestra de administração e uma nova senha. A senha mestra padrão é
q1w2e3r45t (definida em utils/auth_constants.py).
⚠ A senha mestra está hardcoded no código-fonte. Decompilação revela a constante. Para trocá-la, edite
_MASTER_PLAINemutils/auth_constants.pye recompile/redistribua.
- Exportar: rodapé da sidebar → "⬆ Exportar backup" → escolha o
destino. Arquivo é nomeado
agenda_backup_AAAAMMDD.db. - Importar: rodapé da sidebar → "⬇ Importar backup". O arquivo
passa por uma validação (precisa conter as tabelas do TaskPad). Se
válido, substitui o
agenda.dbatual e a aplicação retorna ao login.
pip install pyinstaller
pyinstaller --onefile --windowed --name TaskPad main.pyO executável fica em dist\TaskPad.exe. O banco continua sendo criado
em %APPDATA%\TaskPad\agenda.db.
TaskPad/
├── main.py
├── requirements.txt
├── README.md
├── database/ # camada de persistência
├── modules/ # 8 telas principais
├── components/ # login, sidebar, topbar, modais, drawer
├── utils/ # paths, tema, locale, notifier, auth_constants
└── assets/ # vazia (placeholders)
- Compromissos validam conflito de horário cruzando contextos (Profissional vs Pessoal). O usuário pode confirmar e salvar mesmo assim com um clique extra.
- Os módulos Férias e Treinamentos são sempre Profissionais (ignoram o seletor da topbar).
- Os valores de Documentos ficam armazenados em texto no SQLite — não há criptografia. A máscara é apenas visual.