GSoC Introduction to the community

I am Pratul Kumar, sophomore from LNMIIT Jaipur.
I would be working on the project Project: Beginner’s Guide | Developer’s Dashboard | Sugarbot.
I am writing this blog with the aim to give a brief introduction about myself and the project, along with how I will be proceeding throughout the GSoC ’18 time tenure.
Each week I am going to update the blog with the addition of next week’s ambition and previous week work.

This year I got the privilege to work as student developer under the program Google Summer of Code, I am thankful to Sugar labs community for providing with such opportunity and I will try to give my best to justify their decision and their trust.

Brief Description about the project

My project is Beginner’s Guide | Developer’s Dashboard | Sugar-bot , this a sort of new project addition to the community ,with the ambition to make the life easy for new-comer and also aid them, by not only how to do, what to do but also where to do and what sort of issues the contributor can target according to his current skill set.
The goal is to help new developers to settle easily into the Sugar Labs 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.
Sugar-bot 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.

Week 1 Work Updates (24th April to 30th April)

I had interaction with my mentors:
1. Jaskirat Singh
2. Divyanshu Rawat
3. Abdulazeez Abdulazeez
4. Shivang Shekhar
5.Precious Tom

Discussed about my project details, its dependencies and UI with them.

Week 2 Work Updates(1st May to 7th May)

Was unable to participate in any sort of meeting or conversation with mentors or Organisation Admin.
Had my final examinations this week and would end on 7th May.
This is the only and the last week of my absentee from the work.

Week 3 Work Updates(8th May to 14th May)

1–2 Day: Interaction with the mentors on further schedule.
3–4 Day: Making a dummy repository and trying to get the issues and sorting them in the groups.
5–7 Day: Working on Dashboard again and continue working on it till the scheduled proposal.

Week 4 Work Updates(15th May to 22th May)

1–2 Day: Made the front end of Sugarbot aka. Issue Collector.
3–4 Day: Brought the latest 4 issues of each type of label in the command line using GitHub API.
5–7 Day: Worked on bringing the content of command line in the format of Node hbs data injection.

Week 5 Work Updates(23th May to 30th May)

Could not work during this time because of Chicken Pox.

Week 6 Work Updates (31st May to 6th June)

1–2 Day: Did looked at the previous worked done and made certain improvements.
3–4 Day: Data was being injected in the web-page but only 1st category was being rendered.
5–7 Day: Worked on Repeated loop Async call to the API of GitHub, the error was being removed.

Week 7 Work Updates(7th June to 13th June)

1–2 Day: Completed the Issue collector project and hosted on Heroku and deployed code on Github. Project can be viewed on: https://github.com/Pratul1997/sugarlabs_github_issues
https://sugar-issue-collector.herokuapp.com/
3–4 Day: Started working on Back-end of Sugarlabs Developer’s Dashboard, using Node, Express, MongoDB.
5–7 Day:Started working on Express Server and REST API.

Week 8 Work Updates(14th June to 21st June)

1–2 Day: Setting up Express Server and Integrating the back-end with the MongoDB Database.
3–4 Day: Integrated the situation of Callback Hell, Promises and Used Mongoose for writing MongoDB Validator and casting the logic of the Back-end data storage and integration with REST API.
5–7 Day: Added User Authentication feature in the Dashboard using Cookies, Sessions.

Week 9 Work Updates(22nd June to 29th June)

1–2 Day: Along with previous added Authentication feature of Cookies, Session, Replaced the code a bit to integrate the usage of Passport.js which does the hashing of password in the database along with a secret code. Making the data stored in the database secured.
3–4 Day: Added the usage of JavaScript Web Token(JWT) so that the user don’t need to send the account credentials each time also the Access Token which also passed for local browser client side is also hashed, providing us security from eve teaser in the middle-ware.
5–7 Day: Added Mongoose Population to add a feature so that developers can comment on the existing projects of Sugarlabs.

Week 10 Work Updates(30th June to 6th July)

1–2 Day: Currently our server was on http protocol, switched our complete server to https to provide a more secured network, also added self assigned certificates.
3–4 Day: Added routes so that the images can be uploaded in the dashboard.
5–7 Day: Added Cross-Origin Resource Sharing feature and Authentication Using OAuth with Passport and Facebook.

Week 11 Work Updates(7th July to 13th July)

1–2 Day: Work of all previous 1 month can be seen at:
https://github.com/Pratul1997/node-dashboard
Started working on front end of application using JSX, State and Props.
3–4 Day: Added different component of Home, About US, Projects, Contact Us, made changes between Representational and Container Components, Functional Components.
5–7 Day: Created Component on Navbar, Header, Footer, Main content in Home Page, setting up React Router using the application of Single Page Applications.

Week 12 Work Updates(14th July to 21st July)

1–2 Day: Created About Us Page, having sections regarding Sugarlabs History, Sugarlabs working model facts.
3–4 Day: Setting up a div for our months lead contributor and leaders section.
5–7 Day: Setting up project page which shows different projects along with comments on the project, a developer can rate our project out of 5, which give developer community an opportunity to view the existing projects quality.

Week 13 Work Updates(22nd July to 29th July)

1–2 Day: Setting up the form for feedback in contact us section such that if any developers want to provide feedback anonymously he is free to provide us the feedback.
3–4 Day: Setting up the login page for the developers in the navbar.
5–7 Day: Learning Redux and storing the inputted information in the Redux state, binding up the contact us feedback form and also the login form with this redux state binding.

Week 14 Work Updates(30th July to 5th August)

1–2 Day: Combined the reducers and added redux actions and thunks.
3–4 Day:Adding the error handling in the project and Animations in the web page.
5–7 Day: Added work of last week duration to GitHub and testing is being done.

Week 15 Work Updates(6th August to 12th August)

1–2 Day: Trying to integrate the front end of Angular project and back-end of project but was unsuccessful.
3–4 Day: Successfully integrated the project work and partially replaced the content of Sugarlabs.
5–7 Day: Making the README in GitHub more clear in approach of use and future contribution and completing the evaluation form.