The complete wrap up of my GSoC experience is here: Leo Cumplido GSoC 2021
Hi, I'm Leo Cumplido, an 18 year old data science student at the time I'm writing this. My Google Summer of Code
(GSoC) 2021 has nearly come to an end. Here's a wrap up of what I did this summer working with Python Argentina,
under the umbrella of the Python Software Foundation (PSF), on a project called PyZombis.
Quickly, PyZombis is an attempt to make an interactive notebook regarding python basics. The overall goal of this project is to make a quality, and free content, kind of MOOC for Spanish speakers. The platform where it is landed is Runestone. The topics covered go from python fundamentals, like basic data structures, flow control, and loops, to web scrapping, accessing APIs, web development, and more.
I worked on three milestones:
1 - Fix Lessons 1 to 14, "revisiones" lectures, and add quizzes
Originlly, it consisted of fixing lectures 1 to 14, and quizes 1 to 14 as well. I completed this milestone before the first evaluation period, but then I kept adding issues as they arose. During this period I learned GitHub basics, Playwright for web testing, and pytest for testing python code, correct python formatting following PEP8 rules, and open source best working practices.
2 - Refactor Facebook API Lesson
During my second milestone I worked with APIs principally. Also, I made use of Brython as the python interpreter for some exercises. The thing that took me more time was adding pytest-vcr to mock the requests to APIs in the tests. Here's a gif of the web test for a challenge of the course. It was the most advanced test because to make it I had to mock the API calls, and to handle the dialog boxes that appear. The web test is automated with Playwright.
3 - Add more complex exercises
This third milestone was about implementing new more complex exercises, as if they were challenges, to the course.
Here you can consult all the issues I opened and solved.
GSoC 2021 PyZombis Project
Here are all the commits I made during GSoC
Left to do
The course may be ready for a beta, not massive launch. However, there's still work to do. For example:
Now that the coding period has ended, I can say I accomplished my goal. Regarding code, I was able to lean and apply new tools quickly, like Playwright and Brtyhon. Regarding the overall open source project, I learned how to work on GitHub, how to apply a good work flow and how to approriately communicate with my working team.