-
Notifications
You must be signed in to change notification settings - Fork 56
Leonardo Cumplido GSoC 2021 Wrap Up
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.
I made 58 PRs. Here you can see all of them.
Here are all the commits I made during GSoC
My last commit for GSoC was made on August 16th 2021.
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(-) |
The PSF asked us to submit a blog post weekly. Here you can see my blog.
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.