Inspiration
Remote coding tests are either insecure (simple browser forms) or uncomfortable (camera-watched lockdown browsers with no real IDE). We wanted an experience that feels like VS Code, yet still guarantees exam integrity—and adds an AI coach that helps without cheating.
What it does
ExamIDE is a cross-platform desktop app that locks the screen to a full-window IDE. Students choose an exam, code in a Monaco/CodeMirror editor, run their code in an isolated Piston sandbox, and get syntax-level help from a “safe-guarded” Gemini assistant. The moment they Alt-Tab or the timer expires, the exam auto-submits.
How we built it
- Electron + React for the UI and native packaging.
- Firebase Auth & Firestore for user/role management and real-time data.
- Piston API to compile/run 20+ languages securely.
- Gemini Flash for AI hints, wrapped with prompt-guard logic in a Flask backend.
- Custom IPC in the Electron main process to detect focus/visibility and enforce the lockdown.
Challenges we ran into
- Getting Monaco to load offline inside Electron without CORS issues.
- Handling Firestore security rules once we dropped custom claims.
- Ensuring hooks never re-ordered after conditional auth redirects (React’s “hooks queue” error).
- Limiting the AI so it teaches without leaking full exam solutions.
Accomplishments we’re proud of
- Seamless IDE experience that still enforces a true lockdown (Alt-Tab aborts).
- Live teacher dashboard: create a class → add an exam → students see it instantly.
- One-click cross-platform build—Windows, macOS, Linux.
- AI assistant that genuinely helps with docs/examples yet passes our “no full answer” unit tests.
What we learned
- Deep dive into Electron security (contextIsolation, preload, IPC).
- Firestore rule design using document look-ups instead of custom claims.
- Prompt-engineering and post-filtering to keep generative AI on the right side of academic honesty.
- The importance of declaring React hooks unconditionally to avoid runtime chaos.
What’s next for ExamIDE
- Automatic plagiarism detection across submissions.
- Richer question types (multi-file projects, unit-test-driven grading).
- Webcam proctor plug-in for institutions that need visual monitoring.
- Cloud build cache so repetitive “Run” clicks return instant diff outputs.

Log in or sign up for Devpost to join the conversation.