The past few months have been really interesting working full-time at a co-op and working on Review Board. I am a 4th year Computer Science student at the University of Waterloo and I chose Review Board as my open-source project for UCOSP. Hacking on the Review Board codebase has been an exciting experience so far — especially for someone diving into a Python (Django) for the first time.
The term got initiated with a code sprint in Waterloo. The sprint was really beneficial as we had instant access to mentors for any questions we had. The idea of the sprint was to pick simple “easy fix” bugs to address as we get familiar with the codebase. I addressed a bug where a hyperlink, “Add Comments”, was not showing while viewing a user profile. Additionally, I had the chance to fix a bug where the hit target for a button was too small causing users to accidentally click on another nearby element. Working on both these bugs was a great way to start working on Review Board as it gave me some familiarity with how the codebase is structured, how the review process works and how git is used for developing Review Board.
The project I have been working on since then is called Pluggable UIs. Specifically, the idea is to render file attachments in the browser for easy viewing while reviewing requests. I have spent most of my time working with Markdown files since they are commonly used in codebases for text-based files such as README and LICENSE files. I have made significant progress on this project and the technologies that were used to achieve that were Django, Backbone.js and the markdown Python package.
I am currently wrapping up my Markdown project and working on displaying rendered Pluggable UIs in a lightbox window rather than on a new page. To achieve that, I am mostly working with the existing Django codebase as well as jQuery for the client-side user interaction.
Overall, I’ve had a great term so far working on Review Board. I have been interested in working with Python for a couple months now and working with a mature Python codebase has helped me learn a lot about how things are done in Python. I plan on shipping my current projects over the next few days and hope that Review Board users find the features I worked on to be useful.