From Fedora Project Wiki

This is a basic template of information you can use for filling out a GSoC application for the Fedora Project.


Contact Information

  • Email Address:
  • Freenode IRC Nick: Irunika
  • Code Forges (GitHub, GitLab, BitBucket, etc.):

Questions to answer

Why do you want to work with the Fedora Project?

Because I am open source enthusiastic undergraduate who have used Fedora for a long time and I’m now trying some other Debian distributions Ubuntu 15, Linux Mint, XUbuntu ect. So I always wanted to contribute to a Fedora project one day as well as to join Fedora

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

Even though I haven’t worked with Fedora Project I have spent my internship period in WSO2 ( A Fully Open Source Middleware Company . They also conduct projects in GSOC too )

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

No. But tried a project in WSO2.

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

Yes. The I would like to contribute to same Fedora-Hub project since that is where my interested areas lies.

Why should we choose you over other applicants?

I’m using open source every time and because I’m very interested in those stuff. Because of that I was able to get a chance to work as an intern in a fully open source company WSO2. So I know how open source community works and how to contribute. On top of all the things I have most of the knowledge that is needed to complete the project quickly since there would be very few things for me to learn and do. You will understand it if you go to my Github account.

Have you contributed to any other open source organizations or projects? If so, do you have artifacts you can show so we can see your skill set(s)?

Yes. But open source aspect I couldn’t contribute to released product since even in WSO2 I was doing an internal project in research and development team using Flask, Python NLTK and ML tool kits. But I’m creating some stuff with my friends as a hobby. Please refer my Github account

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

Department of Computer Engineering, University of peradeniya, Sri Lanka (where I’m doing my current undergraduate studies) is using open source software for everything, even in lab machines we are using Fedora and XUbuntu. It gave us exposure to open source culture very much. After that, as I earlier mentioned I joined WSO2 which is a full open source company as an intern and got to know how actually an open source environment and community is working.

Proposal Description

Overview and The Need

Any relevant experience you have

I have hands on experience in most of the things that you ask to implement the project.

  • Python
    • I have 2+ years experience in python. I have used NLTK, JIRA, Gmail, Google Search, Open CV ,some coding with Raspberry Pi and many more libraries in python for my projects
  • HTML/Javascript/CSS
    • I have 4+ years experience in web technologies and I have worked with front end technologies like Bootstrap, AngularJs, Jquery, Angular-bootstrap.
  • Jinja2 and Flask
    • This is one of key areas of my self studies and I have 1+ years experience in flask. I have done several projects using Flask and Jinja. It is interesting to use Jinja templates and create new pages in a easy way. Also I have deployed those projects using apache MOD_WSGI

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.

  • Phase 1:
    • First I try to clarify the things that I have to implement and the scope of the project. There is a site map of existing system[1]. So I will study it first and the code base since Flask is a micro-framework it can be implemented in many ways.
  • Phase 2:
    • Then add necessary capabilities to backend implement and the features required for the front end.
  • Phase 3:
    • Then I will create the widgets and deploy new widgets.
  • Phase 4:
    • Then Triage and process new widget ideas submitted by the community at large.

Finally I will Implement existing mockups from previous UI/UX work.

A rough timeline for your progress

  • May 23 - May 30 (1 week)
    • End Semester Examinations
  • May 30 - June (4 weeks)
    • Adding new features to the web frontend
    • Adding new capabilities to the backend
    • Fix UI bugs which already exists if time is enough (Extra)
  • June 27 - July 10 (2 weeks)
    • Writing and deploying new widgets
  • July 11 - July 24 (2 weeks)
    • Triaging and processing new widget ideas submitted by the community at large
  • July 25- July 31 (1 week)
    • Implementing existing (and thoroughly detailed) mockups from previous UI/UX interns and team members
  • Aug 01 - Aug 07 (1 week)
    • Mid Semester Examination
  • Aug 08 - Aug 14 (2 weeks)
    • Continue Implementing existing (and thoroughly detailed) mockups from previous UI/UX interns and team members
  • Aug 15 - Aug 21 (1 week)
    • Polishing the code base
    • Implement unfinished parts if exists
    • Fixed found bugs on the way if necessary

Final deliverable

Features which were discussed to implement during the summer with clean code base.

Any other details you feel we should consider

Please consider the deliverability of this project if I can contribute in this since it takes lot of time for someone to understand the architecture of flask implementation as well as Jinja templating. Because I have seen so many people who are misusing Jinja templating (Not even with “extends” or “includes”/ Some times using “include” instead of “extend” kind of scenarios. I have done those things in the beginning too.). Also I cloned the project and had a look at it. It is cool and there are somethings which I should learn even after doing few projects and intern project at WSO2 with flask. As well as you should consider that above table is a rough timeline and I feel that it is not the correct way of doing that. Since there are no details about what exactly to do in the summer I am giving you a rough idea. It can be changed after discussions during community bonding period.