Project Story: StudyAI Helper
What inspired me
As a final-year Software Engineering student at Universidade de Ribeirão Preto (UNAERP), I was racing against a tight deadline to complete my complementary activities hours for graduation. I needed just a few more hours, and participating in a hackathon seemed like the perfect way to gain them while building something useful.
What really motivated me was my own daily struggle: long lecture notes, endless summarizing, trying to create good review questions, and never being sure if my self-study answers were correct. I thought: "What if AI could handle this boring part and make studying actually enjoyable and efficient?" The AI for Bharat theme — solving real student problems with accessible, fast AI — fit perfectly. I wanted to build a tool that helps students like me (and many in India and Brazil) study smarter, not harder, especially under time pressure and with limited resources.
What I learned
This was my first time building and submitting a full hackathon project solo, under ~48 hours. I learned a lot:
- Prompt engineering is everything — Small changes in prompts made the difference between "partial" grades on correct MCQ answers and precise binary scoring.
- Streamlit is incredibly powerful for rapid prototyping — I went from idea to interactive app in hours, with session state, dynamic UI (checkboxes/radio/text areas) and secrets management.
- Groq API is a game-changer — The ultra-low latency (even on free tier) allowed real-time feedback that feels instant, which is crucial for educational tools.
- Security matters even in prototypes — Never hardcode API keys! I learned to use Streamlit secrets and .gitignore properly.
- Time management under pressure — Balancing code, README, video demo, screenshots, and submission while debugging was intense but rewarding.
Most importantly, I learned that even a simple MVP can have real impact if it solves a genuine pain point.
How I built the project
Tech stack:
- Python (core logic)
- Streamlit (interactive web UI)
- Groq API (Llama-3.3-70B-Versatile for fast inference)
Step by step:
- Defined the core flow: paste notes → AI generates summary + 5 mixed questions → user answers → AI grades with feedback.
- Used Groq to generate content with carefully crafted prompts (in English for consistency with the hackathon).
- Parsed questions to detect multiple-choice (A/B/C patterns) and displayed options clearly above the answer field.
- Implemented session state to persist results across reruns.
- Added secure API key loading via
.streamlit/secrets.toml(never committed to GitHub). - Hid developer toolbar (including Deploy button) with CSS for cleaner look.
- Wrote strict grading prompt to treat MCQs as binary (correct/incorrect based on exact letter match).
- Created README.md, requirements.txt, video demo (2-3 min), screenshots, and submitted to Devpost.
Everything was built locally and kept simple — no backend, no database, just pure client-side AI magic.
Challenges I faced
- Tight deadline — Only ~48 hours from idea to submission, while finishing other college tasks.
- API model changes — Started with a deprecated Llama model; had to quickly switch to Llama-3.3-70B-Versatile.
- Grading accuracy — Early versions marked correct MCQ answers as "partial" — fixed with very specific prompt rules (binary grading + case-insensitive letter match).
- Dynamic UI — Making checkboxes work reliably with session state was tricky; eventually simplified to clear options list + text area.
- Security paranoia — Spent time ensuring no API key leak (secrets.toml + .gitignore).
- Video & polish — Recording a clean demo while the app was still evolving took a few tries.
Despite the rush, every challenge taught me something valuable and made the final version stronger.
This project started as a way to get a few complementary hours for graduation — but ended up being something I'm genuinely proud of and would love to keep improving. Thank you to the AI for Bharat team for the inspiration, and to Groq for making fast AI accessible!
Log in or sign up for Devpost to join the conversation.