GSoC 2022 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)
- 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): full details in #193 (including: refactor of lessons code, add new demo databases, explore IndexedDB, improve & extend exercises with automatic grading / unit tests)
Interactive PyGame lectures using a javascript "wrapper" like pyjsdl, gamejs and/or resurrecting brython-pygame / fork (tip: see Brython demos: bricks & 3D walker, a zombie educative game would be great!)
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
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) + @NicolasSandoval et al., please contact all mentors in PyAr GSoC Telegram group
- Past GSoC Students projects wrap-up (for reference):
Angela Remolina (2021)
Leonardo Cumplido (2021)
Ybrahin Martinez (2021)
PyEmpaq
PyEmpaq is a simple but powerful Python packer to run any project with any virtualenv dependencies anywhere. You can convert any Python project into a single .pyz file with all the project's content packed inside. It will run ok in Linux, Windows, Mac, or whatever. The only requirement is Python to be already installed.
- Expected outcomes:
-
Both the packaging and execution improvements should be fully multiplatform (see GitHub Actions CI infrastructure).Contributions should have proper documentation and testing coverage (unit and integration)
- Project information:
- Project ideas:
Milestone Control on packed content : Specify exactly what to include in the project's config
Milestone Testing: Implement logged_exec in unpacker, instead of subprocess.run
Milestone Stabilization: GUI; Windows GitHub Actions; Ubuntu (Snap); support setup.py / setup.cfg & pyproject.toml
Project Length: 175 hr to 350 hr (preferred, comprising several ideas)
Difficulty level: Easy to Intermediate (some ideas possibly doable by an advanced beginner with some python experience)
Technologies involved: Python Packaging, Virtual environments & Testing (setuptools, pip, wheels, venv, pytest)
Potential mentors: @facundobatista (coordinator) + @eamanu et al., please contact all mentors in PyAr GSoC Telegram group
OpenLex
Legal Case Management Software for Attorneys and Small Law Firms
OpenLEX was developed as part of an Open Source Specialization Program, to provide free legal software for lawyers and small law firms (in a market with no Open Source alternative for the Continental Law System and local regulations)
- Expected outcomes:
-
OpenLex is a project to facilitate the work of lawyers and small law firms. It would be great if the app could be usable from mobile phones and tablets (i.e. from Tribunals, Courts, etc.) The project should be easy to install, even for non-technical users (lawyers), its main intended audience.
- Project information:
Project Length: 175 hr (medium) per idea/ticket; for a 350 hr project you might want to plan to go beyond and combine/extend ideas, to see if you can improve our current code.
Difficulty level: Easy (minimal web programming experience, legal knowledge is a plus)
Technologies involved: Python (web2py, pytest-playwright), HTML5, JavaScript, mobile (Android/IOS, optional)
Potential mentors: @marian-vignau (coordinator) + @eamanu et al., please contact all mentors in PyAr GSoC Telegram group)
- Past GSoC Students projects wrap-up (for reference):
Juan Rodriguez (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 Pull Requests and report.html in GitHub Actions workflow)
Automation: build windows installers in continuous integration (see Wiki: Install to automate)
Webservice simulator: 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.)