#82 add outreachy section with GSoC, GSoC and GCI
Merged 3 years ago by sumantrom. Opened 3 years ago by siddharthvipul1.
siddharthvipul1/mentored-projects master  into  master

empty or binary file added
file modified
+5
@@ -63,3 +63,8 @@ 

  ** 2020

  *** xref:gsod/2020/index.adoc[Information]

  *** xref:gsod/2020/ideas.adoc[Ideas]

+ 

+ * Outreachy

+ ** 2020

+ *** xref:outreachy/2020/index.adoc[Information]

+ *** xref:outreachy/2020/ideas.adoc[Ideas]

@@ -0,0 +1,104 @@ 

+ NOTE: Fedora is participating in the link:https://www.outreachy.org/[Outreachy]

+ round running from May to August 2020 and we have already selected our interns

+ for this season.

+ 

+ If you are a student looking to participate in

+ xref:outreacy/2020/index.adoc[Outreachy], please feel free to

+ browse this idea list.  There may be additional ideas added during the

+ application period.

+ 

+ Do not hesitate to contact the mentors or contributors listed on this

+ page for any questions or clarification. You can find helpful people on

+ the IRC channel, or use the mailing list. can be used for getting help

+ with programming problems.

+ 

+ == Idea list

+ NOTE: Ideas are subject to change as additional mentors are onboarded.

+ 

+ * <<Create a GraphQL API for Bodhi>>

+ * <<Fedora Badges Back-end Engineering>>

+ * <<Fedora Design Internship>>

+ 

+ === Create a GraphQL API for Bodhi

+ 

+ The current implementation of Bodhi REST API is far from being ideal. The REST endpoints are not following CRUD (Create, Read, Update, Delete) and there are doing a lot of magic making it difficult to use by someone not familiar with the Bodhi code base. The Goal of this project is to give Bodhi a /graphql endpoint which would allow users to use grapqhl to query bodhi resources.

+ 

+ ==== Sample plan of work for the 12 week internship.

+ 

+ Week 1-4:

+ * Update the development environment with the python graphene library

+ * Add a new graphql service which routes to /graphql and returns a simple string "Hello World"

+ * Write tests for that service.

+ * Integrate graphene to the graphql service. The /graphql endpoints should now accept a graphql query and return the same simple string "Hello World".

+ * Update the tests

+ * Update environment and dependencies to introduce graphene-sqlalchemy.

+ * Use the graphene sqlalchemy library to generate the graphql schema for the Release class.

+ * Add a graphql query handler for the Releases.

+ 

+ Week 5-12:

+ * Work and Desing the graphql schema. Analyse the dependencies between the different object and how this will be reflected in the graphql tree.

+ * I don't expect much coding during this week, this should be used as a foundation for the following work.

+ * Implement the graphql schema. Focusing first on the queries since this does not require any authentication.

+ * Users should be able to query for releases, updates, builds, overrides, packages, users, comments.

+ * If times allow then we can look at the implementation of the mutation (creating, updating resources). The first step to this is to have authentication and authorization in place.

+ 

+ ===  Fedora Badges Back-end Engineering

+ 

+ Fedora Badges is a fun website built to recognize contributors to Fedora, help

+ new and existing Fedora contributors find different ways to get involved, and

+ encourage the improvement of Fedora's infrastructure.

+ 

+ ==== Sample plan of work for the 12 week internship.

+ 

+ Week 1-3:

+ * Research badgr-server / create development environment

+ * Add a test badge

+ * FAS integration (see Sign-In Configuration)

+ * Locally in dev environment

+ * https://iddev.fedorainfracloud.org

+ 

+ Week 4-7:

+ * Containerizing badgr-server for Communishift (see PR #110, PR #212)

+ * python/django

+ * mysql

+ * memcached

+ * amqp broker (e.g. RabbitMQ)

+ * [research] Figuring out the best way to align local development practices with production deployment (docker-compose? minishift?)

+ * Migrate old badges data to new database (postgresql -> mysql)

+ 

+ Week 7-9:

+ * Migrate old badges data to new database (postgresql -> mysql)

+ * Fedora-messaging middleware

+ * Python?

+ * Writing unit tests with Pytest

+ * Containerization / running in communityshift

+ * Deployment documentation, SOP (!!!)

+ * How to add a new badge

+ * How to upgrade the version

+ 

+ Week 10-12:

+ * Fedora-messaging middleware

+ 

+ ===  Fedora Design Internship

+ The Fedora Design Team is Fedora's in-house design agency. We provide artwork,

+ user experience, usability, and general design services to the Fedora project.

+ 

+ ==== Sample plan of work for the 12 week internship.

+ 

+ Week 1-4:

+ * Draft Fedora Budget Quarterly and Yearly Reports designs

+ * Incorporate feedback into budget designs and complete. Begin to solicit and gather information from teams on accomplishments made in 2019.

+ * Organize info coming in from teams. Begin drafting infographics to highlight these accomplishments. Begin to solicit artwork, designs, photography, content, for Fedora Zine.

+ * Start working on a handout for events specified by Contributor Recruitment Initiative. Refine infographics for team accomplishments, continue to solicit info/gather/organize.

+ 

+ Week 5-8:

+ * Incorporate feedback into handout for CRI. Complete infographics for team accomplishments.

+ * Begin drafting Fedora Zine, using a lot of the same team accomplishments that have been gathered already and assets that have been solicited.

+ * Incorporate feedback into Fedora Zine. Start working on assets for Flock 2020: game night stickers/handouts, tshirt, badges, and whatever else is left to do.

+ * Incorporate feedback into Fedora Zine. Incorporate feedback into Flock assets. Start picking up Fedora Badges tickets to get familiar with the aesthetic.

+ 

+ Week 9-12:

+ * Identify all the Fedora Badges that need to be reviewed/improved. Finalize Flock assets.

+ * Final push to finalize Fedora Zine. Familiarize yourself with Fedora Badges Style guide. Work on badges that have been identified as needing improvement.

+ * Identify and document things that need to be updated in the style guide, begin to incorporate them into an updated draft. Work on badge designs that need improvement/new ideas.

+ * Incorporate improvements and finalize new version of Badges style Guide. Finalize any leftover designs/projects/follow ups that need to be done.

@@ -0,0 +1,148 @@ 

+ == Outreachy

+ 

+ NOTE: Fedora is participating in the link:https://www.outreachy.org/[Outreachy]

+ round running from May to August 2020.

+ 

+ === What is Outreachy

+ 

+ image::outreachy_logo.png[float="right"]

+ Outreachy is an internship program for people from group underrepresented in free and open source software, including women internationally and underrepresented people of color in the U.S. Our goal is to increase participation in Fedora. Please see the link:https://www.outreachy.org/apply/[main page with program details] for the general information, such as timeline, background information, eligibility, requirements, and the application form.

+ 

+ 

+ This page contains information about Fedora's participation Outreachy. Please feel free to contact us via the mailing list below for clarifications and more information. You can also use the IRC channel.

+ 

+ === student-information

+ NOTE: We have already selected out interns for 2020, please subscribe to the

+ mailing list link:https://lists.fedoraproject.org/admin/lists/summer-coding@lists.fedoraproject.org/[summer-coding@lists.fedoraproject.org] for announcements for next season projects/info.

+ You can read the accepted project for this year at xref:outreachy/2020/ideas.adoc[ideas].

+ 

+ 

+ === Why spend your summer working on FOSS?

+ 

+ When you work in the open on free software, you create a body of work

+ that follows you for the rest of your life. Rather than a coding

+ assignment done by thousands of other students and relegated to the

+ bottom of the drawer at semester's end, working in FOSS is a chance to

+ contribute to a living project.

+ 

+ Working in FOSS gives you a chance to:

+ 

+ * Work with real-world, large codebases.

+ * Collaborate with real engineers and other professionals.

+ * Contribute to something meaningful while learning and earning.

+ * Learn tools and processes that are just like what you are going to use

+   if you work in technology after graduation.

+ * Make friends and contacts around the globe.

+ * Attract attention that can lead to an internship or job after

+   graduation.

+ * Create lifetime connections and associations.

+ 

+ If you are new to the Fedora Project, the following material will help

+ you to get started.

+ 

+ * link:https://docs.fedoraproject.org/fedora-project/project/fedora-overview.html[Fedora Project Overview]

+ * link:https://docs.fedoraproject.org[Fedora Technical and Community Documentation]

+ * link:https://fedoraproject.org/wiki/How_to_use_IRC[How to use IRC]

+ * link:https://fedoraproject.org/wiki/Development[Information about Development in Fedora]

+ 

+ === Student Responsibilities

+ 

+ You are the key ingredient for your project's success. This project is

+ important to you, your mentor, and the entire Fedora Community.

+ 

+ Your responsibilities include:

+ 

+ * Communicating early and often with your mentor.

+ * Blogging every week about what you're learning, how you're doing,

+   challenges and successes. This is key way to keep the entire Fedora

+   Community informed.

+ * Working with your mentor on realistic achievable milestones that

+   provide for regular deliverables and feedback.

+ * Attending the brief student calls, as announced

+ * Being accountable for your success and your actions

+ 

+ === mentor-information

+ 

+ NOTE: If you are contacted directly by a student, we encourage you

+ to reply and include the mailing list and/or IRC channel to keep the

+ process transparent and to ensure the inquiry is able to be answered by

+ more people than just you.

+ 

+ === How to Propose a Project

+ 

+ If you want to mentor a specific project, think carefully about several things:

+ 

+ 1. Do you have enough time to work on this with the student during the

+    entire project.  You will be helping someone else when they get stuck.

+    You don't want to become a blocker because you're busy.

+ 

+ 2. It is harder to find success when you are completely certain of how an

+    idea needs to be implemented; finding a student with the skills and

+    interest to implement a specific solution is a lot harder than finding

+    a student with enough skills to respond to a use case need. Also,

+    students learn more when they help design and guide the project. In

+    other words, provide guidance and direction but let the student do

+    some of the "driving."

+ 

+ 3. Where you can have looser ideas, you may be able to find a student

+    who works as a sort-of intern who can implement a solution to a use

+    case you have. In past experiences, students going after a use case are

+    more likely to get somewhere with self-direction and support from you.

+ 

+ 4. Who can help you?  Try to find a second mentor for the project.

+ 

+ If you're interested in working with a student on a specific project you should post your idea to the https://pagure.io/mentored-projects/issues[Mentored Projects Issue Tracker].  Your issue should be tagged *Outreachy* and use the *Outreachy - Proposed Project* template.  We strongly encourage you to find a second person to help with mentoring and to solicit feedback on your proposal

+ 

+ 

+ === Can I be a Mentor Without a Project?

+ 

+ Yes!  You can either:

+ 

+ * Work with a student who brings an idea to your sub-project. This

+   requires a different level of communication throughout the project,

+   but can be the most rewarding.

+ 

+ * Be a general mentor.  This is a person who works with all students

+   regardless of their project.  To become a general mentor please open

+   an issue in the https://pagure.io/mentored-projects/issues[Mentored

+   Projects Issue Tracker] offering your help.  Please tag the issue with

+   the *Outreachy* tag.

+ 

+ === mentor-responsibilities

+ 

+ You are an essential part of the student's success, the project's

+ success, and the success for the Fedora Project.

+ 

+ Your responsibilities include:

+ 

+ * Being an interface for an identified sub-project or SIG in Fedora.

+ * Helping students communicate with the overall project and any

+   upstream.

+ * Helping the student plan realistic achievable milestones that provide

+   for regular deliverables and feedback.

+ * Regular communication with your student. This means you must be

+   regularly available for the entire project. If you take a holiday you

+   need to know early and help your student be ready for your brief

+   absence.

+ * Attending a brief mentors call, as scheduled.

+ * Be the final, accountable person for deciding if the student is

+   successful or not. This is responsibility akin to being a professor or

+   boss.

+ 

+ 

+ * Read about mentor and their responsiblity in the

+   link:https://www.outreachy.org/mentor/#mentor[Outreachy mentor page]

+ 

+ === communication

+ 

+ * *Mailing List (Outreachy):*

+ * *Mailing List (devel list):* link:https://lists.fedoraproject.org/admin/lists/devel@lists.fedoraproject.org/[devel@lists.fedoraproject.org]

+ * *IRC:* link:https://webchat.freenode.net/?channels=#fedora-outreachy[#fedora-outreachy] or link:https://webchat.freenode.net/?channels=#fedora-devel[#fedora-devel] on Freenode

+ 

+ === administration

+ 

+ In order to get questions answered or obtain more information related to

+ this year's Outreachy with Fedora, please contact the administrators or ask on

+ the Outreachy list.

+ 

+ 1. link:https://fedoraproject.org/wiki/User:riecatnor[Marie Nordin]