Skip to content

Leonardo Cumplido GSoC 2021 Wrap Up

Leonardo Cumplido edited this page Aug 23, 2021 · 10 revisions

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.

Milestones

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.

Test

3 - Add more complex exercises

This third milestone was about implementing new more complex exercises, as if they were challenges, to the course.

Project

Here you can consult all the issues I opened and solved.

GSoC 2021 PyZombis Project

Pull Requests

I made 58 PRs. Here you can see all of them.

PRs

Commits

Here are all the commits I made during GSoC

Commits

My last commit for GSoC was made on August 16th 2021.

Last commit

My Stats

Git Log

To see the full commit report go to: Commits retrieved with git log or run: git log --pretty=format:"| %h | %as | %<(50)%s | " --shortstat [email protected]

Commit Date Summary Stats
d0b17232 2021-08-15 Changed exercises titles 4 files changed, 25 insertions(+), 25 deletions(-)
9f9ff956 2021-08-14 Changed qExtra2 using tabbed directive 2 files changed, 77 insertions(+), 76 deletions(-)
3e7fe4b0 2021-08-14 Changed qExtra1 using tabbed directive 2 files changed, 107 insertions(+), 109 deletions(-)
85d81691 2021-08-12 Changed q11 structure using tabbed directive 2 files changed, 223 insertions(+), 228 deletions(-)
8aa43163 2021-07-31 pytest vcr decorator for test_Reto01 3 files changed, 22342 insertions(+), 8 deletions(-)
06b8524c 2021-07-27 complete reto02 test 1 file changed, 23 insertions(+)
ad8705c0 2021-07-27 added final exercise in Pergamino 1 file changed, 61 insertions(+)
90474bcf 2021-07-25 deleted stuff from index 1 file changed, 8 deletions(-)
89a69be7 2021-07-25 little change to challenges tests 2 files changed, 2 insertions(+), 2 deletions(-)
df2755e3 2021-07-25 moved challenges to their own folder 3 files changed, 2 insertions(+), 2 deletions(-)
af790ec7 2021-07-25 Merge branch 'master' into 14_Pergamino
9d8298c7 2021-07-25 Apply suggestions from code review 1 file changed, 6 insertions(+), 6 deletions(-)
b9b3beb5 2021-07-20 Apply suggestions from review 1 file changed, 74 insertions(+), 50 deletions(-)
5bd5d8f9 2021-07-20 added proxy to exercises that failed 1 file changed, 3 insertions(+), 3 deletions(-)
a0de1551 2021-07-17 finished r_02 and added web test 2 files changed, 103 insertions(+)
c35bad43 2021-06-28 fixed TWP30 lecture 1 file changed, 129 insertions(+), 148 deletions(-)
c99769c6 2021-06-25 web test for l45_5 1 file changed, 49 insertions(+), 1 deletion(-)
db563a3e 2021-06-25 Added TasteDive exercises 1 file changed, 165 insertions(+)
8502bf13 2021-06-25 Added Reddit exercise 1 file changed, 82 insertions(+), 44 deletions(-)
dd7f7d4a 2021-07-17 fixed web test to work in Chrome 1 file changed, 2 insertions(+), 4 deletions(-)
8442045c 2021-07-15 added half the exercises of Pergamino challenge 2 files changed, 183 insertions(+)
10fe962c 2021-07-14 finished playwright test for Hangman challenge 2 files changed, 47 insertions(+), 10 deletions(-)
19e722a1 2021-07-13 half of Reto01 playwright test 1 file changed, 61 insertions(+)
b9170772 2021-07-13 finish hangman challenge 1 file changed, 116 insertions(+), 4 deletions(-)
8477fef0 2021-07-12 first 5 ac for Hangman challenge 2 files changed, 205 insertions(+)
1aacd278 2021-07-09 Apply suggestions from code review 1 file changed, 4 insertions(+), 1 deletion(-)
13f87cb3 2021-07-07 blank line to avoid formatting error 1 file changed, 1 insertion(+)
84906e3c 2021-07-07 Added university domains api exercises 1 file changed, 64 insertions(+)
89c312ea 2021-07-06 included brython module for json indent 1 file changed, 13 insertions(+), 18 deletions(-)
fc2ef136 2021-07-05 comments to starbuzz exercise 1 file changed, 16 insertions(+), 15 deletions(-)
52c862bd 2021-07-05 Apply suggestions from code review 1 file changed, 2 insertions(+), 4 deletions(-)
512dac5d 2021-07-03 second exercise with brython 1 file changed, 33 insertions(+), 15 deletions(-)
b9406a08 2021-07-03 brython module on one exercise 1 file changed, 30 insertions(+), 6 deletions(-)

Blog

The PSF asked us to submit a blog post weekly. Here you can see my blog.

Blog

Left to do

The course may be ready for a beta, not massive launch. However, there's still work to do. For example:

  • Pygame lecture can be adapted using Brython. This idea is to be explored. Here's an example of a game made in Brython.

😄

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.