Inspiration
Our inspiration are from our own struggle while learning a subject in school and university. Teachers often generalize their style and pace when teaching their student
What it does
Personal Learning turns a learner’s goal into a curriculum they can review and revise before starting. It organizes learning into Beginner, Intermediate and Advanced modules, then teaches one lesson at a time.
Learners can add references, describe where they struggle and choose a teaching style. They can ask follow-up questions, attempt practice exercises, receive feedback and revisit previous lessons and tests. A Cramming mode helps prioritize topics when an exam or presentation is approaching.
The app also includes accounts, saved learning history, a reference Library and downloadable checkpoints.
How we built it
We built the backend with Python and Starlette, with SQLite for accounts, learning progress and usage records. The frontend uses HTML, CSS and JavaScript, with Markdown and KaTeX for code and mathematical expressions.
NVIDIA Nemotron, accessed through Nebius Token Factory, generates curricula, lessons, practice exercises and feedback. Structured response schemas help the app process those outputs.
We deployed the app on Hugging Face Spaces and added a GitHub Actions workflow to sync updates from our main branch. We also implemented optional backups to a private Hugging Face Dataset.
Challenges we ran into
One major challenge was handling inconsistent AI responses. Generated curricula sometimes contained conflicting module assignments, missing progression levels or incorrect formatting. Code examples could appear as ordinary paragraphs, while mathematical notation needed careful rendering.
We also learned that validation can become too restrictive. A language detector sometimes misclassified short English scientific titles and blocked valid curricula. We removed that blocking behavior while keeping language preferences in the AI instructions.
Other challenges included preserving learner data across hosting restarts and managing token limits, response times and API costs. Accomplishments that we're proud of
Accomplishments that we're proud of
We brought curriculum planning, lessons, follow-up conversations, practice and saved progress into one working application.
We are proud of making the learning experience adjustable without putting every setting on the screen at once. We also built offline regression tests that helped us catch failures without repeatedly spending inference credits.
Most importantly, we turned an idea based on our own learning difficulties into a hosted prototype people can try.
What we learned
We learned that building an AI tutor requires more than connecting a chat interface to a model. The application must preserve context, organize progression, handle unreliable responses and give learners useful ways to recover when something fails.
We also learned to balance validation with flexibility, distinguish automated tests from real teaching-quality evaluation and treat clear interface design as part of the learning experience.
What's next for personal-learning
Our next priority is testing with learners and improving the quality and relevance of generated exercises. We want to understand whether explanations help people solve new problems independently, rather than simply follow an example.
We also plan to improve source grounding, strengthen progress-based practice and review, and make hosted storage more reliable. Longer term, we would like to expand audio and video reference support and explore voice conversations while keeping costs manageable.
Built With
- css
- javascript
- python
- streamlit
Log in or sign up for Devpost to join the conversation.