Apologies for the extremely delayed blog post. If you have read my previous posts, you already know that I was ahead of my planned schedule at the end of the first phase. But, things didn’t go that well in the later part of the second phase. So, let’s just jump straight into it.

Week 5

I started this week by creating a simple about page for the website. In later part of the week, I added the functionality to create badges for server developers to show their server’s compliance stats from their website. Other than that, I spent most of the week separating the HTML, CSS and JS into different files, and tidying up the code.

Week 6

I started off this week by implementing the functionality to show old results by clicking on points on the graph. Other than that, I created a page for showing a list of all tests that are run by the compliance tester, with some description about the tests. I wanted to run some unit tests on the database code, but sadly, the database code was too tightly coupled, and there was no way to run tests on it. So, I decided to refactor the database code to make it more testable. My mentor further suggested me to add connection pooling to the database, and to avoid caching things in memory and letting the database take care of it. I began work on the database refactor, but I couldn’t get it done as I had to go for a family trip to Europe.

Week 7

I had initially thought that I would get sufficient time here and there to work on my GSoC project, while in Europe. But, boy was I wrong! I hardly got any time to rest, let alone coding. Losing my phone in Switzerland did not help either.

Sidenote : Ausfahrt must be the biggest city known to mankind 😜

Week 8

After 10 days of touring through Europe, I found it quite difficult to get some momentum back. It was partly technical, because I had no experience with database pooling, and partly physical, due to travel fatigue. I was extremely scared about my project’s future, and my mentor shared the concerns. It was the most difficult phase of my GSoC project so far. But, things changed for the better during the weekend. I was able to complete the database code refactor, but the code felt quite unstable and inefficient because I didn’t know much about handling database connections. It was quite ‘hacky’ and inefficient code. My mentor helped me out by suggesting HikariCP, an awesome library that manages database connection pools. I felt really stupid, as all the problems that were blocking me for days could easily be solved by using that library. Lesson learnt “Don’t reinvent the wheel”.

Evaluations

I was extremely nervous for the evaluations this time around. Though, I had technically achieved all of the milestones for the second phase, but missing work for 10 days and the shaky road to getting back to work made me really uneasy. Moreover there were many loose ends left in the code, that I would have loved to iron out before the evaluations. Despite all of that, I had passed the second phase evaluations.

Second evaluation result: passed
Phew, passed the evaluations.