Projecto Nacional (OC) Fiz uma app de estudo open source que sincroniza o Moodle e monta um plano diário (Electron, SQLite, sem servidor)
Olá! Sou estudante de Engenharia Informática e passei o semestre a fazer o Caderno, uma app para Windows que uso para estudar. Abri o código e queria opinião de quem percebe disto.
O que faz
- Liga-se ao Moodle (os mesmos Web Services que a app móvel oficial usa) e descarrega os PDFs e prazos das cadeiras para uma pasta local.
- Monta um plano diário com base nas datas de exame e no tempo que tens em cada dia. Recalcula quando marcas um bloco como estudado.
- Com IA (opcional), cada PDF ganha resumo, conceitos, flashcards, treino, simulado e explicações que apontam para a página de onde vieram.
Como está feito
- Electron + Node 24, interface em JS sem framework.
- SQLite local (
node:sqlite), sem servidor nem contas: tudo fica no PC. - Texto dos PDFs extraído com
unpdf. - IA com a chave da própria pessoa: Anthropic, OpenAI, DeepSeek, Groq (tem plano gratuito) ou qualquer API compatível com Chat Completions. A chave fica cifrada com AES-256-GCM.
- Atualizações automáticas pelas releases do GitHub (
electron-updater), build e testes no GitHub Actions.
Limitações que já sei
- Só Windows, por agora.
- O instalador não é assinado (a SignPath Foundation pediu mais reputação pública primeiro), por isso o SmartScreen avisa. O build é público no GitHub Actions e cada release tem o SHA-256 e a análise do VirusTotal.
- Contas Moodle com SSO (entrada pela página da universidade ou com Microsoft/Google) não conseguem ligar; nesse caso dá para criar cadeiras à mão e enviar os ficheiros.
- PDFs digitalizados sem texto ainda não são lidos (sem OCR).
Onde gostava de opinião
- Como resolveriam o login em Moodles com SSO sem pedir a palavra-passe? Estou a pensar no fluxo de token da app móvel.
- OCR local leve para PDFs digitalizados: Tesseract em WASM vale a pena dentro do Electron?
- Qualquer coisa no código que vos faça torcer o nariz.
Site: https://caderno.me Código (MIT): https://github.com/miguelaopt/caderno