Inspiration

Every student eventually hits the same wall: it's midnight, the material makes no sense, and there's no teacher left to ask. Tutoring is expensive, most schools don't have enough teachers per subject, and "just look it up" doesn't help when what you actually need is someone to explain the why, check if you really understood it, and tell you specifically what you got wrong. But it's not just students who are stretched thin teachers are too, spending hours writing lesson plans, building tests, and manually grading the same recurring mistakes over and over. We wanted DROP to fix both sides of the classroom at once: give students a teacher that's always available, and give teachers a system that builds and grades a full classroom for them.

What it does

For students: give DROP a topic or upload a document, and it architects a real course around it sized honestly to how much material is actually there, not padded out for show. Every lesson comes with a full explanation, worked examples, real-world applications, common mistakes to watch for, practice questions, and a quiz. Finish the course, and DROP generates a full exam covering everything. Get an answer wrong, and it doesn't just mark it wrong, it diagnoses why: a calculation slip, a misunderstood concept, a forgotten formula, or carelessness and tells you exactly what to review. An AI tutor is always there for follow-up questions. For teachers: upload a syllabus (or just describe the subject, duration, and grade level) and DROP generates an entire multi-week classroom in one go every week's lessons, a weekly test, a midterm, and a final exam, all AI-authored and immediately live. Students join with a simple code. From there, the teacher gets a real command center: a live analytics dashboard with class averages, completion rates, and AI-generated insights ("these three students are stalling on the same concept worth a re-teach"), a per-student drill-down showing their full submission history and misconception patterns over time, one-click auto-grading powered by the same understanding engine used on the student side, and a classroom announcements/messaging system to keep everyone in the loop. It's the difference between a teacher spending a weekend building a course and getting one generated before their coffee's cold with the grading workload gone too.

How we built it

DROP runs on Flask, PostgreSQL, and SQLAlchemy, with Groq powering every AI feature through one shared engine course planning, lesson authoring, the AI tutor, auto-grading, misconception detection, and even the analytics insights teachers see on their dashboard. Course generation happens in stages plan, then each week, then exams instead of one giant call, both to stay under free-tier rate limits and so a single failed step doesn't take the whole course down with it. The teacher and student flows share the exact same underlying content pipeline, just routed differently: a teacher's classroom persists into structured Week/Lesson/Assignment rows for a whole cohort to move through together, while a student's solo course stays lightweight and personal. The whole thing is deployed on Render

Challenges we ran into

Rate limits were the first real fight a full multi-week course with genuinely thorough content blows past an 8,000-token-per-minute ceiling in a single call, which forced the plan → week → exam architecture instead of naive one-shot generation. We also hit a nasty dependency conflict between the OpenAI SDK and httpx that silently broke course generation in production with a cryptic proxies argument error the kind of bug that only shows up after deploy, not in local testing. The bigger constraint is infrastructure, not code. We're running on Render's free tier, and it shows: the Postgres instance is on a free plan that expires on its own timeline, and the web service spins down when idle, meaning every course a student generates and every classroom a teacher builds is one billing decision away from disappearing, and every demo after a few idle minutes eats a slow cold-start instead of showing the product at its best. We didn't want to fake a paid setup for the judging period we'd rather be upfront that this is exactly the infrastructure gap that turns a working prototype into something people can actually depend on for a real class.

Accomplishments that we're proud of

Getting the misconception-diagnosis engine working end-to-end and reusing it identically across both the student's solo practice and the teacher's classroom grading feels like the core of what makes DROP different from a generic AI Q&A wrapper. We're also proud that a teacher can go from "I have a syllabus" to a fully staffed, fully assessed multi-week classroom in one submission, with real per-student analytics waiting on the other side, not just a chatbot bolted onto a dashboard.

What we learned

Building reliable AI features is mostly an engineering problem, not a prompting problem token budgets, provider rate limits, and dependency versioning caused more real breakage than getting the model to produce good content. Designing for two very different users (a student learning alone vs. a teacher running a class of dozens) on one shared AI core also taught us how much a single well-designed pipeline can be repurposed, rather than needing two separate systems.

What's next for Drop

The most immediate need is simply keeping DROP alive and fast: moving off Render's free-tier Postgres (which expires) and free-tier web service (which sleeps and cold-starts) onto a paid tier so neither students nor teachers lose course data, and so nobody hits a 30-second wake-up delay mid-class. Beyond infrastructure, we want to expand the misconception engine into class-wide pattern detection so teachers can see not just "who's struggling" but "what concept the whole class is misunderstanding," add a spaced-repetition layer that brings back exactly what each student got wrong, and open collaborative study groups on the student side so solo learners aren't studying quite so alone.

Share this project:

Updates

Submission history