In May this year, our Moodle Mobile Team Leader, Juan Leyva, introduced us to our Google Summer of Code student (GSoC), Diwakar Motur.
Diwakar was chosen out of a number of applicants to work on a project titled “Improve End-To-End Testing in the Mobile App.”
To summarise, the project is all about improving the way we test the Moodle Mobile App during development and before each new release.
Diwakar provides a more detailed and technical description of his project through his introductory GSoC journal, which has also been updated regularly to reflect the following lifetime of the project:
On 11 September, our Moodle Developers tweeted the following, congratulating Diwakar on completing a successful GsOC project with us.
— Moodle Development (@moodledev) September 10, 2017
We’re very excited now to talk to Diwakar himself and his mentor, Juan, about the project.
Moodle HQ: Firstly, congratulations Diwakar on completing your GSoC project with us. Let’s start with a little bit about you for our readers.
How did you first get involved with open source projects? And why did you choose to work with Moodle?
Diwakar: Thank you. I am currently an undergrad Junior from India pursuing Bachelors in IT. I love programming, problem solving and algorithmic challenges and I am strong Open-Source enthusiast. I started programming when I joined in college (about 2 years ago) and started building small projects and hosted them on github. Later in my sophomore year, I heard about GSoC from my college seniors and then I started to look out for projects that are relevant to me and have a global impact. Obviously, Moodle being the largest LMS caught my attention and I was exploring the organisation and its projects. Moodle Mobile is very close to my skills and interests so I started with it and collaboration has been fruitful since then.
Moodle HQ: In your regular GSoC blog posts you recorded all the different phases of your work and involvement with the project.
What has been the most memorable experience/s for you that you will take away as important lessons about development, Moodle or open source in general?
Diwakar: Most memorable thing for me is getting started with my contributions. Many people find it difficult to get into the organisation development workflow and soon give up. So, while it was the toughest part initially, as I have not had previous experience, Moodle Mobile is a big project and my first accepted contribution is always special. Before that, my contributions were not suitable for certain reasons (poor git logging, bad dev practices) but I kept working on it until it was accepted and later on since then, it has been easier to contribute. Important lesson learnt would be to just keep trying. Especially for the beginners, they(we) find it difficult or impossible to resolve an issue initially and end up leaving it. Do not do that, ask for regular contributors and project maintainers for help, go to stackoverflow, and keep trying.
Moodle HQ: What were some of the things you found challenging during the project and how did you, Juan and the Moodle community solve those challenges?
Diwakar: There are quite a number of challenges we have faced during the project. As the project mainly works upon integrated environment of various services like Travis, SauceLabs, Moodle demo site, things doesn’t go well if any of the services fails.
Specifically, there are some issues with SauceLabs, their emulators and simulators doesn’t run well upon bulk test requests and since it is a very new product and their API for mobile testing is inconsistent, so we discussed and proceeded to use their browser API which is quite stable and opened tickets on their forums for minor issues related to mobile testing. Next, the Travis has hard build time-out of 50 min, whereas our builds go upto 4 hrs. So we decided to divide the build into number of jobs and then run each individually and concurrently. This is a big boost for speed.
There were also some other minor issues which were resolved later during the development period. My mentor Juan Leyva always supported and helped me during these phases. It would have been very difficult or even impossible for me resolve without his support and experience.
Moodle HQ: Last question Diwakar, where to from here? What are your future plans for working in open source projects and development?
Diwakar: I would very much like to continue contributing to Moodle Mobile and will be doing frequently in my leisure time. In future, after I graduate, besides regular contributions to projects, I am planning to build an open-source project on scale that will have global impact. I am open to exciting career opportunities globally and open source project collaborations.
Juan Leyva is our Moodle Mobile Team Leader and mentor to Diwakar during the project. We also took the time to get a summary from Juan.
Moodle HQ: Juan, thanks for taking the time to chat to us. Congratulations on mentoring Diwakar for this GSoC project. What made you volunteer to be a mentor?
Juan: This is the third time I’ve been a mentor. The first time the project didn’t reach full completion, the second one was better but I felt that I could’ve mentored better so I decided to be a mentor for a third time and use my previous experience (and what I learned from my errors).
Apart from that, my main motivation was my love for open source and I was eager to have more Moodle Mobile contributors.
Moodle HQ: Lastly, can you explain what the results of the project were and how it will contribute to future development of Moodle Mobile app?
Juan: Thanks to Diwakar’s work we have now a complete set of automatic tests that will notify us if we accidentally introduced regressions in the code. This means that we have new tools to guarantee that new versions of the mobile app are 100% stable.
Once again, congratulations Juan and Diwakar on a successful 2017 Google Summer of Code project.
Thank you to the team at GSoC for organising this opportunity annually.
To find out more about the program head over to the GSoC website or follow our Moodle Development team @moodledev for all the latest news and when we will do another call out for involvement next year!