Skip to main content

Command Palette

Search for a command to run...

GSoC 2026: Week 5 with Oppia

Updated
5 min read
GSoC 2026: Week 5 with Oppia
N
Always do things at the last minute!!

I don't even remember how this week passed. I am sitting here writing this journal and genuinely struggling to remember the days separately. Everything is just one big blur of code, slides and very little sleep.

The Week Where Everything Came at Once

GSoC was already keeping me busy, but this week my university decided to join in too. I had a mini project to build and a presentation to make and present, all in the same week as my first real GSoC PR. So my days were basically split into two lives, college student in one half, GSoC contributor in the other half, and sleep was the thing both halves kept stealing from.

First PR of my project

When I picked this project, somewhere in my head I had quietly labelled it as a medium project. Less code, manageable, I will probably even finish early. This week that idea died.

My first PR of the project is just the domain layer of lesson progress. Not even the UI. One layer, of one feature, out of the three features I have to build. And it has already crossed 1000 lines of code. Now I know lines of code mean nothing, the same feature can sometimes be written in much less code, and writing more lines doesn't make anyone a better developer. But one thing is true either way, writing a lot of code takes a lot of time. And time is exactly the thing I had budgeted wrong.

So yes, I already have a backlog. In the very first weeks of coding. I genuinely believed I would move fast, finish everything early and help with resolving other issues. And look at me now, sleeping a few hours a night so I can clear the backlog I created for myself. Things really don't happen as planned, that seems to be the one lesson this summer keeps repeating to me.

The week itself was my usual loop, write some code, watch the tests fail, debug, fail differently, try again. Counting checkpoints sounds like the easiest thing in the world until you actually sit with it. A lesson is not a straight line, it is a graph, so even answering "how many checkpoints does this lesson have in total" needs actual pathfinding through the lesson states.

The Day My Proposal Disagreed

The most interesting bug of the week was not even in the code, it was in my proposal. In the app, when you tap a previous card to peek at it while answering the current one, that is called a flashback. Small feature, nobody thinks about it. So, what should the progress count do during a flashback?

I opened my own proposal for the answer. And found out my proposal disagrees with itself. One page says the count stays unchanged because the learner hasn't actually moved. Another page says the count should follow the card you are peeking at. Both pages written by me, read by me a hundred times during the proposal phase, reviewed by mentors, and nobody ever noticed.

Back in week 2 I wrote that most of my proposal was honest guesses and that I didn't know my project in my bones yet. This week I met one of those guesses face to face, and it was wrong. I dug through the wiki, the web app behavior, the rendering code, and the answer turned out to be the unchanged count. The code does the right thing now. The proposal, I still need to go back and quietly fix those two pages.

The Rest of the Blur

PR 1.1 is finally up for review. I have also started working on PR 1.2, nothing much written yet. Week 2 me would have felt a small sting reading those words, this week me just opened the comments and started working through them.

And one old thing finally landed, the edge-to-edge feature flag PR I had been carrying since before GSoC is getting merged this week. I didn't even get time to feel happy about it properly, just smiled and went back to my backlog.

A New Hat

One genuinely exciting thing happened in the middle of all this, I joined the CLaM team as a co-lead. I have just joined, so honestly I don't have much idea yet about how things work on that side, and there is not a lot of work for me there right now either. But it feels like a big opportunity, getting to see the team from the inside instead of just attending the weekly/monthly sync. Very excited for where this goes.

Week 1 was excitement. Week 2 was invisible work. Week 3 was things coming together. Week 4 was the start. Week 5 was reality checking my plans, and me just trying to keep up.

See you in Week 6. Hopefully with less backlog and more sleep.

GSoC 2026 : My Journey

Part 5 of 5

Weekly journal of my Google Summer of Code 2026 project with Oppia. I am working on Project 4.1 Support for Lesson Progress, Study Guides, and Worked Examples in the Oppia Android app. Each post covers what I worked on that week, what I struggled with, and what I learned.

Start from the beginning

First week as a GSoC 2026 contributor with Oppia

It was the night of April 30. The GSoC results were supposed to drop, and I had decided I was just going to sit at my desk and wait it out, no matter how late it took. It was late already and I don't

GSoC 2026 with Oppia Week 5: The Backlog Begins