๐Ÿ’ก ๐—ช๐—ต๐˜† ๐—ช๐—ฒ ๐—•๐˜‚๐—ถ๐—น๐˜ ๐—œ๐˜ โ€” Project Story: As developers, we spend a massive chunk of our time debugging syntax errors, deciphering cryptic edge cases, and waiting for peers to review our pull requests โ€” sometimes for days. Students face this even harder: no senior dev to ask, no reviewer on standby, just a blinking cursor and a confusing error message at 2 AM. We wanted to build a tool that acts as a ๐Ÿ๐Ÿ’/๐Ÿ• ๐๐ข๐ ๐ข๐ญ๐š๐ฅ ๐ฉ๐ž๐ž๐ซ ๐ซ๐ž๐ฏ๐ข๐ž๐ฐ๐ž๐ซ โ€” something that instantly highlights logical flaws, scores code quality, suggests optimizations, and lets you chat directly with your code. No waitlists. No pull requests. Just paste and learn.

๐Ÿ› ๏ธ ๐—›๐—ผ๐˜„ ๐—ช๐—ฒ ๐—•๐˜‚๐—ถ๐—น๐˜ ๐—œ๐˜ ๐—ฆ๐˜๐—ฎ๐—ฐ๐—ธ: Python ยท Streamlit ยท CSS ยท Gemini 1.5 Flash ยท FPDF2 ยท python-dotenv The application uses a modular architecture that cleanly separates the static code analysis engine from the conversational chatbot interface. ๐Ÿ–ฅ๏ธ ๐—™๐—ฟ๐—ผ๐—ป๐˜๐—ฒ๐—ป๐—ฑ โ€” Streamlit , CSS A dual-panel UI โ€” a Review Panel where users paste code and trigger an instant structured audit, and a persistent Chatbot Panel that maintains conversation history for follow-up questions like "Can you rewrite that using a list comprehension?" ๐Ÿง  ๐—”๐—œ ๐—˜๐—ป๐—ด๐—ถ๐—ป๐—ฒ โ€” Gemini API Powered by google-generativeai with engineered system prompts that force the model to behave like a strict but constructive Senior Software Engineer. Native Gemini chat session objects handle context memory without manually parsing token histories. ๐Ÿ“„ ๐—ฃ๐——๐—™ ๐—ฅ๐—ฒ๐—ฝ๐—ผ๐—ฟ๐˜๐˜€ โ€” FPDF2 Generates downloadable review reports complete with score tables, issue breakdowns, AI-improved code, and personalized learning tips.

๐Ÿšง ๐—–๐—ต๐—ฎ๐—น๐—น๐—ฒ๐—ป๐—ด๐—ฒ๐˜€ ๐—ฆ๐˜๐—ฟ๐˜‚๐—ฐ๐˜๐˜‚๐—ฟ๐—ฒ๐—ฑ ๐—š๐—ฒ๐—บ๐—ถ๐—ป๐—ถ ๐—ข๐˜‚๐˜๐—ฝ๐˜‚๐˜ โ€” Getting Gemini to return clean, parseable JSON consistently โ€” instead of a wall of markdown prose โ€” required careful prompt engineering and robust fallback parsing logic. ๐—ฆ๐˜๐—ฟ๐—ฒ๐—ฎ๐—บ๐—น๐—ถ๐˜ ๐—ฆ๐˜๐—ฎ๐˜๐—ฒ ๐— ๐—ฎ๐—ป๐—ฎ๐—ด๐—ฒ๐—บ๐—ฒ๐—ป๐˜ โ€” Streamlit reruns the entire script on every user interaction. Mastering st.session_state was critical to ensure chat memory, scores, and code context persisted without wiping on every click. ๐—•๐—ฒ๐—ด๐—ถ๐—ป๐—ป๐—ฒ๐—ฟ-๐—™๐—ฟ๐—ถ๐—ฒ๐—ป๐—ฑ๐—น๐˜† ๐—ง๐—ผ๐—ป๐—ฒ โ€” Tuning the system prompt to explain issues in simple language โ€” without being condescending or losing technical accuracy โ€” required multiple iterations and real student test cases.

๐Ÿ’ก ๐—ช๐—ต๐—ฎ๐˜ ๐—ช๐—ฒ ๐—Ÿ๐—ฒ๐—ฎ๐—ฟ๐—ป๐—ฒ๐—ฑ โ‘  ๐—ฃ๐—ฟ๐—ผ๐—บ๐—ฝ๐˜ ๐—˜๐—ป๐—ด๐—ถ๐—ป๐—ฒ๐—ฒ๐—ฟ๐—ถ๐—ป๐—ด ๐—ณ๐—ผ๐—ฟ ๐—ฆ๐˜๐—ฟ๐˜‚๐—ฐ๐˜๐˜‚๐—ฟ๐—ฒ๐—ฑ ๐—ข๐˜‚๐˜๐—ฝ๐˜‚๐˜๐˜€ Constraining LLM responses using explicit JSON schemas transforms chaotic AI output into clean, renderable UI data. The format of your prompt is just as important as the content. โ‘ก ๐—ฆ๐˜๐—ฎ๐˜๐—ฒ ๐— ๐—ฎ๐—ป๐—ฎ๐—ด๐—ฒ๐—บ๐—ฒ๐—ป๐˜ ๐—ถ๐—ป ๐—ฆ๐˜๐—ฟ๐—ฒ๐—ฎ๐—บ๐—น๐—ถ๐˜ Properly scoping st.session_state keys is essential for any stateful app โ€” chatbot memory, scores, and user code must all be explicitly preserved between reruns. โ‘ข ๐——๐—ฒ๐˜€๐—ถ๐—ด๐—ป๐—ถ๐—ป๐—ด ๐—ณ๐—ผ๐—ฟ ๐—•๐—ฒ๐—ด๐—ถ๐—ป๐—ป๐—ฒ๐—ฟ๐˜€, ๐—ก๐—ผ๐˜ ๐——๐—ฒ๐˜ƒ๐—ฒ๐—น๐—ผ๐—ฝ๐—ฒ๐—ฟ๐˜€ Most dev tools assume prior knowledge. Building for learners forced us to rethink every label, error message, and feedback card โ€” clarity always beats precision when your user is still learning. โ‘ฃ ๐— ๐—ผ๐—ฑ๐˜‚๐—น๐—ฎ๐—ฟ ๐—”๐—œ ๐—”๐—ฟ๐—ฐ๐—ต๐—ถ๐˜๐—ฒ๐—ฐ๐˜๐˜‚๐—ฟ๐—ฒ ๐—ฃ๐—ฎ๐˜†๐˜€ ๐—ข๐—ณ๐—ณ Separating Gemini logic into gemini_helper.py made it trivial to swap models, adjust prompts, and debug AI responses without ever touching the UI layer.

๐Ÿ”ญ ๐—ช๐—ต๐—ฎ๐˜'๐˜€ ๐—ก๐—ฒ๐˜…๐˜ Monaco-based in-browser code editor ยท Teacher dashboard for batch student reviews ยท Gamified XP and badge system to encourage daily practice ยท GitHub integration for commit-level automated feedback

Built With

Share this project:

Updates

Submission history