From Fedora Project Wiki
Line 98: Line 98:
===How I plan to implement the proposal :===
===How I plan to implement the proposal :===


* Initially, tweak on the Hyperkitty mailing list widget(Issue #64), which will call out to the hyperkitty API to get the list of latest threads for a mailing list. It will take a single list-name as an argument for configuration. Use other widget as source of example to work on the frontend of the mailing list widget.
* Initially, tweak on the Hyperkitty mailing list widget(Issue #64), which will call out to the hyperkitty API to get the list of latest threads for a mailing list.
It will take a single list-name as an argument for configuration. Use other widget as source of example to work on the frontend of the mailing list widget.
* Aim to get it closer to the mockup(http://imgur.com/aA6smvR).Test it with various mailing lists locally.
* Aim to get it closer to the mockup(http://imgur.com/aA6smvR).Test it with various mailing lists locally.
* Work on the Blog Post widget(Issue #65). The Blog-Post widget will display the posts by members of a certain group, as shown in the mockup(http://imgur.com/VerIzuG). Discuss the  same with mentor.
* Work on the Blog Post widget(Issue #65). The Blog-Post widget will display the posts by members of a certain group, as shown in the mockup(http://imgur.com/VerIzuG). Discuss the  same with mentor.

Revision as of 19:28, 23 March 2016

Contact Information :


Why Fedora :

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.

Past involvement with the Fedora Project / Open-Source project :

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

Link to the merged PR's :

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

Past participation in GSoC :

No.

Contribution to the Fedora Project post GSoC :

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

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(https://dgplug.org/summertraining/) and worked on a project : https://github.com/Devyani-Divs/search_app, 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.

Contributions to any other Open source organizations/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):

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.

Any Other Open-source experience (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.

Relevant Experience :

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

Link to my patches :

  • Apart from that, I worked on few personal projects where I used the flask-framework, listed below :
    • 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
    • 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.
    • 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: [1]

How I plan to implement the proposal :

  • Initially, tweak on the Hyperkitty mailing list widget(Issue #64), which will call out to the hyperkitty API to get the list of latest threads for a mailing list.

It will take a single list-name as an argument for configuration. Use other widget as source of example to work on the frontend of the mailing list widget.

  • Aim to get it closer to the mockup(http://imgur.com/aA6smvR).Test it with various mailing lists locally.
  • Work on the Blog Post widget(Issue #65). The Blog-Post widget will display the posts by members of a certain group, as shown in the mockup(http://imgur.com/VerIzuG). 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 on developer.fedoraproject.org.
  • Work on more widgets if time permits.

Timeline :

  • 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.
        1. action add ticket to pagure.io for "Developer Hubs Widget Integration."
        2. action add OpenShift to the "Deploy and Distribute" tab on Developer.fedoraproject.org
    • May 30 - June 06 (1 week):
      • Create Introductory post on Personal Blog, and syndicate to Fedora Planet
      • Start working on the hub_badges widget/feature.
      • Discuss the same with the design-team. Feature: Issue #17 needs work with the widget that extracts badges according to the team-tag.
      • Create the necessary files/functions in the widgets/hub_badges.py for this feature.
      • Update personal blog posts for weekly status, to be syndicated on Fedora Planet (x1)
    • June 07 - June 26 (3 weeks):
    • 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) :
    • 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 deliverables :

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

  • Integrate Hubs successfully into the developer portal.
  • Feature both 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.

Miscellaneous information :

  • Developed apps using flask and Django frameworks, that should help me in developing the webapp.
  • Having worked with the webapps and also in the backend of various python -based projects, it would help me in finishing and deploying the Fedora-hubs web application.
  • 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.