From Fedora Project Wiki
 
(44 intermediate revisions by the same user not shown)
Line 1: Line 1:
* Your name: Devyani Kota
* Name: Devyani Kota
* FAS Account: Devyani7
* FAS Account: Devyani7
* Fedora userpage: https://fedoraproject.org/wiki/User:Devyani7
* Fedora userpage: https://fedoraproject.org/wiki/User:Devyani7


=== Contact Information ===
=== Contact Information : ===
* '''Email Address'''    : devyanikota@gmail.com
* '''Email Address'''    : devyanikota@gmail.com
* '''Blog URL'''        : https://devyani7kota.wordpress.com/
* '''Blog URL'''        : https://devyani7kota.wordpress.com/
Line 16: Line 16:
----
----


==== Why do I want to work with the Fedora Project? ====
==== 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.
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? ====
====Past involvement with the Fedora Project / Open-Source project : ====
Yes, I have been involved with fedora-hubs for the past six months.
Yes, I have been involved with fedora-hubs for the past six months.
Links to the bugs i worked on :
Links to the bugs i worked on :
https://pagure.io/fedora-hubs/issue/46
* https://pagure.io/fedora-hubs/issue/46
https://pagure.io/fedora-hubs/issue/49
* https://pagure.io/fedora-hubs/issue/49
https://pagure.io/fedora-hubs/issue/53
* https://pagure.io/fedora-hubs/issue/53
https://pagure.io/fedora-hubs/issue/10
* https://pagure.io/fedora-hubs/issue/10


Link to the merged PR's :
Link to the merged PR's :
https://pagure.io/fedora-hubs/pull-requests?status=False&author=devyani7
* https://pagure.io/fedora-hubs/pull-requests?status=False&author=devyani7


I have also contributed to fedora-infrastructure applications - mirrormanager2 and pkgdb2.
I have also contributed to fedora-infrastructure applications - mirrormanager2 and pkgdb2.
Few of my PR's that got merged :
Few of my PR's that got merged :
https://github.com/pulls?q=is%3Apr+author%3ADevyani-Divs+is%3Amerged
* https://github.com/pulls?q=is%3Apr+author%3ADevyani-Divs+is%3Amerged


==== Have you participated in GSoC in the past? If so, what year(s) and which organization(s)? ====
==== Past participation in GSoC :====
No.
No.


==== Do I plan to continue contributing to the Fedora Project after GSoC? If yes, what sub-project(s) are you interested with? ====
==== 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.
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 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.
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? ====
==== 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 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.
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:
Some more relevant points:
* I am familiar with primary OpenSource techniques- issue tracking, mailing lists, version control systems.
* 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.
  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 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 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 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 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 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.
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? ====
==== Contributions to any other Open source organizations/projects : ====
Apart from contributing to mirrormanager2 and pkgdb2, I contributed to Gnome and Sympy.
Apart from contributing to mirrormanager2 and pkgdb2, I contributed to Gnome and Sympy.
Earlier last year, I contributed the following to Gnome (gnome-shell):
Earlier last year, I contributed the following to Gnome (gnome-shell):
https://bug702460.bugzilla-attachments.gnome.org/attachment.cgi?id=289406,
* https://bug702460.bugzilla-attachments.gnome.org/attachment.cgi?id=289406,
https://bugzilla.gnome.org/attachment.cgi?id=300397&action=diff
* https://bugzilla.gnome.org/attachment.cgi?id=300397&action=diff


During PyCon India '15, I was introduced to the Sympy Project that I found to be very interesting.
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.
Later went on to add a test for a small issue.
https://github.com/sympy/sympy/pull/9979
* https://github.com/sympy/sympy/pull/9979


==== Do you have any other open source experience (even if not coding-related)? ====
==== Any Other Open-source experience (not coding-related) : ====
* I have been a volunteer for the past two years during PyCon India 2014 and 2015,
* 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.
  and have regularly contributed to the ideas to make the event better.
* Volunteered during PyCon India workshops to help out newbies learn the language.
* 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 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)
* Attended talks on various Open-source projects like openstack, flask-101 during mukti(tech-fest organised by NIT-Durgapur)


=='''Proposal Description'''==


==Proposal Description==
===Overview and The Need :===
 
===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.
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.
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===
===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
* 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.
  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.
* 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.
* 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.
  I have pretty  good experience with its features and applications as a user.
* Link to the bugs i worked on :
* My experience with fedora-hubs as a contributor has been great.
** https://pagure.io/fedora-hubs/issue/46
Thanks to my mentor for providing me with the relevant links that helped me test and run my developer version of fedora-hubs.
** https://pagure.io/fedora-hubs/issue/49
Link to the bugs i worked on :
** https://pagure.io/fedora-hubs/issue/53
------------------------------------
** https://pagure.io/fedora-hubs/issue/10
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 :
Link to my patches :
-------------------------
* https://pagure.io/fedora-hubs/pull-requests?status=False&author=devyani7
https://pagure.io/fedora-hubs/pull-requests?status=False&author=devyani7


* Apart from that, I worked on few personal projects where I used the flask-framework, listed below :
* 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.
** 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
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: [https://github.com/Devyani-Divs]
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: [https://github.com/Devyani-Divs]
 
===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):
===How I plan to implement the proposal :===
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):
*Before Coding Period(April-May) :
Clean Code and test for bugs.
**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.
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):
*Official Coding Period(May-August) :
Blog Post Widget http://imgur.com/VerIzuG : Issue #65
**Work on high-priority issues(Issue #11, #9).
Update personal blog posts for weekly status, to be syndicated on Fedora Planet (x3)
**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 <div> 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.


July 25 – Aug 01 (1 week):
===Timeline :===
Clean code and test for bugs.
* Before official coding period:
  Ensuring that the related bugs are fixed.
** April 23 - May 22 :
Code review by mentor.
***Understand the source-code of the existing fully-functional prototype of fedora-hubs.
Update personal blog posts for weekly status, to be syndicated on Fedora Planet
***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.


  Aug 02 - Aug 15(2 week) :
* 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 <div>.
***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.


Integrate Hubs widgets into https://developer.fedoraproject.org
===Final deliverables :===
Update personal blog posts for weekly status, to be syndicated on Fedora Planet (x2)
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.
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) :
Core features(High Priority) :
 
*Integrate Hubs successfully.
Mail-List widget and Blog-post widget.
*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.
*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.
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.
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).
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) :
AddOns(Medium Priority) :
 
*The group-hubs will feature a hub_badges widget, which will display the badges that belong to each team.
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) :
Future developments(might be added if time permits) :
*Work on the frontend of the widgets that still need work.
*Work on new widgets.


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.
===More details about me===
* I have keen interest increasing my Fedora and FOSS contribution.  
* 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.
* 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,
* 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.
  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
* As a contributor,  I have been working on various Fedora-infrastructure applications
* Recently tried contributing to sympy after PyCon India 2015.
* Recently tried contributing to sympy after PyCon India 2015.


===Potential Mentors===
===Potential Mentors :===


'''Corey Sheldon''' and '''Remy Decausemaker''' have offered to mentor me.
'''Corey Sheldon''' and '''Remy Decausemaker''' have offered to mentor me.

Latest revision as of 19:04, 25 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 :

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