Difference between revisions of "Summer of Code/2018/Making a Beginner Guide"
Pratul1997 (talk | contribs) |
Pratul1997 (talk | contribs) |
||
(43 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
== Google Summer of Code 2018 Project Proposal == | == Google Summer of Code 2018 Project Proposal == | ||
− | == Project Name: | + | == Project Name: Beginner's Guide | Developer’s dashboard | Sugarbot== |
=== Mentors=== | === Mentors=== | ||
Line 13: | Line 13: | ||
===My Profile=== | ===My Profile=== | ||
:'''Name:''' Pratul Kumar | :'''Name:''' Pratul Kumar | ||
− | :'''University:''':The LNM Institute of Information and Technology | + | :'''University:''' [https://www.lnmiit.ac.in/ The LNM Institute of Information and Technology] |
− | :'''Course:''' B.Tech. in | + | :'''Course:''' B.Tech. in Communication and Computer Engineering |
:'''Year:''' 2nd year (4th semester) | :'''Year:''' 2nd year (4th semester) | ||
:'''Email:''' pratulkumar1997@gmail.com | :'''Email:''' pratulkumar1997@gmail.com | ||
:'''Telephone:''' +91-8107525493 | :'''Telephone:''' +91-8107525493 | ||
:'''IRC:''' Pratul1997 | :'''IRC:''' Pratul1997 | ||
− | :''' | + | :'''SugarLabs wiki UserName:''' Pratul1997 |
:'''Github:''' [https://github.com/Pratul1997 Pratul1997] | :'''Github:''' [https://github.com/Pratul1997 Pratul1997] | ||
:'''Linkedin:''' [https://www.linkedin.com/in/pratul1997/ pratul1997] | :'''Linkedin:''' [https://www.linkedin.com/in/pratul1997/ pratul1997] | ||
:'''Facebook:''' [https://www.facebook.com/Pratul1997 Pratul1997] | :'''Facebook:''' [https://www.facebook.com/Pratul1997 Pratul1997] | ||
:'''Languages:''' English, Hindi | :'''Languages:''' English, Hindi | ||
− | :'''Time-Zone:''' Jaipur , India UTC+5:30 | + | :'''Time-Zone:''' Jaipur, India UTC+5:30 (Kolkata) |
=== Open Source Contribution === | === Open Source Contribution === | ||
Line 39: | Line 39: | ||
:* Open Source is a self-learning and motivational path for me and I want to completely indulge in this practice for 3 months during this summer. | :* Open Source is a self-learning and motivational path for me and I want to completely indulge in this practice for 3 months during this summer. | ||
− | ===Project | + | ===The Project=== |
− | ==== | + | ====Abstract==== |
− | :* To make a beginners guide for | + | :* To make a beginners guide for SugarLabs, a platform to guide them to start contributing and to taking care of FAQ’s like : |
::* <u>Where to start?</u> | ::* <u>Where to start?</u> | ||
::* <u>What to start?</u> | ::* <u>What to start?</u> | ||
Line 47: | Line 47: | ||
::* <u>Where to submit?</u> | ::* <u>Where to submit?</u> | ||
− | :* | + | :* Convert the markdown and grasp the content from different current documentations and bring all that information to a single place. |
− | :* The | + | :* The goal is to help new developers to settle easily into the SugarLabs world and provide a centralized documentation portal. |
− | :* | + | :* Make a dashboard for the users so that they can get to know about their developed and developing areas, track the projects, their progress and performance. Their contribution could also be seen by the other users, earning them respect in the society. |
− | + | ====Dashboard==== | |
− | + | ::* The Dashboard would contain user’s basic information ( like email address, name, handles etc. ) and would allow him to easily share his work and/or collaborate with others. | |
− | ====Dashboard | + | ::* The dashboard can be logged in with Google ID, Github or Facebook ( more login options like single login providers like OneLogin and login using StackOverflow / StackExchange network ID may also be added if needed in future ). |
− | ::* The Dashboard would contain user’s basic information (like email address, name, | + | ::* These details would be shared as per the privacy settings of the user where he can decide what information will be visible to which audience(a feature of user groups could be added in future). |
− | + | ::* The user would be able to bookmark the articles of the guide or add them to “read later” for future reference and access them from his dashboard whenever he needs. | |
− | ::* The dashboard can be logged in | + | ::* '''Login won’t be compulsory to view the documentation.''' |
− | ::* These details would be shared as per the privacy settings of the user where he can decide what information will visible to which audience. | + | :* '''Technologies Used:''' NodeJS, JavaScript, Jquery, Bootstrap |
− | ::* The user would be able to bookmark the articles of the guide or add them to “read later” | ||
− | ::* '''Login won’t be | ||
− | |||
− | :* '''Technologies Used:''' NodeJS | ||
− | |||
====Badge Feature in Dashboard==== | ====Badge Feature in Dashboard==== | ||
− | + | :* The documentation will be on the right side. The left side will contain navigation bar and links. | |
+ | :* There would be a button at the end of each page so when the user has completed a certain portion of the documentation he can press the button to confirm the completion and the progress would be reflected on his dashboard as a badge(certain stars will appear on his profile). | ||
+ | :* Newcomers would be engaged in this and they would also be able to share their badges on social media. So this also adds to promotion and publicity of Sugarlabs. | ||
+ | :* The user could log in by pressing “Sign In” option and sign into his dashboard with his registered credentials. | ||
+ | :* In case the user is not logged-in, he will be prompted to login so that the badge gets added to his account. | ||
====Add Shortcuts==== | ====Add Shortcuts==== | ||
+ | :* This feature is to ease the navigation and readability for the user. | ||
+ | :* This will help in several ways: | ||
+ | ::* If the user can’t read some part at that moment. | ||
+ | ::* If he feels some part is important to keep bookmarked for future. | ||
+ | ::* To help other users to get started in the community in very quick manner. | ||
+ | :* A button at the top right will be provided to integrate one-click easy shortcut addition to his dashboard. | ||
+ | '''Technologies used:''' Bootstrap, JavaScript, NodeJs | ||
====Sugarbot==== | ====Sugarbot==== | ||
− | :* I propose to integrate a bot, called SugarBot with Sugarlabs GitHub | + | :* I propose to integrate a bot, called SugarBot with Sugarlabs GitHub repositories. |
− | :* Sugarbot will keep track of repositories and | + | :* Sugarbot will keep track of the git repositories and issues being opened, and when a label ( like easy, medium, hard, GCI, GSoC etc. ) is being attached to them by the repo maintainer. |
− | :* | + | :* The bot will automatically reflect issues according to their labels within the corresponding group on the page(a part of our newcomer's guide). |
− | :* | + | :* If the newcomer wants to start contributing right away, he can view the list of issues label-wise and choose them according to difficulty level and required the skill set and start working. |
:* Skills need to work and implement the Sugarbot concept: | :* Skills need to work and implement the Sugarbot concept: | ||
::* https://developer.github.com/v3/issues/#list-issues | ::* https://developer.github.com/v3/issues/#list-issues | ||
Line 81: | Line 87: | ||
:::* [https://starters.servo.org/ Mozilla Starter Pack] | :::* [https://starters.servo.org/ Mozilla Starter Pack] | ||
:::* [https://publiclab.github.io/community-toolbox/ Publiclabs First Timer issue] | :::* [https://publiclab.github.io/community-toolbox/ Publiclabs First Timer issue] | ||
− | + | ::* Certain Featured bots who perform the similar tasks: | |
− | : '''Skills Required:''' NodeJs, JSON, XML, Javascript | + | :::* [https://github.com/coala/corobo Corobo] |
+ | :::* [https://github.com/publiclab/plotsbot plotsbot] | ||
+ | ::* For connection with IRC we will utilize [https://github.com/errbotio errbot] | ||
+ | : '''Skills Required:''' NodeJs, JSON, XML, Javascript or Python | ||
===Risks=== | ===Risks=== | ||
* '''Risk [[#1]]: your beginner guide does not help a beginner''' | * '''Risk [[#1]]: your beginner guide does not help a beginner''' | ||
− | ::* Currently Sugar Labs has multiple | + | ::* Currently Sugar Labs has multiple newcomer guides in the forms of a book, [https://wiki.sugarlabs.org/go/Documentation_Team Sugar Wiki], and [https://github.com/sugarlabs/sugar-docs sugardoc], [https://wiki.sugarlabs.org/go/Google_Code_In_2017/background GCI Starter]. |
− | ::* Now instead of having multiple newcomer | + | ::* I will try to bring the content of all these resources at sugardoc using [http://www.sphinx-doc.org/en/master/ sphinx] with [http://www.sphinx-doc.org/en/stable/theming.html classic] to convert markdown to HTML(then to pdf as needed). Another alternative to display content on our dashboard is using [http://docs.readthedocs.io/en/latest/embed.html ReadtheDoc Embed] feature. |
+ | ::* Now instead of having multiple newcomer guide resources, we can add all the resources in one place, removing other resources of newcomer guide. | ||
::* I have large student community at my college. I have a thought of organizing Sugar Labs online seminar, where we can guide them about Open Source contribution, and direct them to the newcomer guide. | ::* I have large student community at my college. I have a thought of organizing Sugar Labs online seminar, where we can guide them about Open Source contribution, and direct them to the newcomer guide. | ||
− | ::* | + | ::* I could take their feedback and improve the guide further. In case many students are facing the same problem, I’ll try to find the reason and resolve it. |
+ | ::* Further as only markdown will be used as new-comer guide, other resources have been removed, the community won't need to devote their time in maintaining multiple guides. | ||
* '''Risk [[#2]]; Beginner guide conflicts with other information''' | * '''Risk [[#2]]; Beginner guide conflicts with other information''' | ||
− | ::* | + | ::* Markdown would be utilized, [https://github.com/coala/coala/tree/master/docs/Developers an example] used by other organization. |
− | + | ::* Only open-source software and technologies like [https://github.com/twbs Bootstrap], [https://github.com/angular Angular], [https://github.com/nodejs NodeJs], [https://github.com/angular/material2 Material] etc will be used. | |
− | ::* | + | ::* Sphinx also provides the feature to convert the documentation to pdf format. |
− | ::* | ||
− | |||
::* Remove information from the current existing guide and put the link to new guide at those places and linked properly for proper navigation. | ::* Remove information from the current existing guide and put the link to new guide at those places and linked properly for proper navigation. | ||
* '''Risk [[#3]]; your beginner guide is abandoned soon after publishing''' | * '''Risk [[#3]]; your beginner guide is abandoned soon after publishing''' | ||
− | ::* I | + | ::* I would like to work on this project even after GSoC period gets over. I see a huge possibility of exploration of Sugarbot and I will try to keep updating guide and keep working on Sugarbot to make things automated and easy as long as I can. |
+ | ::* As there is the only one source of newcomer documentation which is sugar doc and markdown is used there, so it will be easy for everyone to update it on Github repository. We will also add a page with the contributor on Sugar Doc where we can list the name of developers who contributed to Sugardoc and other projects. Also as it will be the only source documentation so the risk of "Rarely do new people begin to edit" is also removed. The developers can showcase their contribution on that page so it is sort of social reward for them by Sugarlabs. | ||
+ | ::* As for the contributor who is not comfortable with Github, a part about getting started with Github will also be there in the newcomer guide. Link to basic syntax of https://www.markdowntutorial.com/ and [https://guides.github.com/activities/hello-world/ GitHub] and such links will also be there. There will also be badges when you complete this part. It will attract the contributor to learn Github and its task. After there learning they can also contribute to Sugarlabs through Github. | ||
+ | |||
+ | ===Timeline=== | ||
+ | :* GSoC is typically about 12 weeks long, with an additional 25 days of community bonding period. | ||
+ | :* The evaluation is in three phases viz. Phase I, Phase II and Phase III. I have divided my workflow accordingly. | ||
+ | :* Further I have divided the features by their “difficulty level” and “time requirement” and decided the sequence of implementation of features in each phase accordingly. | ||
+ | ::* Brief description of each phase : | ||
+ | :::* '''Phase I: ''' During this phase, I’ll work on the features which can be implemented in less time and don’t involve too much complexity. This would include things like the dashboard feature and the newcomer's guide. | ||
+ | :::* '''Phase II:''' This phase will consist of features which have medium difficulty and also one or two harder level features which require more time, such that implementing and testing the newcomers guide and improving it according to the feedback input. Emphasis would be made on testing the implemented features during this period. Dashboard for badges will also be incorporated during this phase. | ||
+ | :::* '''Phase III:''' During the final phase, I will devote my time mainly on the harder to implement features and the ones left out from Phase I and Phase II. I’ll again focus on making the newcomers guide even better, test it on different screen sizes like mobile phones, tablets, and computers, so as to make sure that it is responsive enough on all the types of devices. Will also work to add Sugarbot to the newcomer guide. | ||
+ | : {| class="wikitable" | ||
+ | |- | ||
+ | ! Time Frame !! Start Date - End Date !! Task | ||
+ | |- | ||
+ | | Community Bonding || April 24 - April 30 || | ||
+ | Gather information about all SugarLabs project and their dependencies | ||
+ | |||
+ | Try to install those Sugar Labs project on my local machine | ||
+ | |||
+ | In case of any problem will try to contact the project maintainer | ||
+ | |- | ||
+ | | || May 1 - May 6 || | ||
+ | Learn NodeJs in more depth which will be required for implementing the Sugarbot | ||
+ | |- | ||
+ | | || May 7 - May 13 || | ||
+ | A lot of discussions with the community, discussions with mentors | ||
+ | |||
+ | on an implementation of features whose reference links I was unable to find. | ||
+ | |||
+ | If my mentor thinks I am ready to start then I’ll start working on Phase I | ||
+ | |- | ||
+ | | Phase I || May 14 - May 20 || | ||
+ | Start making Dashboard | ||
+ | |- | ||
+ | | || May 21 - May 27 || | ||
+ | Addition Privacy feature to the dashboard | ||
+ | |- | ||
+ | | || May 28 - June 03 || | ||
+ | Start work on newcomers/beginners Guide | ||
+ | |- | ||
+ | | || June 04 - June 10 || | ||
+ | Use Bootstrap to make the beginner guide responsive | ||
+ | |- | ||
+ | | || June 11 - June 17 || | ||
+ | Add JQuery to make the newcomers guide more interactive | ||
+ | |- | ||
+ | | Phase II || June 18 - June 24 || | ||
+ | Remove extra components of Bootstrap and Jquery | ||
+ | |||
+ | (prepare the minimized bootstrap and JQuery) to make our website load faster | ||
+ | |||
+ | |- | ||
+ | | || June 25 - July 01 || | ||
+ | Start work on adding checkpoints after the suitable interval in the Guide. | ||
+ | |- | ||
+ | | || July 02 - July 08 || | ||
+ | Linking badge with the checkpoints so that when clicked the badges get | ||
+ | |||
+ | reflected in the user’s profile | ||
+ | |- | ||
+ | | || July 09 - July 15 || | ||
+ | Cleanup of code and extensive testing | ||
+ | |- | ||
+ | | Phase III || July 16 - July 22 || | ||
+ | Work on Sugarbot which looks for labels and adds them to its database | ||
+ | |- | ||
+ | | || July 23 - July 29 || | ||
+ | Making the layout of issue section in the website to list all issues at a single place | ||
+ | |- | ||
+ | | || July 30 - August 05 || | ||
+ | Integrating latest 10 issues on the website | ||
+ | |- | ||
+ | | || August 06 - August 14 || | ||
+ | Extensive testing of newcomer guide and Sugarbot | ||
+ | |- | ||
+ | | After GSoC || ||Keep contributing to Sugarlabs and updating the newcomer's guide | ||
+ | |||
+ | as the dependencies change or the project description changes. | ||
+ | |||
+ | Help others to contribute to and use Sugar Labs projects. | ||
+ | |||
+ | Work to improve and advance Sugarbot for a lot more automation. | ||
+ | |||
+ | Serve as GCI mentor for this the above listed new projects and guide the | ||
+ | |||
+ | new students to work on them.Take feedback from students during GCI about | ||
+ | |||
+ | the current productivity of the dashboard and desirable new features | ||
+ | |||
+ | to the newcomer guide. Linking of data analysis of the dashboard and also, | ||
+ | |||
+ | add analysis of specific parts on which fewer badges were received. | ||
+ | |} | ||
===Project and the community=== | ===Project and the community=== | ||
*'''If your project is successfully completed, what will its impact be on the Sugar Labs community?''' | *'''If your project is successfully completed, what will its impact be on the Sugar Labs community?''' | ||
− | ::* If the project is successful it will be of huge help for new developers to SugarLabs as well as | + | ::* If the project is successful it will be of huge help for new developers to SugarLabs as well as for establishing ones to get all the documentation at one place in a well-organized way. This will also give first-time users a pleasant experience as they won't have to figure out all the procedures by themselves. |
− | ::* FAQ’s like “How to download | + | ::* FAQ’s like “How to download Sugar labs projects” and “how to start contributing” would be taken care of at a single place in an organized way. |
− | ::* To make it more user-friendly there would be testing as well as feedback and suggestions from the users | + | ::* To make it more user-friendly there would be testing as well as feedback and suggestions from the users and changes would be made accordingly. |
− | ::* Dashboard will bring all the community features at a single place and badges would reflect how much a user has used our documentation and how much | + | ::* Dashboard will bring all the community features at a single place and badges would reflect how much a user has used our documentation and of how much help it has been. |
::* If there is some part of the documentation that is not completed by the majority of the newcomers, (this can be seen by the number of badges with the students) then more emphasis will be laid to that part for more refining. | ::* If there is some part of the documentation that is not completed by the majority of the newcomers, (this can be seen by the number of badges with the students) then more emphasis will be laid to that part for more refining. | ||
− | ::* Sugarbot will be a new project to Sugar labs which could be further expanded and embedded within our chatting and mailing channel. | + | ::* Sugarbot will be a new project to Sugar labs which could be further expanded and embedded within our chatting and mailing channel. |
::* In future, it could also be utilized for assigning issues thus increasing automation and productivity. There seems to be a lot of scope for Sugarbot’s expansion. | ::* In future, it could also be utilized for assigning issues thus increasing automation and productivity. There seems to be a lot of scope for Sugarbot’s expansion. | ||
+ | |||
*'''What will you do if you get stuck on your project and your mentor isn't around?''' | *'''What will you do if you get stuck on your project and your mentor isn't around?''' | ||
− | ::* I will try to resolve the issue myself by looking it up on | + | ::* I will try to resolve the issue myself by looking it up on DuckDuckGo, StackOverflow etc. |
::* Read the documentation of the tool in which problem occurs. | ::* Read the documentation of the tool in which problem occurs. | ||
::* Contact other SugarLabs members through IRC, developer mailing lists | ::* Contact other SugarLabs members through IRC, developer mailing lists | ||
::* If the problem is still not resolved, I will engross myself on some other module to keep the things rolling and wait for my mentors to help me out. | ::* If the problem is still not resolved, I will engross myself on some other module to keep the things rolling and wait for my mentors to help me out. | ||
+ | |||
*'''How do you propose you will be keeping the community informed of your progress and any problems or questions you might have over the course of the project?''' | *'''How do you propose you will be keeping the community informed of your progress and any problems or questions you might have over the course of the project?''' | ||
::* Convey daily work to my mentors | ::* Convey daily work to my mentors | ||
::* Daily updates on IRC | ::* Daily updates on IRC | ||
::* I will keep posting updates on my work on the developer mailing as per requirements | ::* I will keep posting updates on my work on the developer mailing as per requirements | ||
− | ::* | + | ::* I'll update my weekly work on Github |
::* Keep my work well documented for the community. | ::* Keep my work well documented for the community. | ||
Line 127: | Line 232: | ||
* '''Do you have plans to have any other job or internship during this period?''' No | * '''Do you have plans to have any other job or internship during this period?''' No | ||
* '''Do you have any short-term commitment during this period?''' No | * '''Do you have any short-term commitment during this period?''' No | ||
− | * '''Do you have | + | * '''Do you have classes that overlap during this period?''' |
− | ::* My current semester | + | ::* My current semester exams are from 29<sup>th</sup> April to 5<sup>th</sup> May and next semester will start on 27th July. |
+ | ::* During my exam tenure, I will not be able to contribute. | ||
::* During the vacation time, I can fully devote my time to this project. After my next semester starts I can manage to work for at least 4-6 hours a day. | ::* During the vacation time, I can fully devote my time to this project. After my next semester starts I can manage to work for at least 4-6 hours a day. | ||
* '''Since when you have been part of the community?''' | * '''Since when you have been part of the community?''' | ||
::* I have been part of Sugarlabs community since October 2017. | ::* I have been part of Sugarlabs community since October 2017. | ||
::* I have also tried to serve as GCI mentor and guide new students, I will be part of Sugarlabs community even after completion of GSoC tenure. | ::* I have also tried to serve as GCI mentor and guide new students, I will be part of Sugarlabs community even after completion of GSoC tenure. | ||
− | ::* I’ll try to keep on adding newer features and ideas to the project after GSoC as there are a few ideas in my mind ( like dashboard feature can be explored in the much better way in future like Season of KDE dashboard and certain other competitions like BOSS - Bountiful Open Source Summer) which can’t be implemented within the tenure of GSoC. I would like to work upon those ideas after GSoC. | + | ::* I’ll try to keep on adding newer features and ideas to the project after GSoC as there are a few ideas in my mind ( like dashboard feature can be explored in the much better way in future like [https://season.kde.org/?q=program_home&prg=46 Season of KDE dashboard] and certain other competitions like [https://lab.codingblocks.com/boss/ BOSS - Bountiful Open Source Summer]) which can’t be implemented within the tenure of GSoC. I would like to work upon those ideas after GSoC. |
Latest revision as of 14:03, 20 March 2018
Google Summer of Code 2018 Project Proposal
Project Name: Beginner's Guide | Developer’s dashboard | Sugarbot
Mentors
- Jaskirat Singh
- Hrishi Patel
- Rishabh Thaney
- Shivang Shekhar
- Samson Goddy
- Abdulazeez Abdulazeez
My Profile
- Name: Pratul Kumar
- University: The LNM Institute of Information and Technology
- Course: B.Tech. in Communication and Computer Engineering
- Year: 2nd year (4th semester)
- Email: pratulkumar1997@gmail.com
- Telephone: +91-8107525493
- IRC: Pratul1997
- SugarLabs wiki UserName: Pratul1997
- Github: Pratul1997
- Linkedin: pratul1997
- Facebook: Pratul1997
- Languages: English, Hindi
- Time-Zone: Jaipur, India UTC+5:30 (Kolkata)
Open Source Contribution
- Have you participated in an open-source project before? If so, please send us URLs to your profile pages for those projects or some other demonstration of the work that you have done in open-source. If not, why do you want to work on an open-source project this summer?
- Yes I have been contributing to Open Source since September 2017.
- Organisations :
- Sugarlabs
- CybrosX (Open-Source Organisation of my college Computer Club)
- I am managing one Open-Source organization of my college.
-
- LNMHacks 2.0 Website( LNMHacks is the Hackathon conducted by LNMIIT in November )
- Pull-Request-and-Hacktoberfest( To promote Open Source Contribution during October )
- My first Pull request: Removed Material CSS #14
- Open Source is a self-learning and motivational path for me and I want to completely indulge in this practice for 3 months during this summer.
The Project
Abstract
- To make a beginners guide for SugarLabs, a platform to guide them to start contributing and to taking care of FAQ’s like :
- Where to start?
- What to start?
- How to start?
- Where to submit?
- Convert the markdown and grasp the content from different current documentations and bring all that information to a single place.
- The goal is to help new developers to settle easily into the SugarLabs world and provide a centralized documentation portal.
- Make a dashboard for the users so that they can get to know about their developed and developing areas, track the projects, their progress and performance. Their contribution could also be seen by the other users, earning them respect in the society.
Dashboard
- The Dashboard would contain user’s basic information ( like email address, name, handles etc. ) and would allow him to easily share his work and/or collaborate with others.
- The dashboard can be logged in with Google ID, Github or Facebook ( more login options like single login providers like OneLogin and login using StackOverflow / StackExchange network ID may also be added if needed in future ).
- These details would be shared as per the privacy settings of the user where he can decide what information will be visible to which audience(a feature of user groups could be added in future).
- The user would be able to bookmark the articles of the guide or add them to “read later” for future reference and access them from his dashboard whenever he needs.
- Login won’t be compulsory to view the documentation.
- Technologies Used: NodeJS, JavaScript, Jquery, Bootstrap
Badge Feature in Dashboard
- The documentation will be on the right side. The left side will contain navigation bar and links.
- There would be a button at the end of each page so when the user has completed a certain portion of the documentation he can press the button to confirm the completion and the progress would be reflected on his dashboard as a badge(certain stars will appear on his profile).
- Newcomers would be engaged in this and they would also be able to share their badges on social media. So this also adds to promotion and publicity of Sugarlabs.
- The user could log in by pressing “Sign In” option and sign into his dashboard with his registered credentials.
- In case the user is not logged-in, he will be prompted to login so that the badge gets added to his account.
Add Shortcuts
- This feature is to ease the navigation and readability for the user.
- This will help in several ways:
- If the user can’t read some part at that moment.
- If he feels some part is important to keep bookmarked for future.
- To help other users to get started in the community in very quick manner.
- A button at the top right will be provided to integrate one-click easy shortcut addition to his dashboard.
Technologies used: Bootstrap, JavaScript, NodeJs
Sugarbot
- I propose to integrate a bot, called SugarBot with Sugarlabs GitHub repositories.
- Sugarbot will keep track of the git repositories and issues being opened, and when a label ( like easy, medium, hard, GCI, GSoC etc. ) is being attached to them by the repo maintainer.
- The bot will automatically reflect issues according to their labels within the corresponding group on the page(a part of our newcomer's guide).
- If the newcomer wants to start contributing right away, he can view the list of issues label-wise and choose them according to difficulty level and required the skill set and start working.
- Skills need to work and implement the Sugarbot concept:
- https://developer.github.com/v3/issues/#list-issues
- https://github.com/nodejs/github-bot
- To retrieve data from Developer Github API, JSON knowledge needed.
- The inspiration of ideas are from to:
- Certain Featured bots who perform the similar tasks:
- For connection with IRC we will utilize errbot
- Skills Required: NodeJs, JSON, XML, Javascript or Python
Risks
- Risk #1: your beginner guide does not help a beginner
- Currently Sugar Labs has multiple newcomer guides in the forms of a book, Sugar Wiki, and sugardoc, GCI Starter.
- I will try to bring the content of all these resources at sugardoc using sphinx with classic to convert markdown to HTML(then to pdf as needed). Another alternative to display content on our dashboard is using ReadtheDoc Embed feature.
- Now instead of having multiple newcomer guide resources, we can add all the resources in one place, removing other resources of newcomer guide.
- I have large student community at my college. I have a thought of organizing Sugar Labs online seminar, where we can guide them about Open Source contribution, and direct them to the newcomer guide.
- I could take their feedback and improve the guide further. In case many students are facing the same problem, I’ll try to find the reason and resolve it.
- Further as only markdown will be used as new-comer guide, other resources have been removed, the community won't need to devote their time in maintaining multiple guides.
- Risk #2; Beginner guide conflicts with other information
- Markdown would be utilized, an example used by other organization.
- Only open-source software and technologies like Bootstrap, Angular, NodeJs, Material etc will be used.
- Sphinx also provides the feature to convert the documentation to pdf format.
- Remove information from the current existing guide and put the link to new guide at those places and linked properly for proper navigation.
- Risk #3; your beginner guide is abandoned soon after publishing
- I would like to work on this project even after GSoC period gets over. I see a huge possibility of exploration of Sugarbot and I will try to keep updating guide and keep working on Sugarbot to make things automated and easy as long as I can.
- As there is the only one source of newcomer documentation which is sugar doc and markdown is used there, so it will be easy for everyone to update it on Github repository. We will also add a page with the contributor on Sugar Doc where we can list the name of developers who contributed to Sugardoc and other projects. Also as it will be the only source documentation so the risk of "Rarely do new people begin to edit" is also removed. The developers can showcase their contribution on that page so it is sort of social reward for them by Sugarlabs.
- As for the contributor who is not comfortable with Github, a part about getting started with Github will also be there in the newcomer guide. Link to basic syntax of https://www.markdowntutorial.com/ and GitHub and such links will also be there. There will also be badges when you complete this part. It will attract the contributor to learn Github and its task. After there learning they can also contribute to Sugarlabs through Github.
Timeline
- GSoC is typically about 12 weeks long, with an additional 25 days of community bonding period.
- The evaluation is in three phases viz. Phase I, Phase II and Phase III. I have divided my workflow accordingly.
- Further I have divided the features by their “difficulty level” and “time requirement” and decided the sequence of implementation of features in each phase accordingly.
- Brief description of each phase :
- Phase I: During this phase, I’ll work on the features which can be implemented in less time and don’t involve too much complexity. This would include things like the dashboard feature and the newcomer's guide.
- Phase II: This phase will consist of features which have medium difficulty and also one or two harder level features which require more time, such that implementing and testing the newcomers guide and improving it according to the feedback input. Emphasis would be made on testing the implemented features during this period. Dashboard for badges will also be incorporated during this phase.
- Phase III: During the final phase, I will devote my time mainly on the harder to implement features and the ones left out from Phase I and Phase II. I’ll again focus on making the newcomers guide even better, test it on different screen sizes like mobile phones, tablets, and computers, so as to make sure that it is responsive enough on all the types of devices. Will also work to add Sugarbot to the newcomer guide.
Time Frame Start Date - End Date Task Community Bonding April 24 - April 30 Gather information about all SugarLabs project and their dependencies
Try to install those Sugar Labs project on my local machine
In case of any problem will try to contact the project maintainer
May 1 - May 6 Learn NodeJs in more depth which will be required for implementing the Sugarbot
May 7 - May 13 A lot of discussions with the community, discussions with mentors
on an implementation of features whose reference links I was unable to find.
If my mentor thinks I am ready to start then I’ll start working on Phase I
Phase I May 14 - May 20 Start making Dashboard
May 21 - May 27 Addition Privacy feature to the dashboard
May 28 - June 03 Start work on newcomers/beginners Guide
June 04 - June 10 Use Bootstrap to make the beginner guide responsive
June 11 - June 17 Add JQuery to make the newcomers guide more interactive
Phase II June 18 - June 24 Remove extra components of Bootstrap and Jquery
(prepare the minimized bootstrap and JQuery) to make our website load faster
June 25 - July 01 Start work on adding checkpoints after the suitable interval in the Guide.
July 02 - July 08 Linking badge with the checkpoints so that when clicked the badges get
reflected in the user’s profile
July 09 - July 15 Cleanup of code and extensive testing
Phase III July 16 - July 22 Work on Sugarbot which looks for labels and adds them to its database
July 23 - July 29 Making the layout of issue section in the website to list all issues at a single place
July 30 - August 05 Integrating latest 10 issues on the website
August 06 - August 14 Extensive testing of newcomer guide and Sugarbot
After GSoC Keep contributing to Sugarlabs and updating the newcomer's guide as the dependencies change or the project description changes.
Help others to contribute to and use Sugar Labs projects.
Work to improve and advance Sugarbot for a lot more automation.
Serve as GCI mentor for this the above listed new projects and guide the
new students to work on them.Take feedback from students during GCI about
the current productivity of the dashboard and desirable new features
to the newcomer guide. Linking of data analysis of the dashboard and also,
add analysis of specific parts on which fewer badges were received.
Project and the community
- If your project is successfully completed, what will its impact be on the Sugar Labs community?
- If the project is successful it will be of huge help for new developers to SugarLabs as well as for establishing ones to get all the documentation at one place in a well-organized way. This will also give first-time users a pleasant experience as they won't have to figure out all the procedures by themselves.
- FAQ’s like “How to download Sugar labs projects” and “how to start contributing” would be taken care of at a single place in an organized way.
- To make it more user-friendly there would be testing as well as feedback and suggestions from the users and changes would be made accordingly.
- Dashboard will bring all the community features at a single place and badges would reflect how much a user has used our documentation and of how much help it has been.
- If there is some part of the documentation that is not completed by the majority of the newcomers, (this can be seen by the number of badges with the students) then more emphasis will be laid to that part for more refining.
- Sugarbot will be a new project to Sugar labs which could be further expanded and embedded within our chatting and mailing channel.
- In future, it could also be utilized for assigning issues thus increasing automation and productivity. There seems to be a lot of scope for Sugarbot’s expansion.
- What will you do if you get stuck on your project and your mentor isn't around?
- I will try to resolve the issue myself by looking it up on DuckDuckGo, StackOverflow etc.
- Read the documentation of the tool in which problem occurs.
- Contact other SugarLabs members through IRC, developer mailing lists
- If the problem is still not resolved, I will engross myself on some other module to keep the things rolling and wait for my mentors to help me out.
- How do you propose you will be keeping the community informed of your progress and any problems or questions you might have over the course of the project?
- Convey daily work to my mentors
- Daily updates on IRC
- I will keep posting updates on my work on the developer mailing as per requirements
- I'll update my weekly work on Github
- Keep my work well documented for the community.
Other Commitments
- Have you applied to other organization? No
- Do you have plans to have any other job or internship during this period? No
- Do you have any short-term commitment during this period? No
- Do you have classes that overlap during this period?
- My current semester exams are from 29th April to 5th May and next semester will start on 27th July.
- During my exam tenure, I will not be able to contribute.
- During the vacation time, I can fully devote my time to this project. After my next semester starts I can manage to work for at least 4-6 hours a day.
- Since when you have been part of the community?
- I have been part of Sugarlabs community since October 2017.
- I have also tried to serve as GCI mentor and guide new students, I will be part of Sugarlabs community even after completion of GSoC tenure.
- I’ll try to keep on adding newer features and ideas to the project after GSoC as there are a few ideas in my mind ( like dashboard feature can be explored in the much better way in future like Season of KDE dashboard and certain other competitions like BOSS - Bountiful Open Source Summer) which can’t be implemented within the tenure of GSoC. I would like to work upon those ideas after GSoC.