Project · Service
StudyPlatform: free tutoring that kept going when the volunteers left
I used to tutor in a volunteer program that shut down when it ran out of volunteers. The students still needed help, so I started a free tutoring platform that pairs students with tutors, and I kept tutoring through it myself. Over time I also built the study website, now called Sage, that students use between sessions, in English and Spanish.
- Role
- Founder & Tutor
- When
- Jun 2025 to present
- Live
- studyplatform.myrondomain.com
The problem
Private tutoring is expensive, and the free option in my area depended on volunteers showing up. When enough of them stopped coming, the program closed and its students lost their sessions.
A tutor can only be in one place for an hour at a time. Most forgetting happens in the days between sessions, when nobody is checking in.
Who it's for
Students who can't pay for tutoring, including students who are more comfortable reading in Spanish than in English, and students who don't always have a reliable internet connection at home.
What I did
The first part was the service itself. I matched students who asked for help with tutors and tutored students myself. That work is where my 260+ service hours come from.
The second part was software for the time between sessions. On Sage, a student pastes a topic or their own class notes, and the site turns it into a short lesson, flashcards and a quiz. Each morning it builds a small study plan from the cards that are due and the topics the student keeps getting wrong.

The interface can be switched to Spanish, and several of the course sets have Spanish versions. For students who are behind in math, there is an Algebra catch-up track that starts with a 54-question diagnostic, written in both languages, to find which earlier skills are missing.
I also added features for students with less access: a study pack that can be downloaded and used offline, a way to photograph a paper worksheet and turn it into text, read-aloud, adjustable text size, and a button to ask for help from a person.

What happened
The tutoring has run since June 2025, and I have logged more than 260 service hours. The website is deployed and free to use. Its course material is still uneven: some of the 23 AP courses have Spanish versions and some do not yet.
Under the hood
Stack. Python with FastAPI, PostgreSQL (SQLAlchemy and Alembic migrations), and a Next.js, TypeScript and Tailwind frontend, deployed with Docker. AI calls go through OpenRouter using provider routing that does not retain student data.
Learning engine. Flashcard scheduling uses the SM-2 spaced-repetition algorithm. Mastery per topic is an exponentially weighted moving average (EWMA) of recent answers, which feeds the adaptive daily plan. The tutor mode is Socratic: it asks guiding questions instead of giving the answer. These pieces have unit tests.
Search over notes. Uploaded documents are embedded and stored in Qdrant, a vector database, so lessons and answers can cite the student's own material (retrieval-augmented generation, or RAG). Prompts are Jinja2 templates whose output is checked against a JSON schema before it reaches the page.
Content. 23 AP course seeds plus intro courses as JSON files, with Spanish versions for several. The Algebra diagnostic has 54 bilingual questions across 5 prerequisite skills.
Testing. 44 test files across unit, integration and end-to-end tests, run in continuous integration on every change.
Credit. A second contributor on GitHub, will_bit, built the document search pipeline, the test and CI setup, and the first version of the frontend. I wrote the learning engine, the course content, the bilingual and accessibility features, and most of the rest.