https://raw.githubusercontent.com/PyAr/wiki/master/images/GSoC2022.png

GSoC 2023 PyAr projects

The following are the Python Argentina projects that could participate in Google Summer of Code 2023 (under the PSF org).
Ideas are tentative, please engage with the community strongly to present and improve your original proposals.

PyZombis

https://raw.githubusercontent.com/PyAr/PyZombis/main/_sources/lectures/img/TWP_small.png

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.
Refactors to the upstream educative platform (Runestone) should be continued and extended, for further information see PR#1208 (a new component: interactive python interpreter for advanced exercises)
  • Project information:
  • Project ideas:
    • Entry-level smaller enhancements for coding exercises and examples (see ticket link for more details)
      • Refactor modular programming chapter #216
      • Modernize MVC & exceptions example app #217
      • Modernize multimedia app & Object-Oriented Programming lecture #218
      • Improve Web development sample with an SPA #219
      • Refactor GUI wrapper for Brython #220
    • 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):

PyAfipWs

https://raw.githubusercontent.com/PyAr/pyafipws/py3k/plantillas/logo.png

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):

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)

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.)