From FedoraProject

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 :

  • Before Coding Period(April-May) :
    • Continue to work on the Hyperkitty mailing list posts and blog-posts to sync with the feed widget, for they being high priority issues. Since, we receive notifications based on irc preferences, they still need to be clustered into one post when a certain number of posts from similar thread are fired. Aim to get it closer to the mockups (http://imgur.com/aA6smvR) and (http://imgur.com/VerIzuG). Issue #64 and #65 sums it up. Work on the widgets/feed.py file.
  • Official Coding Period(May-August) :
    • Work on high-priority issues(Issue #11, #9).
    • Initially, tweak the Hubs bookmarks bar (Issue #11) on the individual user-hub pages.Bring it closer to this Bookmark-mockup. As shown in this mockup, provide the user a dropdown to select the hubs that he prefers to visit from a list of visited hubs. Work on the bookmarks() function in the hubs/models.py file. Most hubs show up in the bookmarks bar but those which do not fit will collapse into the dropdown. Again, allow the user to edit and configure the bookmarks bar at his/her will.
    • Work on the content notifications in the bookmarks bar (Issue #9). Bring it closer to this Notification-mockup. As explained in the mockup, a blue dot will be shown against the respective hub tab that has an unread notification. Similarly, if the hub is in listed in the dropdown, it will be shown against that dropdown-edit tab. Edit as required in the hubs/ templates/hubs.html file, in the bookmarks
      to get this feature.
    • Make sure it is PEP8 compliant. Regularly review my code with mentor.
    • 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 into staging.
    • (If time permits) Work on the Aging Hubs feature, to show whether the hub is active or not (Issue #43). Also, work on the admin model for each hub (Issue #14), Discuss the same with puiterwijk to avoid any security holes. This feature will allow the admin to add users as admins to the hubs.
    • Blog regularly and provide detailed documentation.

Timeline :

  • Before official coding period:
    • April 23 - May 22 :
      • Understand the source-code of the existing fully-functional prototype of fedora-hubs.
      • Attain the "bootstrapped" series of Fedora Badges: ( https://fedorahosted.org/fedora-badges/ticket/409 )
      • Hyperkitty/Mail List (sync with the feed-widget) : Issue #64. Aim to get it closer to the mockup: http://imgur.com/aA6smvR.
      • Work on Blog Post mockup: http://imgur.com/VerIzuG : Issue #65. Sync it with the feed widget.
      • Go through the codes more in detail in hubs/widgets, and learn how each module is working with the other widgets.
  • Official Coding Period:
    • May 23 - May 29 (1 week) :
      • Tentative university end-semester exams.
    • May 30 - June 06 (1 week):
      • Create Introductory post on Personal Blog, and syndicate to Fedora Planet
      • Discuss and finalize the approach to work on the bookmarks bar.
    • June 07 - June 26 (3 weeks):
      • Tweak the Hubs bookmarks bar(Issue #11) on the individual user-hub pages.
      • Work on the bookmarks() function in the hubs/models.py file to make the bookmarks editable and configurable.
      • 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):
      • Work on the content notifications in the bookmarks bar (Issue #9).
      • Issue #9 will be a cool feature to provide a drop-down to the user who opens more hub-pages than the tab bar can hold.
      • Edit as required in the hubs/ templates/hubs.html file, in the bookmarks
        .
      • 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.
      • Simultaneously, start working on the hub_badges widget, (Issue #17) needs feedback of various teams about tagging each badge according to each team-name.
      • 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
    • Aug 02 - Aug 15(2 week) :
      • Code review by mentor re: hub_badges widget.
      • Work and merge Hubs Widgets into Staging. If by that time, hubs ain’t in production, then will work on other high priority bugs simultaneously.
      • Update personal blog posts for weekly status, to be syndicated on Fedora Planet (x2)
    • Aug 16 - Aug 28(2 weeks):
      • If the above mentioned bugs are solved and time permits then, Start working on issue #14 that needs work with the admin modal (Needs discussion with puiterwijk regarding security holes).
      • 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)
      • 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 staging with all the widgets working efficiently.

  • Core features(High Priority) :
    • Integrate Hubs successfully.
    • Feature both Mailing-list posts and Blog-posts in the feed widget.
    • Provide a cool Bookmarks bar for the user to switch hub tabs at his will.
    • Provide info regarding the unread notifications with respect to each hub that he/she follows/subscribed to.
    • User-friendly 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) :
    • The group-hubs will feature a hub_badges widget, which will display the badges that belong to each team.
  • Future developments(might be added if time permits) :
    • Work on the frontend of the widgets that still need work.
    • Work on new widgets.

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

  • Integrate Hubs successfully.
  • Feature both Mailing-lists and Blog-posts in the feed widget.
  • Fedora Hubs will also feature a hubs page for every individual which will display all the feed, information of the user.
  • 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) :

  • The group-hubs will feature a hub_badges widget, which will display the badges that belong to each team.

Future developments(might be added if time permits) :

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

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.