Skip to content

Instalação ​

Três passos: correr no teu computador, ligar os serviços dentro da app e publicar. Não precisas de editar nenhum ficheiro.

1. Correr no teu computador ​

Precisas do Node.js 20 ou mais recente. Num terminal:

bash
npx estudar

O npx descarrega a versão mais recente e arranca-a; não fica nada instalado globalmente. Se preferires o comando sempre à mão, npm install -g estudar e depois só estudar.

Preferes uma cópia do repositório?

Para mexer no código ou contribuir:

bash
git clone https://github.com/RyanTech00/estudar.git
cd estudar
npm install
npm start

É o mesmo servidor; a diferença é onde ficam as chaves (ver abaixo).

O browser abre em http://localhost:8787. Carrega em Começar na página de apresentação.

Sem mais nada, a app já funciona em modo local: plano, timer, foco, registos e percurso, com os dados guardados só neste browser. Para teres conta, sincronização e IA, continua.

A app abre na língua do browser (português ou inglês). Para mudar, vai a Conta → Idioma.

Porta ocupada?

Se a 8787 estiver em uso, o servidor experimenta a seguinte (8788, 8789…) e mostra o endereço no terminal. Também podes escolher: npx estudar --port 9000.

2. Ligar o Supabase e a IA ​

Na app, abre Conta (o círculo no canto superior direito) → Servidor e chaves. O ecrã tem quatro passos numerados.

Ecrã Servidor e chaves com o estado de cada serviço
O painel de estado: um ponto por serviço. Verde responde, vermelho tem um problema (com a razão), cinzento ainda não está configurado.

Supabase — contas e dados ​

  1. Cria um projeto grátis em supabase.com/dashboard/new.
  2. Em Project Settings → API Keys, copia a chave publishable (ou anon) e, opcionalmente, a secret (ou service_role). O Project URL está em Data API.
  3. Cola-os no passo 1 do ecrã.
  4. Abre Criar as tabelas e configurar o email de login:
    • Automático — cria um token pessoal (sbp_…), cola-o e carrega em Configurar. A app cria as tabelas e as regras de acesso, autoriza os endereços da app e põe o código de 6 dígitos no email de login. O token só é usado nesse momento e nunca é guardado.
    • Manual — copiar o SQL, colá-lo no SQL Editor do Supabase e correr. Depois, em Authentication → Emails → Magic Link, acrescenta {{ .Token }} ao texto do email.

Para que serve a chave secreta?

Só para o limite diário de gerações com IA por pessoa (por defeito 10). Fica apenas no servidor. Sem ela, a app funciona, mas sem limite.

IA — gerar planos ​

Escolhe o fornecedor e cola a chave:

FornecedorOnde obter a chaveModelo por defeito
Gemini (recomendado para começar)aistudio.google.com/apikey — tem nível gratuitogemini-2.5-flash
ClaudeClaude Consoleclaude-opus-5
OpenAI ou compatível (OpenRouter, Groq…)O teu fornecedortens de indicar o modelo; para outros serviços, indica o URL da API

Testar e guardar ​

Testar verifica cada ligação com os valores escritos (sem guardar) e atualiza os pontos de estado. Guardar grava em .dev.vars e recarrega a app. Com o npx estudar, o ficheiro fica na pasta .estudar da tua pasta pessoal (~/.estudar); numa cópia do repositório, fica na pasta do projeto (ignorado pelo git).

3. Publicar no Cloudflare ​

No passo 4, Onde a app corre, escolhes:

  • Neste computador — já está a funcionar, enquanto o terminal com o Estudar estiver aberto.
  • Cloudflare — acesso de qualquer lado:
    1. Ligar conta Cloudflare abre o browser para autorizares o Wrangler.
    2. Publicar no Cloudflare envia a app para um Worker e as chaves como segredos desse Worker. O log aparece no ecrã.
    3. A app fica em https://estudar.<a-tua-conta>.workers.dev e o ponto Cloudflare fica verde.
Secção Onde a app corre com a publicação no Cloudflare
Publicar é um botão. Para mudar chaves mais tarde: npx estudar → Servidor e chaves → Guardar → Publicar de novo.

Primeira vez no Cloudflare Workers?

Se a tua conta ainda não tiver um subdomínio workers.dev, a publicação falha com uma mensagem a explicar. Abre dash.cloudflare.com → Workers & Pages, escolhe um nome e carrega outra vez em Publicar.

4. Instalar no telemóvel ​

Abre o endereço publicado no telemóvel e entra com o teu email (recebes um código de 6 dígitos).

  • Android (Chrome): menu ⋮ → Instalar app.
  • iPhone (Safari): Partilhar → Adicionar ao ecrã principal.

A app abre em ecrã inteiro, funciona offline e sincroniza quando volta a ter rede.

Outras pessoas a usar a tua instalação ​

  • Email: o servidor de email incluído no Supabase só envia para membros da equipa do projeto e tem limites baixos. Para outras pessoas, configura um SMTP próprio em Authentication → Emails → SMTP Settings (por exemplo, Resend, com nível gratuito).
  • Instalação privada: desliga Allow new users to sign up e convida as pessoas em Authentication → Users.
  • Login com Google (opcional): ativa o provider no Supabase (precisa de um OAuth client na Google Cloud) e liga o interruptor no passo 3 do ecrã.

Pela linha de comandos ​

Se preferires não usar o ecrã:

bash
npx wrangler login
npx wrangler deploy
npx wrangler secret put SUPABASE_URL
npx wrangler secret put SUPABASE_ANON_KEY
npx wrangler secret put AI_API_KEY
# opcionais: SUPABASE_SERVICE_KEY, AI_PROVIDER, AI_MODEL, AI_BASE_URL, MAX_PLANS_PER_DAY, AUTH_GOOGLE

A lista completa de variáveis está em Servidor e chaves.

Só ficheiros estáticos ​

A pasta public/ também funciona sozinha (GitHub Pages, Netlify, python -m http.server). Sem a API, a app corre em modo local: sem conta, sem sincronização, sem IA.

Publicado sob a licença MIT.