GSoC 2023 PyAr projects
PyZombis
A Community course, completely online and interactive, to teach Python to everyone! http://pyar.github.io/PyZombis
The original Brazilian MOOC "Python for Zumbies" created by Fernando Masanori has +800k views on Youtube and has taught over 70K students basic Python. In this Spanish adaptation, all lectures and exercises are done fully online. There is no need for the student to install python on their computer or to run their own server.
- Expected outcomes:
-
Some lectures still need further work to be ported to the web (via Brython, a client-side Python interpreter on top of Javascript), so they can run interactively in the browser (databases, games) using native JS libraries.Playwright end-2-end automated web tests are mandatory for new contributions (+Pull Request checklist & documentation), and we still need coverage for important lessons including API and PyGame.
- Project information:
Repository - Dev tutorial HOW-TO (Quick Start)
Good first issues (you can write new E2E tests also!)
PyCon Argentina 2021 video tutorial (YouTube)
Academic info (full proposal, course syllabus, pedagogical methodology)
- Project ideas:
- Entry-level smaller enhancements for coding exercises and examples (see ticket link for more details)
Interactive SQL python lectures using javascript (SQLite.js): This includes: refactor of lessons code, add new demo databases, explore IndexedDB, improve & extend exercises with automatic grading / unit tests. Thanks to 2022 GSoC contributor we have a SQLite wrapper and new chinok database exercises, using it as a starting point to build a final course challenge will be awesome!
Enhance Interactive PyGame lectures improving brython-pygame GSoC 2022 fork using gamejs (tip: see Brython demos: bricks & 3D walker, a zombie educative game would be great!). Thanks to 2022 GSoC contributor now we have a zombie chaser game challenge that could be a good starting point!!!
BONUS TRACK: Interactive Web development intro lectures using web2py educative framework (capstone project for peer-review final course assignment); this includes a full revision of the lesson and a Kubernetes deployment script to provide a full web2py multi-tenant server where the students can log-in and develop/execute their web exercises
ADVANCED: Implement PyScripter component for interactive python excersises (web UI, DB and pygame)
Project Length: 175 hr each; prefer a full 350 hr proposal including upstream contributions + UI/UX functional revamp and extensive testing
Difficulty level: Intermediate (basic Python and Web programming experience expected, some gaming + HTML5 design background recommended)
Technologies involved: Python (sphinx, runestone, pygame, sqlite, pytest-playwrigth, pytest-vcr), Javascript (ajax, DOM)
Potential mentors: @reingart (coordinator), please contact all mentors in PyAr GSoC Telegram group
- Past GSoC Students projects wrap-up (for reference):
Shivam Shandilya (2022)
Angela Remolina (2021)
Leonardo Cumplido (2021)
Ybrahin Martinez (2021)
PyAfipWs
Library for Developers (integrators and legacy languages interfaces) Tools for Accountants and SMEs (Odoo/OpenERP modules and Tryton Argentina's localization). Electronic Invoice, Agriculture, Foreign Trade, Taxes, Pharmaceutical, etc.
PyAFIPWs is a widespread standard reference implementation to communicate with Argentina’s government entities, with more than ~2K users group subscriptions, many bindings to other languages, and used in modules for Open Source ERP localizations (OpenERP, Odoo, Tryton, etc.)
The project has more than 10 years of development history and many accumulated features, covering several webservices and tools. Initial work has been completed to migrate and modernize the project, but there are many rough edges and enhancements opportunities.
- Expected outcomes:
-
As it's multi-platform, used by a wide user base of developers (specially from other programming languages), special care must be taken to improve the code-base with backward compatibility.
Exhaustive Test coverage is a must to complete the transition. Also, installers for Windows users should be migrated and upgraded to support legacy applications (main use case). Finally, a webservice simulator could be helpful to ease integration testing and speed-up new developments.
- Project information:
- Project Ideas:
Unit Testing: extend unit tests coverage beyond 70% (including command-line tools, see pending #107 as an example and report.html in GitHub Actions workflow)
Automation: #106 to improve packaging) and #109 to build windows installers in continuous integration (see Wiki: Install to automate)
Webservice simulator: #108 fake implementation for testing, mimicking government servers (WSDL SOAP based, see server.py for an example, and web2py-app for a Proof of Concept)
Project Length: 175 hr (medium) to 350 hr (large, several ideas)
Difficulty level: Intermediate (basic knowledge in operating systems, network protocols, APIs & testing; Accounting / ERP experience recommended)
Technologies involved: Python (httplib, xml, webservices, pdf, dbf, pywin32, pytest, pytest-vcr, py2exe), Linux/Windows (packaging/installers/APIs/DLL)
Potential mentors: @reingart (coordinator) + @NicolasSandoval, please contact all mentors in PyAr GSoC Telegram group
- Past GSoC Students projects wrap-up (for reference):
Utkarsh Kumar (2021)
Nico Sandoval (2019)
About Python Argentina
We are looking for new Pythonistas!
Help us to foster the development of several open-source community projects. Many are fun and innovative, others are challenging and resolve real-world requirements.
The association was founded aiming to help the Python devs, increase their diversity and outreach, especially overcoming minorities and cultural barriers (mainly socioeconomic, language, gender), serving as an umbrella organization to some ongoing efforts.
Spanish is one of the most spoken languages in the world, and many of our developed tools and libraries are aimed to fill the missing open-source gap. They can help to learn and further work with Python, either to enthusiasts, professional programmers, or even final users!
Experienced developers, teachers, and volunteers will assist you, guiding you throughout the process with well-defined goals (according to skills and tech background)
Contacting Us
We're in the Argentina time zone (GMT-3)
Telegram: https://t.me/PyArGSoC (invite)
Google Group: https://groups.google.com/g/pyar-gsoc
NOTE: Spanish is a requisite for many projects, as it is the language used for documentation and community communications. On the other side, if you do not speak English fluently, we can help you with translations and guidance (in Spanish, of course).
NOTA: Si hablás Español pero te cuesta el Inglés, te podemos ayudar con las traducciones y redacciones para que puedas participar! No te preocupes, el día a día y documentación en general están en Castellano.
Visitá nuestra GSoC Wiki en Español para más información: https://wiki.python.org.ar/gsoc/
We want our community to be more diverse: whoever you are, and whatever your background, we welcome you.
Queremos que nuestra comunidad sea más diversa: quienquiera que seas, sea cual sea tu origen, te damos la bienvenida
Getting Started
If you want to participate as a contributor, please follow the next guidelines:
Presenting yourself
Join the Telegram group and write to about you. Please send an introductory email to the Google Group and state clearly:
Why you want to participate in GSoC, shortly comment your background and expectations
What project would you prefer: look at this page for ideas
What is your previous experience, Python skills, Django, hg/git, js, etc.
Fixing a bug!
Ask for a simple non-trivial ticket. For example, take a look at CDPedia, PyAfipWs, OpenLex, PyZombis.
Create a user in GitHub (if you don't have one)
Fork the project repository and try to fix an issue of your desired project
Discuss with potential mentors your fix, creating a Pull Request as early as possible!
Writing a Proposal
Select a project idea and write a detailed proposal following this template using Google Docs (in advance!)
Plan your prepwork for the community bonding period (eg. a Proof-Of-Concept)
Define a milestones for each evaluation phase (i.e. Prototype, Pilot / Final Demo)
Plan you weekly work & deliverables (tasking out: high-level goals for each milestone)
Describe the acceptance criteria ("Minimum Viable Product" of each phase)
Share an early draft and discuss your approach in the group with mentors. Do not forget to submit your application to the Google system when ready, some days before the deadline (the server can be overloaded at last minute).
TIPs: read and follow the GSoC guide & PSF check-list
Some past draft proposals for reference:
Important notes
Late, incomplete, or low-quality proposals will not be considered at all. Mentor's time and available students slots are limited, so please ask intelligently for advice and feedback early.
Last-minute applications are generally a signal of further problems (for you and for us too, please avoid!). Proposals without any previous contribution in the repository (i.e. bug-fix issue) will be rejected.
You're expected to have an almost full-time dedication to the GSoC, so plan accordingly and disclose any potential commitment (exams, work, vacations, travels, etc.)