Google Summer of Code ===================== .. raw:: html
.. image:: ../images/gsoc/gsoc2017.png :align: center .. note:: `OpenWISP is a mentoring organization for the Google Summer of Code 2024 `_. If you are reading this page you are probably considering OpenWISP as a possible mentoring organization for the `Google Summer of Code `_, that's great! If you are looking for a **friendly community** where **your contribution will have a very tangible positive effect from the first day of your participation** and where **you can grow your tech skills at 360°**, then **CONGRATULATIONS!** OpenWISP is the right organization for you. How to run a successful Google Summer of Code --------------------------------------------- .. image:: ../images/gci/success.jpg **First of all: PLEASE, PLEASE, read all the information contained in this page (including links!)** because this will save everybody involved a lot of time. We would rather spend our time coding than repeating the same stuff over and over. Have you read the `Student manual `_ yet? If not, please do **because it's a MUST if you want to be successful**! **Communication with the rest of the community** is vital for a successful Google Summer of Code, please join `our communication channels `_, join our mailing list (we have a `dedicated mailing list for GSoC `_, receive all emails please, and filter them in your mail box so they are moved to an "OpenWISP" folder), `present yourself in our general chat `_, tell us who you are, what your values are, what is attracting to OpenWISP and don't be cold like a robot! Stay human :-). Traits we look for in applicants -------------------------------- We participate in GSoC because we believe it's a great opportunity for us to give back to Open Source by helping newcomers to get trained and thrive in this industry, but we also do it because we want to grow the pool of maintainers of our project so we can help a greater number of users to use OpenWISP successfully. Contributors who also become maintainers and start working professionally with OpenWISP are rare, but over time we found out the traits that are good leading indicators for contributors who are likely to become core members of our project, **here are the traits we look for in GSoC applicants which give a higher chance of getting selected**: - **Genuinely interested in networking**: we look for people who are genuinely attracted in the topics we cover because we believe they are the ones who most likely will benefit from a long term contribution to our project. - **Participate actively**: they become active participants of the community, not just by submitting pull requests, but also by helping new users or reviewing patches of other less experienced contributors. - **Put effort in understanding**: they put effort in understanding the problem they need to solve and the outcomes that is expected from them, which means actively researching the problem, expand the project idea with more details, create a prototype, note down a list of questions regarding points that are not clear. - **Value the time of mentors**: they read carefully the description of issues and put effort in understanding what they have to do, when something is not clear they do not hesitate to explain the problem carefully via email or on github. - **Parallelize tasks when waiting for a reply**: while they wait for mentors to review or answer their questions, they start tackling other issues for which they have enough information to get started, in order to avoid staying idle. - **Value quality**: they ensure their work is of the highest quality and doesn't break existing features of the system thanks to thorough testing before flagging a patch as ready to be merged. How to become an OpenWISP star ------------------------------ .. image:: ../images/gci/star.jpg Here's a few quick tricks you can use to become a star in our community: - read the :doc:`founding values and goals of OpenWISP <../general/values>`, are you on our side? - study and follow closely the :doc:`contributing guidelines <../developer/contributing>` - be patient in the interaction with your mentors, we are all volunteers, we are taking our time to mentor you from our free time which we usually spend family and loved ones - we know our documentation is incomplete and fragmented, we are working hard to fix it; if you find a passage that is not clear or you have an idea about how to improve it, **please let us know!** - start using OpenWISP 2: install it, run it, play with it; understand its structure - start contributing (eg: fix easy bugs, write documentation, improve tests); look for open issues in our most used repositories on `github.com/openwisp `_ (ask in our support channels before starting to code please! we have many legacy repositories that are not under active development anymore) - if we ask you to open an issue in one of our github repository, please take at least 5 minutes of time to write a proper bug report - watch the `OpenWISP 2 presentation at the recent OpenWRT Summit 2017 `_ and read the slides of this `more technical OpenWISP 2 talk `_ - try using OpenWISP in real use case scenarios (find out if there's a free wifi community near your area), spend time reading its code, ask questions - try to participate in the community, if a fellow member is in need of help and you know how to help him, please do so, we will reward you Time to start hacking --------------------- .. image:: ../images/gci/technology.gif If you are not familiar with the following concepts yet, take the time to read these resources, it will help you to speed up your raise to the top! Programming languages and frameworks: - `Python `_ (book) - `Django `_ (official documentation) - `Lua `_ (video tutorial) - `Shell `_ (video tutorial) - `Javascript `_ (tutorial) Networking concepts: - Introduction to networking `terminology `_ Configuration management: - Introduction to `configuration management `_ - Writing Ansible `playbooks `_ - Creating Ansible `roles `_ from scratch Project ideas ------------- - :doc:`Project Ideas 2024 <../developer/gsoc-ideas-2024>` Application Template -------------------- Please make sure to include the information requested below in your GSoC application. 1. Your Details ~~~~~~~~~~~~~~~ - Full name - Date of birth - Country/Region - Email - GitHub/GitLab profile - Phone number - What's your availability in UTC times? 2. Tell Us About Yourself ~~~~~~~~~~~~~~~~~~~~~~~~~ - What is your background? - Have you ever contributed to open-source software projects? If yes, how? - Please list the links to your OpenWISP contributions and/or notable contributions to other Open Source & Free Software projects. - Do you have any experience with OpenWrt? - Do you have a router at home on which you can flash OpenWrt to test OpenWISP? - What's your motivation for working on OpenWISP during the Google Summer of Code? 3. Your GSoC Project ~~~~~~~~~~~~~~~~~~~~ - Project Title - Possible Mentor - Measurable Outcomes - Project Details: How are you going to implement the solution? What technologies do you want to use? Make sure to include code samples. Linking to a repository containing a prototype and an explicative README, which includes screenshots or GIF recordings demonstrating how the prototype works, is a great way to demonstrate your technical understanding and boost your chances. - Project Schedule: Can you provide a rough estimate? When can you begin to work? - Availability: How many hours per week can you spend working on this? What other obligations do you have this summer? 4. After GSoC ~~~~~~~~~~~~~ - Are you interested in continuing to collaborate with OpenWISP after the GSoC ends? - Will you help maintain your implementation for a while? - If we get new business opportunities to build new features, are you interested in occasional freelance paid work? It's not enough to reply "YES," please explain what your motivation is (e.g., gaining experience, tech challenges).