From Fedora Project Wiki

Info

Name: Harshal Bhatia

Email: justharshal@fedoraproject.org

IRC Nick : justharshal

Channels Found In : #fedora, #fedora-apps, #python, #fedora-commops

FAS username: justharshal

Twitter : twitter.com/justharshal

Github : github.com/justharshal

Location : Bangalore, India

Timezone: +5:30 GMT (IST)

About me

  • First year Computer Science and Engineering undergraduate student
  • Studying at Dr. Ambedkar Institute of Technology, Bangalore, India
  • Been a tech geek since i was 12 years old
  • Love learning new languages and frameworks and am very passionate about design
  • Passionate about Open Source. Looking to increase participation

Skills and Abilities

Computer Science

  • HTML5, CSS3, Javascript
  • Bootstrap and Responsive UI
  • Experienced in Python
  • Knowledge of databases like MySQL
  • Currently learning JavaScript (Node.js) and Ruby
  • Comfortable using source control like Git (Command Line)

Designing

  • Basic Photoshop skills
  • Mockup tools like Balsmiq Mockups

Questions to answer

Why do you want to work with the Fedora Project?

I started using Linux around 7 years ago with Ubuntu. Right now I'm using Fedora 23 which was recommended to me by multiple friends. Another reason I made the switch to Fedora is the much more receptive community. Which is why, I want to work with the Hubs team this summer. I intend to work on the new user on boarding process.

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

Recently, I wrote a blog post on the community blog.

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

No, I'm participating for the first time.

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

Absolutely! Although I've been into technology for a long time, in the recent years I've put in a more focused effort. I started learning Python about 3 years ago and it is the language I'm most comfortable in. The hubs project is the perfect technical level for me to start contributing to. As my skills evolve i intend to move into much more technically challenging projects within the community.

Why should we choose you over other applicants?

I believe there are many reasons for selecting me over other students. My early start with programming is one. I also intend to continue to grow my open source contributions rapidly over the next months. Also, see 'Relevant Experience' section.

Proposal Description

Overview

The intention, as I've understood it, behind the hubs project is to make a centralized location for Fedora contributors to communicate. The other goal, and this is where I want to focus is to help new contributors discover the project they might be right for and decrease the friction for them to start contributing.

Relevant Experience

I'm very comfortable in the basic requirements of HTML/CSS/JS. As mentioned already, Python is the language i'm most comfortable in. I also know most of the Bonus skills. I've been working with Bootstrap for a long time (For reference please see this landing page I made in 2014: ditchconnect.com). I'm confident that I can pick up any other minor skills in the two months that remain between now and the commencement of work.

Another very relevant experience i have is not programming related at all. I recently joined the Fedora community and discovered i had to do things like setting up ssh keys, IRC clients, mailing lists, and more. It wasn't very difficult but it sure was time consuming. In the videos, Mairin and others discuss about this imaginary new user who might have the skills but not necessarily the time or confidence to get started. I'm exactly the kind of person they are talking about. In some cases these new comers might not know which group they are right for. This is one of the issues that Hubs intends to solve and I think that apart from the programming experience, this experience which is fresh in my mind will make me the right choice for this project.

Some drawbacks of the current system

Only mentioning the points relevant to this segment. Reference: blog.linuxgrrl.com/2015/07/01/fedora-hubs-update/

  • Lot of effort required just to see what's going on
  • Setting up of IRC clients, SSH keys, mailing lists, etc.
  • Even if a person were willing to do all the above, no centralized place is available to do this.
  • Following links within wikis, from wikis to blogs and vice versa to find simple solutions.
  • All the above create a very high barrier of entry for a newcomer.

How do you intend to implement your proposal

Plan

  • I want to create an interactive process within hubs. On joining, the user will be asked some questions and recommended the next steps.
  • The above site does not have an active backend component, whereas the hubs on-boarding experience will need one. It will need databases to store content too.
  • For more details, read on.

Stages of implementation

The main approach for the project can be stated as follows:

Step 1:

  • Study the state of the current workflow, identify the drawbacks and discuss the possible improvements with relevant seniors and designers in the community.
  • This step includes identifying the current workflow of a new contributor while joining.
  • As this project has been planned for a long time, reading the large number of detailed blog posts can help in this matter.

We can divide the potential contributors in various categories. They'll have different needs and experiences, which we'll in mind while designing. Here are a few categories, there will be more:

  • Web Developer – People with knowledge of or having interest in web technologies like HTML/CSS/JS. These users need to be guided to the Infrastructure or CommOps groups.
  • Core Developer – People who have interest in the core parts of the system. They might have strong knowledge of the C language. Where to guide them next? Which teams might interest them?
  • Designer – Do they know to code? Yes/No? If yes, what? Do they know OSS tools like Inkscape or do they use Photoshop? If not, inform them about the way Fedora's Principles and Values.
  • Documentor – People who want to help in the documentation of various projects or their translations. What languages do they know? How fluent are they in those languages?

These are just a few, hundreds or possibly thousands of such questions can be asked altogether and their content will need to be created.

Step 2:

  • Analyze the front end with newly created mock-ups
  • Prototype a referential interface in Bootstrap for further discussions

Step 3:

  • Work on the backend
  • Create the required database tables
  • Identify bugs and resolve
  • Integrate the UI as templates into the application

Timeline

Up to the start of Community Bonding Period (26th of March - 22nd of April)

  • Revisiting the basics of Python and Bootstrap
  • Getting familiar with the Hubs code base

Community bonding period (22nd of April - 22nd of May)

  • Start discussing the project with peers and mentors on IRC and mailing lists
  • Present my ideas and receive feedback
  • Ask mentors if any additional tools need to be learnt and get used to them
  • A lot of Step 1 would be completed in this period itself

Work Period until mid-term evaluations (23rd of May – 21st of June)

  • Week 1-2
    • Finish doing mock-ups for all the cases and get them approved
  • Week 3-4
    • Code the responsive UI for the mock-ups
  • Week 5
    • Finish coding the front end
    • Tidying up code and bug fixing

Period of submitting mid-term evaluations (21st of June - 28th of June)

  • Completing and submitting mid-term evaluations
  • Carry on coding

Work Period before final evaluations (28th of June – 16th of August)

  • Week 1
    • Start working on the back-end
    • Create the required databases
  • Week 2-3
    • Continue working on the back-end
    • Testing and bug fixing
  • Week 4-5
    • Final integration with Hubs
    • Testing and bug fixing
  • Week 6
    • Buffer week to prevent the unwanted in case of emergencies.

Have you communicated with a potential mentor? If so, who?

  • Interacted several times with Jflory7 on mailing list and IRC. I even wrote a blog post on the Community Blog with his guidance.
  • Also interacted with Decause, Corey and Pingou on IRC several times.