Public
Registro de treino com persistência em SQLite
fitnesssqlitetreino
Val Town is a collaborative website to build and scale JavaScript apps.
Deploy APIs, crons, & store data – all from the browser, and deployed in milliseconds.

Treino — Registro (Val Town)

Registro de treino de página única, com persistência em SQLite no servidor (Val Town), em vez de localStorage.

Arquivos

  • main.ts — endpoint HTTP: serve o app e expõe as APIs REST do banco.
  • frontend.html — interface (HTML/JS), idêntica ao app original.

APIs

MétodoRotaDescrição
POST/api/sessionsSalva uma sessão {dia, data, timestamp, exercicios}
GET/api/sessions?day=ALista as sessões de um dia
POST/api/lastSalva o último registro de um exercício {exId, kg, reps, data}
GET/api/last/:exIdLê o último registro de um exercício
GET/api/statusContagem de sessões e "últimos" (painel técnico)

As chaves sessao:DIA:timestamp e ultimo:exId que antes viviam no localStorage agora são persistidas nas tabelas sessions e lasts do SQLite. O frontend chama esses endpoints via fetch. O visual, os cinco dias (A–E), o foco muscular, a edição de sessões, a data editável e a exportação/importação de texto (reserva manual) foram mantidos exatamente como no original.

Rede de segurança: backup automático 🔒

Um cron diário (backup-cron.ts) tira um instantâneo completo do banco (sessions + lasts) e grava no blob do projeto como backup/snapshot-<ISO>.json, mantendo os 30 mais recentes (retenção automática).

  • Criar snapshot: backup.tsrunBackup()
  • Listar snapshots: restore.tslistSnapshots()
  • Restaurar: restore.tsrestoreFromBackup(<key>) — repõe sessions e lasts no SQLite. ⚠️ Sobrescreve; só usar em emergência.

O backup é puramente aditivo: ele só lê o banco e grava um snapshot novo; nunca altera as tabelas existentes. O registro atual nunca é perdido por causa do backup.

Agendamento: 40 4 * * * UTC (≈ 01:40 Brasília), próximo em 2026-08-28 04:40 UTC.

Arquivos novos

  • backup.ts — lógica de snapshot
  • backup-cron.ts — cron diário que chama runBackup()
  • restore.ts — recuperação a partir de um snapshot