Skip to content

Repository files navigation

Estudar

Estudar

English · Português

Study to remember on exam day — not just on the day you study.

Estudar: the Today tab

npm License: MIT PWA Cloudflare Workers Supabase Tests Ask DeepWiki

Buy me a coffee

Documentation · Get started · The science · Architecture


What it is

An open-source study system for university students. It plans your week with AI, guides each session in focus blocks and measures what you know unaided — because research shows that hours studied and performance during practice are poor signals of learning (Roediger & Karpicke, 2006; Rohrer & Taylor, 2007; Bastani et al.).

Features

  • AI weekly plan — built from your subjects, exam dates and free hours, around retrieval, spacing and interleaving; a fixed scientific check flags what to adjust. Gemini, Claude or any OpenAI-compatible API.
  • Focus mode — full-screen 40+10 blocks, screen kept awake, a timer that survives the phone killing the app.
  • Block log — attempts, confidence and help used are recorded before checking; the score comes after.
  • Unaided mastery — only from closed-book tests on paper; assisted practice is shown separately, with a reliance-on-help warning.
  • Calibration — subjects where your confidence fools you rise to the top.
  • Degree record — curriculum import from a photo, ECTS-weighted average, the grade you need to keep it, weighted assessments with minimum grades, resits and special exam periods, prerequisites, semester report.
  • In-app setup — keys, database tables and publishing to Cloudflare from one screen, with a status dot per service.
  • Sync and offline — phone ↔ computer in real time; installable PWA; JSON backup.
  • English and Portuguese — interface, server messages and AI plans in the language you choose (Account → Language).
Unaided mastery Block log Semester report Server & keys

Quick start

npx estudar        # opens http://localhost:8787 (needs Node.js 20+)

In the app: Account → Server & keys → paste your Supabase details and AI key → Test → Save → Connect Cloudflare account → Publish. Keys are stored in ~/.estudar. Full guide in docs/en/guide/installation.md.

With nothing configured, the app already works in local mode (data stays in the browser).

How it's built

Part Technology
App PWA with no build step — HTML, CSS, ES modules (public/)
Server One Cloudflare Worker serves the app and the API; npm start runs the same API locally
Data Supabase: sign-in with an emailed code, one JSON document per user with RLS, Realtime
AI Configurable; the key only ever lives on the server
Rules learning.js and curriculum.js, pure functions with mutation-verified tests
Languages i18n.js + one dictionary per language; a test fails if any string is untranslated

More in Architecture and Data model.

Development

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

npm start            # app + API + setup screen
npm test             # learning, degree-record and translation rules
npm run check        # build the Worker without publishing

cd docs
npm install
npm run dev          # documentation site
npm run screenshots  # regenerate screenshots (both languages) with a fictional student
npm run build        # build and check links and anchors

Contributing

Issues and pull requests are welcome — see the contributing guide. Before changing a learning rule, read the principles: they are invariants, and each one has tests.

Support

Estudar is free and will stay free. If it saved you time — or a module — a coffee helps keep it going.

Buy me a coffee

QR code for buymeacoffee.com/ryanbarbosa

Star History

Star History Chart

License

MIT © 2026 Ryan Barbosa

Co-Authored-By: Claude Opus 5.5

About

Open-source study system built on learning science: AI weekly plan, focus mode, closed-book tests and a degree record. PT/EN · npx estudar

Topics

Resources

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Used by

Contributors

Languages