Dev.to · 8 min read

# Meet Study Sloth: An AI Study Buddy That Takes Care of the Busywork 🦥📚

# Meet Study Sloth: An AI Study Buddy That Takes Care of the Busywork 🦥📚

This is my submission for Hacktoberfest Open-Source AI Challenge Week 3: Slow and Steady. Study Sloth: for the student with 8 units, 4 lab records and 1 night left It's 11:47 PM. Your exam is at 9 AM. You have a 90-minute lecture recording you never rewatched, a PDF called unit3_FINAL_final2.pdf, a lab record due in the morning, and a group chat full of people asking "does anyone have notes?" If that made your stomach drop a little, this post is for you. I built Study Sloth because I've been that student. Sound familiar? 1. The 90-minute recording you will never rewatch. You were in the lecture. You still don't know what was taught. The recording sits in a folder, quietly judging you. 2. Your material lives in six places. Board photos in the gallery, PDFs named unit3_FINAL_final2.pdf, half-written notes in a chat with yourself. And at 1 AM, 40 people ask the group: "does anyone have the Unit 3 notes?" 3. The notes that cost me marks. I once leaned on last-minute AI notes. They were correct, but they weren't what my teacher had taught, so I lost marks for things that weren't wrong, just never taught. (I was too smart to pay attention in class. Lesson learned, painfully.) 4. Flashcards that take longer to make than to study. You spend the whole evening formatting cards, then have no time left to learn a single one. 5. The lab record. Again. And then the viva. The same template every time: rewrite the aim, theory, procedure and conclusion, paste the code and output, fight the formatting. Then the examiner asks, "Why did you use a LEFT JOIN here?" About your own code. "Because it worked" is not an answer. Five problems. One night. Zero chill. So I built the buddy I wanted I went looking for a tool that did all this. Umm, I couldn't find one. So, as the wise developers once said: BUILD IT. ...and that's exactly what I did. Study Sloth is a study workspace that does the setup work, so you can get to the learning sooner. It doesn't learn for you. It turns what you already have into what you need. Here's how it answers each of those: The pain What Study Sloth does The recording you won't rewatch Turns it into a timestamped transcript and notes by unit Material in six places One subject folder per course: syllabus, lectures, PDFs, labs and cards, with PDFs turned into notes with page references Notes that weren't what was taught Works from your lectures and your PDFs, and every point carries a timestamp or page number so you can check it Flashcard-making Generates flashcards, quizzes and likely viva questions in the same step The lab record and the viva Builds a lab manual from your experiment titles, using your real outputs when you have them. Its questions flow into the Study Deck, so you can practise "why did I do this?" It's also the one-night-before-exams buddy for people who work best under pressure (hi, it's me). Just don't make it your only plan. What I Built Organise a course: turn a syllabus into units and topics. Study from PDFs: upload a text-based PDF and get structured notes with page references. Review lectures: turn audio or video into a timestamped transcript, then notes by unit. Practise actively: flashcards, quizzes, and likely viva questions. Prepare lab records: build a manual from your experiment titles. Use your real outputs when you have them. When you don't, the manual can include generated expected outputs, labelled as expected, not yours. Keep revision connected: lab-manual flashcards and quizzes appear in the same Study Deck. There are three ways to use it, and they handle your data differently: Version What it does Where your data goes Local app Everything: lectures, PDFs, labs, study deck Stays on your computer (local Ollama and Whisper) Hosted workspace (Render) The full interface in a browser Text goes to [model provider]; recordings go to Groq for transcription; data is temporary Lightweight notes page PDF or pasted text in, study set out Text goes to [model provider]; nothing is stored Demo Live: - [studysloth.tech]/[www.studysloth.tech] Code: [AaliyaKhan25/Study-Sloth] [https://github.com/AaliyaKhan25/Study-Sloth] Also, do check out my GitHub Profile: [https://github.com/AaliyaKhan25] A note on the live version: on Render's free tier, the filesystem is temporary, so workspaces and uploads can disappear after a restart. It's a demo, not a vault. How I Built It Python, FastAPI, SQLite, and plain HTML, CSS, and JavaScript. Slow work (transcription, long PDFs) runs as background jobs, so the browser shows progress instead of waiting on one long request. Study material: Gemma 4:cloud and Gemma3:4b , through an Ollama-compatible API. The text model and the vision model are separate settings, so either can be swapped by changing one value. Transcription: locally, faster-whisper on the GPU. Hosted, Groq's whisper-large-v3-turbo, because running Whisper on a small Render plan wasn't practical. The trade-off: recordings are sent to Groq, uploads are limited to 25 MB, and quotas may apply. Checkable notes: every point keeps its timestamp or page number. Lab records: you can enter your own outputs, and you confirm and review the record before printing. What Went Wrong (and What I Learned) 1. "New" doesn't mean "compatible." Video uploads failed with TypeError: open() got an unexpected keyword argument 'metadata_errors', even though PyAV was already very recent. Reproducing the exact call showed the installed PyAV rejected the keyword; faster-whisper passed. I pinned a compatible range, added a regression test, and added a CPU fallback for when CUDA is detected, but its libraries are missing. "Upgrade everything" wasn't the fix. 2. The cloud changes what "local" means. Once the app was hosted, labels like "stays on this computer" became untrue, and file paths broke. One Render deploy built fine and then crashed at startup because /var/data wasn't a mounted disk. The app now falls back to temporary storage with a warning, and the hosted page rewrites its labels to say what really happens to your data. 3. Keep visitors' workspaces apart. Hosted visitors get a cookie-based workspace. Python's contextvars don't follow work into worker threads, so I copy the request context into each job. This isn't an account system: there's no sign-in, so treat a workspace as private-ish, not a secure vault. 4. Failures should be loud. An early version swallowed model errors, so a broken job looked like an empty result. Now a failed job shows its real error in the app. The tests cover the awkward paths too: transcription fallback, Groq response handling, a missing disk path, and manually linked cards. All 9 pass locally, which proves those code paths, not that the public deployment is live. How I Used GitHub Copilot I used GitHub Copilot in VS Code while building and debugging, for example, on the PyAV problem, the hosted-service behaviour, tests, and docs. GitHub Actions also ran the tests on every push. Copilot helped build the app; Gemma is the model inside it. They do different jobs. Why Open Innovation Matters Studying shouldn't depend on one closed assistant that you can't inspect, can't run offline, and can't afford when the free plan runs out. Open models let me choose the tool for the job and the hardware. Because the model is just a setting, I could run Gemma locally for privacy and still point the hosted version at a different provider. That also means "open" doesn't mean "everything on one server". Gemma writes the study material and Groq handles hosted transcription, so users should know which service sees what. Being honest about that trade-off is part of building with open tools. The Lazy Payoff I won't invent a "minutes saved" number. [Time one real lecture or PDF and add it: "A 10-minute lecture became unit-wise notes, 8 flashcards and 5 quiz questions in X minutes."]. The aim is fewer blank-page moments: source material in, a first draft of notes and practice out. If you try it, tell me which pain point it fixed for you, and which one it still doesn't. Prize Categories Best Use of Gemma: Gemma 3 4B is the default model for study material. Best Use of a .tech Domain: studysloth.tech [confirm it's live]. It's my first domain, and a .tech one. Thank you, Hacktoberfest and MLH! Best Use of GitHub Copilot: - Lifesaver for me, helped me resolve a hell lot of bugs. TYSM GitHub Copilot Best Use of Render: - My deployment buddy for life , not just Hacktober; Render has always been there Study smarter. Stay curious. Let the Sloth handle the busywork.

This is a summary aggregated from Dev.to. Read the complete article on the original site:

Read full article at Dev.to

More AI & Machine Learning News