From Fedora Project Wiki

Contact Information


Why do I want to work with the Fedora Project?

I have been using fedora since I first started using linux. The mentors in the Fedora Community being the greatest inspirations, and having watched their journey, I became a FOSS fan. I look forward to work and be involved with an organization which has an exciting culture and community. I aim to stick around and become a long term contributor in the community, and Fedora gives me exactly the oppurtunity.

Do I have any past involvement with the Fedora Project or another open-source project as a contributor?

Yes, I have been involved with fedora-hubs for the past six months. Links to the bugs i worked on :


[1] [2] [3] [4]

Link to the merged PR's :


[5]

I have also contributed to fedora-infrastructure applications - mirrormanager2 and pkgdb2. Few of my PR's that got merged : [6]

Have you participated in GSoC in the past? If so, what year(s) and which organization(s)?

No.

Do I plan to continue contributing to the Fedora Project after GSoC? If yes, what sub-project(s) are you interested with?

Since the summer-coding Idea I have chosen is in its early stage, there will be quite a number of tasks that might not be within the scope of the coding-period. I would surely work on improvising the application in various ways, and try to implement those improvements. I have already starred a few more fedora projects that I plan to contribute to, post GSoC. As an attempt to stay updated, I follow Fedora's various mailing lists regularly. I will maintain anything I develop and contribute wherever I can. But since, I have already started contributing to the fedora-infra team, I would like to continue to contribute to fedora-infra post GSoC as well.

Why choose me over other applicants?

I spent my first year in University volunteering at FOSS Events organised by my seniors. During the summer-vacation of second year, I attended the #dgplug summer-training and worked on a project[7] under the mentorship of Kushal Das. Since then, I have been using fedora for all purposes and became a dedicated user of FOSS products. I have been contributing to fedora-infrastructure applications regularly since then. I am very consistent with my work. While improvising the skills i already have, I want to learn more from the mentors of the Fedora Community so that I can learn to write code that would be helping the fedora-project and later become a part of the awesome community. I would consider GSoC to be a prestigious learning oppurtunity, after which i can identify myself as a part of a team whose products i constantly use. I can give 50 hours a week to the project untill mid-july, and 40 hours thereafter.

Some more relevant points:

  • I am familiar with primary OpenSource techniques- issue tracking, mailing lists, version control systems.
 Have used Gnome bugzilla for working on patches for Gnome. For personal projects, have used git.
  • I have experience in Object Oriented Programming and Web Technologies. I have worked with Python, C and Java.
 I have developed small applications using flask that can be found on my github and possess good coding skills.
  • I blog regularly, and I believe this will help me develop interesting and well laid-out documentation for the project.
  • I started communication about the project quite early, thanks to my mentor for helping me out learn about the project code-base.
 I try to be as self-sufficient as possible and use search-engine and mailing-lists effectively.

I take this program to be a nice starting point for a long-term connection with the Fedora Community to walk on the foot steps of the mentor am inspired by.

Have I contributed to any other open source organizations or projects?

Apart from contributing to mirrormanager2 and pkgdb2, I contributed to Gnome and Sympy. Earlier last year, I contributed the following to Gnome (gnome-shell): [8], [9]

During PyCon India '15, I was introduced to the Sympy Project that I found to be very interesting. Later went on to add a test for a small issue. [10]

Do you have any other open source experience (even if not coding-related)?

  • I have been a volunteer for the past two years during PyCon India 2014 and 2015,
 and have regularly contributed to the ideas to make the event better.
  • Volunteered during PyCon India workshops to help out newbies learn the language.
  • Attended FUDCON APAC 2015 that was organised in Pune, learned a lot from the talks and plan to contribute to docker soon.
  • Attended talks on various Open-source projects like openstack, flask-101 during mukti(tech-fest organised by NIT-Durgapur)


Proposal Description

Overview and The Need

Fedora-Hubs is the flask application to create a new web presence for all the Fedora users, subprojects, and communities. Few of the features of this system are planned to be integrated with the prototype of the Fedora Developer Portal, which is targeted at helping general developers use Fedora. The Hubs project aims at Fedora contributor circles, where the reusable features will allow the Portal to use this work to speak to general developers who may not have an interest in working in the Fedora community, but want to connect with community members for advice, best practices, or to generate interest in their upstream project. There are features that still need work such as the frontend, new capabilities in the backend, also new widgets that are still mockups and need work and are to be deployed.

Any relevant experience you have

  • As a contributor to Fedora-hubs, I have prior knowledge of the codebase, this would be helping me in integrating the new widgets
 for the hub pages over the current Hub pages using Flask and Python wherever required.
  • Am using fedora with gnome as my primary OS for the past 2 years for all purposes and became a dedicated user of FOSS products.
 I have pretty  good experience with its features and applications as a user.
  • My experience with fedora-hubs as a contributor has been great.
Thanks to my mentor for providing me with the relevant links that helped me test and run my developer version of fedora-hubs.
Link to the bugs i worked on :
------------------------------------
https://pagure.io/fedora-hubs/issue/46
https://pagure.io/fedora-hubs/issue/49
https://pagure.io/fedora-hubs/issue/53
https://pagure.io/fedora-hubs/issue/10

Link to my patches :
-------------------------
[11]
  • Apart from that, I worked on few personal projects where I used the flask-framework, listed below :
1. Flask Web Application : I have created a Flask Application called  the search_app which locates file in any pc in nearly constant time.  While working on them, I learnt how to use flask to build small  applications serving small purposes efficiently. I learnt how important  it is to optimise code to get the desired results in linear time.
Link to github : https://github.com/Devyani-Divs/search_app

2. Flask Web Application: I created another Flask Application called  insta_link which generates a link from a tweet, using the twitter API.  While working on this, I learnt how to use APIs to get the desired  results.
Link: https://github.com/Devyani-Divs/insta_link

 3. Last winter, I worked on a Django App to provide a question-answer  interface. This QA app provides an admin interface to add questions,  content and answers in a certain format, for the user to work on.
Link : https://github.com/Devyani-Divs/QA_DjangoApp/tree/base
Link to my github: [12]

How do you intend to implement your proposal

Refactoring will be done in the code base to a certain extent as discussed with the mentor and also the journaling feature - 'changelog' of glusterfs will be customised to serve the file-level synchronization.

  • Initially, tweak on the mail list widget. Use other widget as source of example to work on the frontend of the mail list widget.
  • Test it with various mailing lists locally.
  • Work on the Blog Post widget. Discuss the same with mentor.
  • Regularly review my code with the mentor.
  • Prepare the basic widgets to serve the required purpose, then hack on it to add the features as decided. ( in detail in the timeline)
  • Make sure it is PEP8 compliant.
  • Add features to widgets like frontend, and reordering of the widgets as required.(Only for individual hubs)
  • Sync with the mockups made by mizmo. Also, the final completed application to feature all the information of the hubs
 and widgets developer.fedoraproject.org.
  • Work on more widgets if time permits.


A rough timeline for your progress

Before official coding period:
April 23 - May 22 : Understand the source-code of the existing fully-functional prototype of fedora-hubs. 
Discuss and finalize the approach to create features in widgets.
Discuss project specifications with mentor.
Go through the codes more in detail in hubs/widgets, and learn how each module is working of the other widgets.

Official Coding Period:
    
May 23 - May 29 (1 week) : 
Tentative university end-semester exams.
#action add ticket to pagure.io for "Developer Hubs Widget Integration."
#action add OpenShift to the "Deploy and Distribute" tab on Developer.fp.o
#action add pagure.io ticket for Hyperkitty/Mail List Widget http://imgur.com/aA6smvR
#action add pagure.io ticket for Blog Post Widget http://imgur.com/VerIzuG
May 30 - June 06 (1 week):
Create Introductory post on Personal Blog, and syndicate to Fedora Planet
Start working on the subscribe-widget feature.
Discuss the same with the design-team. Feature: Issue #10 needs work  with the subscribe button that gives an idea if the user is subscribed  or not.
Create the necessary files/functions in the widgets/subscriptions.py for this feature.
Update personal blog posts for weekly status, to be syndicated on Fedora Planet (x1)
June 07 - June 26 (3 weeks):
Hyperkitty/Mail List Widget http://imgur.com/aA6smvR : Issue #64
Attain the "bootstrapped" series of Fedora Badges: ( https://fedorahosted.org/fedora-badges/ticket/409 )
Update personal blog posts for weekly status, to be syndicated on Fedora Planet (x3)
June 27 - July 03 (1 week):
Clean Code and test for bugs.
Fix related bugs and write documentation.
Code review by mentor.
Submitting and completing midterm evaluations.
Update personal blog posts for weekly status, to be syndicated on Fedora Planet
July 04 - July 24 (3 weeks):
Blog Post Widget http://imgur.com/VerIzuG : Issue #65
Update personal blog posts for weekly status, to be syndicated on Fedora Planet (x3)
July 25 – Aug 01 (1 week):
Clean code and test for bugs.
Ensuring that the related bugs are fixed.
Code review by mentor.
Update personal blog posts for weekly status, to be syndicated on Fedora Planet
Aug 02 - Aug 15(2 week) :
Integrate Hubs widgets into https://developer.fedoraproject.org
Update personal blog posts for weekly status, to be syndicated on Fedora Planet (x2)


Aug 16 - Aug 28(2 weeks):
Fix more related bugs.
Ensuring that the goal to get the above features is achieved.
Ensuring all bugs are fixed and code review by mentor.
Making the required changes. (if needed)
Work with Developer.fedoraproject.org to merge Hubs Widgets into Staging
Work with Developer.fedoraproject.org to merge Hubs Widgets into Production
Create "post-mortem" blog post for CommBlog (https://communityblog.fedoraproject.org ) about GSoC Internship as a whole

Post GSoC:
I would continue contributing to fedora-infra applications and be an active developer of Fedora.


Final deliverable

Largely, the summer goals would be to integrate Hubs into developer.fedoraproject.org with all the widgets working efficiently. Core features(High Priority) :

Mail-List widget and Blog-post widget. Fedora Hubs will also feature a hubs page for every individual which will display all the feed, information of the user. The Mail list widget will call out to the hyperkitty API to get the latest list of threads to the mailing list. Work on the frontend of the widgets to be displayed on the individual user-hub and also on the group-hub page. Write proper documentation for the application and its various features. It will also serve the purpose to make it easier for contributors/developers in the fedora-community to the work flow in various teams(eg.infra team can get updates of the design team and sync accordingly).

AddOns(Medium Priority) :

Work on hub_badges widget, which needs a feedback of various teams about tagging each badge according to each team.

Future developments(might be added if time permits) :

Work on the frontend of the widgets that still need work.


More details about me

  • I have keen interest increasing my Fedora and FOSS contribution.
  • I also possess good knowledge of the project's codebase and I have been in regular touch with my mentor since path 2 months.
  • As a user, Fedora being my favorite Linux distro, I use it as my primary OS because I love its user friendly interface,
 support forums  and best suited for my web application development environment. I have  worked on GNOME environment in the past two years.
  • As a contributor, I have been working on various Fedora-infrastructure applications
  • Recently tried contributing to sympy after PyCon India 2015.

Potential Mentors

Corey Sheldon and Remy Decausemaker have offered to mentor me. Also Ralph Bean mentioned to be around during the coding period, to help me out.