Skip to content
This repository has been archived by the owner on Jan 26, 2021. It is now read-only.

GSoC All Final Reports

Janice Niemeir edited this page Jan 25, 2018 · 1 revision

Vatsala Swaroop 2016
Irish Medina 2014
Jayesh Lahori 2014

Vatsala Swaroop 2016

Overview

Systers Volunteer Management System is in a state of active development, with frequent contributions from new sources. However there was no testing system in place to monitor the changes being proposed to the project. The existing tests were housed in a different repository, brittle in nature, required significant amount of changes to follow up even a minute change in the UI and took up a lot of time to execute.

Along with these, there was a need to increase test coverage and variety (unit, functional, database) in general and to integrate the framework with tools like travis and browserstack.

Accomplishments

I completed the following tasks as per what I had initially proposed -

  • Fixed and updated all tests as per the changes done in VMS over the past year
  • Integrated tests with travis
  • Increased coverage and variety for tests
  • Found new bugs in the project
  • Analyzed and made a list of all possible missing tests
  • Added new selenium functional tests
  • Extended existing unit tests and added new ones
  • Added new database checks to tests
  • Setup local integration of test with browserstack

Apart from these, I worked on the following additional features as I felt they were crucial enhancements -

  • Migrated entire test architecture to follow page object model design
  • Reduced time and duplication for tests

Detailed work with links to PR list, weekly reports, blogs and more - Completed features

Challenges

  • Integrating tests with VMS and travis. They were in a different repository and hadn't been updated with the changes over the past year
  • Redesigning the test architecture after around 160 tests had already been written. I had to identify all possible bits of reusable code as well as data, break all existing pages into elements, rewrite all the tests to use those new elements and take care that I do not break the tests or forget some, while migrating the entire system. Also, there wasn't a lot of documentation and tutorials available for tests in python conforming to page object model design
  • Catching upto proposed timelines as I also became busy with a few tasks which I hadn't initially proposed
  • Hunting for test situations which hadn't been covered across unit and selenium functional tests

Take-Aways

  • Learnt about design patterns and how to incorporate them effectively
  • Learnt more about testing frameworks, Django's internal testing support and in great depth about selenium webdriver
  • Familiarized myself with new tools - Travis, Coverage and Browserstack. I hadn't worked with any of these before
  • Working with amazing mentors and contributing to open source
  • Making new friends
  • Tremendous boost in confidence

Questions

  1. How was the experience with Systers Org in GSOC 2016?
  • Enjoyable and really enriching. I have written more about it below
  1. Was the time plan unmanageable? Did the project make you spend more hours than expected?
  • No, what I had initially proposed did not take up a lot of time. I had sort of a clear approach for the proposed tasks. However, it was the additional stuff that demanded significant time, effort and research on my part.
  1. What all did you learn?
  • Loads of technical stuff. I have mentioned these in takeaways.
  1. Why did you choose this project?
  • I had never worked with automated testing before and was largely unaware of the practices involved. I felt this was a good opportunity to learn. Also, I applied for VMS in specific as I understood the importance of the project in itself and the urgent need to test it as it is being actively developed.
  1. The things that you would like to change in the next round to make it better?
  • Initially, mentors for many projects were unclear and they were getting shuffled, which was causing a bit of confusion. Also, we had just one hangout session with other students working on automated testing and their mentors. More sessions (say on a monthly basis) with all fellow students and mentors would be really cool. It gives a great platform to connect, update each other about the work done and discuss ideas/common doubts etc.
  1. Would you like to mentor in GCI'16?
  • Definitely! I look forward to staying involved with the project
  1. What would you like to advice next year mentees?
  • Explore projects as per your interests and start early. Try to contribute as many patches as you can but without compromising on their quality. Also, be honest about your commitments and interact with your mentors regularly. Do not shy away from asking for help if you are stuck.
  1. What were the things that you didn’t like about your mentor(s)?
  • I had a rather good experience, so can't add much here. I think though that having multiple mentors helped and in future too, it might be better to assign 2-3 mentors per student.

Overall Experience

My experience with Systers began before the GSOC period itself, as a contributor to the development of the Volunteer Management System. Before I got involved with VMS, I neither knew what Django or selenium webdriver was. Also, as a newbie to open source I was unfamiliar with git and it was via contributions to VMS that I became more comfortable with version control. The contribution and application phase itself had helped me learn a lot and the entire summer that followed was just an icing on the cake.

I could not have done this without the support of my mentors - Tapasweni Pathak and Nidhi Makhijani. Thank you for keeping me motivated and guiding me all along! I intend and hope to stay involved with the project and help newcomers the same way I was supported.

Irish Medina 2014

My experience with developing open source software for the Anita Borg Systers community was an incredibly amazing and unique experience. It provided me with the opportunity to collaborate with students and mentors from around the world, as well as experience what distributed development was really like. For Google Summer of Code 2014, my main task was to develop the volunteer aspect of the Volunteer Management System in Python using the Django framework with a PostgreSQL back-end. It was quite the experience learning Django, PostgreSQL, as well as learning how to run our application on a virtual machine using VirtualBox and Vagrant. Working on the project also enabled me to get a better understanding of the software development process: from writing a project proposal, developing project milestones, gathering requirements from the client, implementing and testing concurrently, and writing documentation. Near the end of the program, I was successfully able to implement the basic volunteer functionality of the Volunteer Management System.

A demonstration video of my work was presented during the Systers GSoC Online Demo Party on August 15, 2014.

The greatest challenge that I faced during the summer was getting accustomed to the different time zones of the mentors and peer on my team. It was rather common to receive a message from a team member early in the morning or late in the evening. But overall, we were able to work through this challenge by communicating with each other asynchronously and making sure that we communicated often.

The Google Summer of Code program is a great way to get started with open source development and to become part of an organization with a great cause. It was an honour collaborating with students and mentors from around the world and getting the chance to learn from many diverse perspectives. The program also provided me with the opportunity to sharpen my communication skills, as communication was vital to ensuring the success of our project.

Overall, my experience in the Google Summer of Code 2014 program was a great one. My experience was so great that I plan on continuing my contributions to Systers open source projects and I hope to get involved in Google Summer of Code again next year. I would like to extend my thanks to Jayesh Lahori who was my team member, our mentors Suzanne Mello-Stark, Stephen Turnbull and Sneha Priscilla for all of their help, as well as Rose Robinson who served as our client for this project, we could not have done it without you!

For more information, please visit my Github profile page or the GitHub Systers profile page. You may also be interested in viewing my Wiki page, or my personal page on Google+.

Jayesh Lahori 2014

It all started from April, when I was woken up by my friends on seeing the list of selected candidates and congratulating me for getting selected in Google Summer of Code-2014."What ?" Yes, you heard it right this was my response. I couldn't believe that I was selected.

Then started the community bonding period, when I first got a chance to interact with Steve, mentor for my GSoC Project. Learning curve started just a few hours later when I got a reply to his mail. Yes!, I seriously learnt how to write a sensible, properly reasoned mail that day :). Thanks! for that Steve, At that point, I didn't knew there were many more to come ;)

My project was to build a Volunteer Management System for Systers foundation,An Anita Borg Community. I also came to know there is another GSoC'er who will be working on the same project alongside me, and that was where I was introduced to Irish Medina. We decided to split up the VMS Project into the admin and volunteer unit's. Irish took on the volunteer part and Admin part was on my plate.

"SDLC", The term which I had read about and reproduced in exams was about to be put to use for the first time :), We had meetings with "Rose" to take down all the requirements and break it up into milestones and prepare a timeline. "Irish", took a lot of effort to clearly break down our tasks and make an integrated timeline with minimal dependencies on each other. Thank's a ton ! Irish :)

GSoC-2014, was my first ever exposure to some real open-source stuff. There were a lot of discussion's in earlier phase regarding the tools to be used but as I stated previously, thank's to Steve's mails which helped us to easily pick-up Django over my choice of PHP+MySQL, after a lot of discussions though ;) Now, the work seemed even more difficult as I had to first learn about Django, an all together new platform for me till then. I slowly started getting the taste of open-source development. One of the challenges faced throughout this summer was to co-ordinate with people from different time-zones, It was like a single to-&-fro of email thread was taking about a day and hence was the development phase some times :)

Overall, it was a great learning experience. I would like to thank a lot of people, Firstly, Steve a big thanks to you for all the support throughout the summer and helping me learn a lot of stuff. Irish, thanks for coordinating so well. Last, but not the least our very hardworking Rose, thanks for attending those very short informed meetings and specifying a clear set of requirements. I tried my best to do justice with the Volunteer Management System and hope it to be used very soon :)

My work and profile can be accessed at the below links:

LinkedIn
Github
VMS Repo

Thanks :)