From Fedora Project Wiki

Contact Information


Why do you want to work with the Fedora Project?

I started my Linux journey with Fedora in 2011. During those times I was interested in trying out various flavors of Linux distribution. For the past 3 years, I have been using Fedora as my primary workstation. I have spend a lot of my time tweaking Fedora and trying to create new features. Now I look forward to work and be involved with Fedora organization and community to improve my coding abilities and standards. Also I would like to learn a lot during this wonderful period.

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

Yes, I have been involved with cockpit to get an understanding of their work.

I would love to contribute more in the future.

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

No.

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

Yes. Since I have worked with D-BUS services and methods, I would like to learn and improve my understanding in it by contributing more to active project. Cockpit gives me a wonderful opportunity and have very friendly community. I have also subscribed to their mailing list and IRC channel and would love to be part of cockpit in future. Cockpit has around 15 new milestones to work on and would love to do some post GSoC.

Why should we choose you over other applicants?

  • Some of the projects (hobby ones) I did in the past are out of love for coding and bringing a new feature to Fedora. Those projects brought interest and helped me learn a lot of new things. This includes gnome extension development, DBUS service and client creation, makefiles and lot more.
  • I would like continue this with same interest and enthusiasm by contributing to real projects by following the standards and requirements set by the community.
  • I would like to learn a lot from the mentors in the Fedora community and improve my skills to be like them.
  • I can give around 50-60 hour per week schedule during the first 2 months of the coding period. From July I will have classes, you can expect around 30 hours per week.

Some other points to consider :

  • I have beginner-intermediate level experience with DBUS and its service. I created D-BUS using Python, Gnome JS.
  • I thought of creating a prototype for mentors to look at in the limited time(exams). Some of the design decisions I made were wrong and was actively pointed out by both Stef Walter and Dominick Perpeet of Cockpit.
  • I am familiar with mailing lists, version control systems. I have used git in my hobby projects as well. I had to squash commits in the very first pull to cockpit to follow their guidelines.
  • In addition I have experience in web technologies like Django and Flask.

I would like take GSoC as a wonderful opportunity to improve my skills during the summer period.

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)?

Apart from the contribution to cockpit, I have developed a Cortana like application for Fedora. This project depends on external API's like Api.ai for AI processing and Google Speech Engine for NLP. This project involved the creation of DBUS service and extension development for display of notification as cards. Github : https://github.com/harishanand95/Bear

I have also developed a Quora like platform for college students with news-feed where faculty can verify answers . Github : https://github.com/harishanand95/QandA

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

  • I have attended Vulnerability and Penetration Testing training at my college.
  • I have volunteered and conducted Linux sessions at my college.

Project Description

A major component of the Fedora Server is the Cockpit Project, a web-based management console for servers. Systemd provides timers for calendar time events and monotonic time events. I would like to implement a module in Cockpit for creation and modification of timers to manage scheduled tasks. This project is also mentioned in the TODO-list of the Cockpit feature roadmap page.

How I plan to implement the proposal

  • Understanding the design and code base of cockpit's systemd files with the help from mentors.
  • Use of cockpit.file() to create .timer and .service files and using SetUnitProperties() to set values for all its properties from input.
  • Front end implementation may require bootstrap datetimepicker for setting timer values and I may need to go through codes to understand the design cockpit has.
  • Discussion of how to implement the different corner cases that can arise.
  • Regular review of code with the mentor.
  • Making sure that the code is complaint with the cockpit's coding standards.
  • Integration tests.

Goals

Plan of Action

  • Before official coding period:
    • April 22, 2016 - May 22, 2016
      • Getting to know everyone in community
      • Discussing possible ideas and approaches to take.
      • Tries to get a better understanding of Cockpit code structure.
    • May 23, 2016 - June 28, 2016
      • Starts working on creation of timers and setting its properties.
      • Most of the timer work will be done during this period and will attempt to complete calendar and monotonic timer events.
      • Code review by mentor.
    • Mid-term Evaluations
    • June 28, 2016 - August 16, 2016
      • Tries to complete any pending works from 1st coding period.
      • Clean Code and test for bugs.
      • Write documentation (if needed).
      • Code review by mentor.
    • August 16 - 24, 2016
      • Fix all related bugs and submit for final evaluation.
    • Post GSoC:
      • Fixing timer bugs (for sure) and would like to add new features to cockpit.