Evalpro · Jul 2023 – Jun 2024
An autograder ready for real courses
Evalpro grades programming assignments on BodhiTree, IIT Bombay’s online learning platform. When our team took it over it worked, but it wasn’t ready to run a course. I owned its frontend for a year under Prof. Varsha Apte, which is also where I learned frontend in the first place.
- Role
- Frontend developer (M.Tech thesis)
- When
- Jul 2023 – Jun 2024
- Where
- IIT Bombay
- Stack
- ReactReduxPrimeReactMonacoDjango REST Framework
The situation
We started with a 24-hour hackathon on the old version: about 180 active participants and 168 feedback responses. People liked the platform, but said the interface felt dated next to modern coding sites, wanted to write code in the browser instead of uploading files, and hit bugs on the main programming page. That feedback set the roadmap for the next 32 one-week sprints.
What I built
- An in-browser code editor (Monaco) with multiple files, header files and instructor-provided starter files.
- Autosave every five seconds while you type, with a session ID per window, so a second open tab never silently overwrites the first: the stale tab asks which version to keep.
- Run without submit: a terminal-style panel that runs your code against practice input, so students stopped making throwaway submissions just to check for errors.
- Clearer compile and runtime errors, a summary of which test cases passed, and comments from the instructor next to the code.
- For instructors: rich-text activity descriptions, extra files and helper documents, named test cases that update in real time, and per-criterion comments on grades.
- A reusable table for submissions with infinite scroll that loads 100 rows at a time, column controls, a debounced search and download-all.
- Cleanup along the way: class components to functional ones, consistent formatting, and onboarding sessions for the research students joining the project.
Assignment 3 · write isPalindrome(s)
Return true if the string reads the same backwards, ignoring case, spaces and punctuation.
Results
- Not graded yet.
Runs entirely in your browser in a Web Worker, with a 1.5 second time limit per submission.
Decisions
Let real users set the roadmap
Instead of guessing, we ran events and read the feedback: a hackathon before the work, a 14-day course and hackathon halfway through, and two summer courses at the end. The programming page came first because that is where students spent their time and hit the most problems.
Autosave that knows about your other tab
Saving every keystroke would have flooded the server, and saving blindly would have let two windows overwrite each other. Saving only after edits, with a session ID the server checks, kept requests low and made conflicts visible.
Give students a way to try before they submit
The new editor made submitting so easy that students used it to test their code, which filled instructors’ queues. A separate Run button fixed the behaviour without a single extra rule.
Outcome
| What | Before | After | Change |
|---|---|---|---|
| Rated the programming page 3+ stars | — | 97% | 67 responses |
| Students who ran their code successfully | — | ~99% | BodhiCoder 2023 |
| University courses run on it | 0 | 2 | CS101, CS293 |
| Degree | — | M.Tech, CSE | CPI 8.83 |
| Platform later used in research | — | SIGCSE 2025 demo | TA Buddy |