From Fedora Project Wiki
No edit summary
No edit summary
 
(5 intermediate revisions by the same user not shown)
Line 12: Line 12:


'''Twitter : ''' [https://twitter.com/justharshal twitter.com/justharshal]
'''Twitter : ''' [https://twitter.com/justharshal twitter.com/justharshal]
'''Github : ''' [https://github.com/justharshal github.com/justharshal]


'''Location :''' Bangalore, India
'''Location :''' Bangalore, India
Line 35: Line 37:
* HTML5, CSS3, Javascript
* HTML5, CSS3, Javascript


* Bootstrap and responsive UI
* Bootstrap and Responsive UI


* Experienced in Python
* Experienced in Python
Line 41: Line 43:
* Knowledge of databases like MySQL
* Knowledge of databases like MySQL


* Currently learning Node.js and Ruby
* Currently learning JavaScript (Node.js) and Ruby


* Comfortable using source control like Git (Command Line)
* Comfortable using source control like Git (Command Line)
Line 54: Line 56:


==== Why do you want to work with the Fedora Project? ====
==== 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 recommened 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 onboarding process.
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? ====
==== Do you have any past involvement with the Fedora Project or another open-source project as a contributor? ====
No, I do not have any past involvement with the Fedora Project or another open-source project as contributor.
Recently, I wrote a blog [https://communityblog.fedoraproject.org/using-fedora-email-alias-gmail/ post] on the community blog.
==== Have you participated in GSoC in the past? If so, what year(s) and which organization(s)? ====
==== 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.
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? ====
==== 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, since i was 12 actually. 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 techincal level for me to start contributing to. As my skills evolve i intend to move into much more technically challenging projects within the community.
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? ====
==== 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.
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.
==== 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)? ====
No,I have not contributed to any other open source organizations yet.
==== Do you have any other open source experience (even if not coding-related)? ====
No, i don't have any other open source experience.


==Proposal Description==
==Proposal Description==


===Overview===
===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.
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.


===Any relevant experience you have===
===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: [http://ditchconnect.com 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.
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: [http://ditchconnect.com 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.
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===
===Some drawbacks of the current system===
Line 100: Line 98:
* This can be thought of as an advanced combination of [http://whatcanidoforfedora.org/ whatcanidoforfedora.org] and a task list.
* This can be thought of as an advanced combination of [http://whatcanidoforfedora.org/ whatcanidoforfedora.org] and a task list.


* The above site does not have an active backend component, whereas the hubs onboarding experience will need one. It will need databases to store content too.
* 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.
* For more details, read on.
Line 116: Line 114:
* As this project has been planned for a long time, reading the large number of detailed blog posts can help in this matter.
* 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. Their needs and experiences will be separate and we'll keep that in mind while designing for them. Here are just a few, there will be more:
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:


*'''The 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.
*'''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.


*'''Hard Core Linux 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?
*'''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?


*'''The 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, then tell them about the way Fedora works and about our Principles and Values.
*'''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.


*'''The Documentor''' – People who want to help in the documentation of various projects or their translations. What languages do they know? How fleunt are they in those languages?
*'''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.
These are just a few, hundreds or possibly thousands of such questions can be asked altogether and their content will need to be created.
Line 130: Line 128:
'''Step 2:'''
'''Step 2:'''


* Analyze the available mock ups, create more where needed
* Analyze the front end with newly created mock-ups
* Discuss their advantages and disadvantages
* Prototype a referential interface in Bootstrap for further discussions
* Code the interfaces possibly using HTML, CSS, JS and use frameworks like Bootstrap and JQuery for making it responsive and modern


'''Step 3:'''
'''Step 3:'''
Line 143: Line 140:
===Timeline===
===Timeline===


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


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


====Community bonding period (28th of April - 25th of May)====
====Community bonding period (22nd of April - 22nd of May)====


* Start discussing the project with peers and mentors on IRC and mailing lists
* Start discussing the project with peers and mentors on IRC and mailing lists
* Present my ideas and recieve feedback
* Present my ideas and receive feedback
* Ask mentors if any additional tools need to be learnt and get used to them
* 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
* A lot of Step 1 would be completed in this period itself


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


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


====Period of submitting mid-term evaluations (27th of June - 3rd of July)====
====Period of submitting mid-term evaluations (21st of June - 28th of June)====


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


====Work Period before final evaluations (4th of July 8th of August)====
====Work Period before final evaluations (28th of June 16th of August)====


*'''Week 1'''
*'''Week 1'''
**Start working on the backend
**Start working on the back-end
**Create the required databases
**Create the required databases
*'''Week 2-3'''
*'''Week 2-3'''
**Continue working on the backend
**Continue working on the back-end
**Testing and bug fixing
**Testing and bug fixing
*'''Week 4-5'''
*'''Week 4-5'''
Line 185: Line 182:


===Have you communicated with a potential mentor? If so, who?===
===Have you communicated with a potential mentor? If so, who?===
I've interacted with multiple GSOC mentors.
 
* Have had several conversations with [https://fedoraproject.org/wiki/User:Jflory7 jflory7] on mailing list and IRC. I even wrote a blog [https://communityblog.fedoraproject.org/using-fedora-email-alias-gmail/ post] on the Community Blog with his guidance.
* Interacted several times with [https://fedoraproject.org/wiki/User:Jflory7 Jflory7] on mailing list and IRC. I even wrote a blog [https://communityblog.fedoraproject.org/using-fedora-email-alias-gmail/ post] on the Community Blog with his guidance.
* Had good conversations with [https://fedoraproject.org/wiki/User:Corey84 Corey] and [https://fedoraproject.org/wiki/User:Pingou Pingou] on IRC several times.
* Also interacted with [https://fedoraproject.org/wiki/User:Decause Decause], [https://fedoraproject.org/wiki/User:Corey84 Corey] and [https://fedoraproject.org/wiki/User:Pingou Pingou] on IRC several times.


[[Category:Summer coding 2016]]
[[Category:Summer coding 2016]]

Latest revision as of 18:50, 25 March 2016

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.