Articles on iFlameing's Bloghttps://blogs.python-gsoc.orgUpdates on different articles published on iFlameing's BlogenThu, 22 Aug 2019 12:24:36 +0000Last Blog Posthttps://blogs.python-gsoc.org/en/iflameings-blog/last-blog-post/<p><span style="font-size: 18px;">Hey, everyone!!!</span></p> <p><span style="font-size: 18px;">So, As I already written my last blog post here you can read by clicking to this link <a href="https://blogs.python-gsoc.org/en/iflameings-blog/">https://blogs.python-gsoc.org/en/iflameings-blog/</a>. This blog post explains entire period of Gsoc. Since the title of this blog post is last, I will share my experience and how I got selected in gsoc. GSoC is a great platform if you want to getting started with open source. It doesn't just teach you to contribute to open source but It also give you brand which you needed at some point of your life. It will help you in getting internship and job. It also provide you a community for the lifetime if you keep contributing to the project. The past 3 months is my best days of my life. Learning something new everyday. It enhanced my coding and programming skills. I saw to power of test and how It help in refactoring and adding new feature to project. I learnt some trending framework of industry Jest, graphql, react, webSocket and many more small library which I install from npm and used in my project. I started contributing to gatsby-source-plone when Iodide doesn't came into the gsoc. I solve some issue before the announcement of Gsoc organisation but when Google announces the organisation Plone is not selected. I got very frusted but I keep contributing to gatsby-source-plone. On 7th of march I found that Plone comes under the PSF organisation I became very happy. I keep contributing to it and finally got selected into this project :)</span></p> <p> </p>ialokkumarsingh0@gmail.com (iFlameing)Thu, 22 Aug 2019 12:24:36 +0000https://blogs.python-gsoc.org/en/iflameings-blog/last-blog-post/6th Last or Inception of new road Blog Posthttps://blogs.python-gsoc.org/en/iflameings-blog/6th-last-or-inception-of-new-road-blog-post/<p><span style="font-size: 18px;">My best three months now come close to end but I am very happy from myself because I have completed my project before time. Upto this time my all project goals are completed i.e MVP, test and refactoring of code all of them is done. Just one pr regarding the reconnecting is on verge of merging which is a extended goals for the gsoc period. What I can say about past 3 months I don't have words to describe these days, I learned a lot of things like WebSocket, Gatsby and Jest. I spent entire time learning these technology and implementing them in my GatsbyJs preview project. Websocket for handling the websocket event fired from the backend of Plone CMS. Gatsby API, docs and gatsby-source-filesystem to learn how to implement the functionality for updating content on real time. Jest for writing test of implemented feature. I big thankyou to my mentor datakurre who helped me in completing the project. He was active throughout the project and solve my doubts regarding the project. He helped me out whenever I stuck at certain point. I learned a lot of things at the end of this program which is not avialable to most developer i.e refactoring the codebase. I have flatten the codebase by splitting the large function into the smaller ones. Out project contains a util.Js file which contains all the methods and function for the entire project. I refactored this utils file into small separate function file and now our codebase look neat, clean and enhanced code readability. Splitting into different files also helps us in refactoring the codebase from js to typescript which is our future plan. During the implementation I faced a interesting problem i.e how I grouped different functions into single file and separate those which is not related. I make a proper hierarchical order and resolve this issue.</span></p> <p><span style="font-size: 18px;">Thank you to Python Foundation to giving me such a wonderful opportunity to work on real world project which is used by different people all around the world. I learned some cool concept and get a valuable experience of my life :)</span></p>ialokkumarsingh0@gmail.com (iFlameing)Sat, 17 Aug 2019 09:43:46 +0000https://blogs.python-gsoc.org/en/iflameings-blog/6th-last-or-inception-of-new-road-blog-post/5th Blog Posthttps://blogs.python-gsoc.org/en/iflameings-blog/5th-blog-post/<p>Hi, this is my fifth blog post. During second phase I mostly written test for the source code. As you know that writing workable code is not sufficient for a project. Your code must be efficient, readable and have some code quality. In third phase I have to work on it improving the code quality which I have written for MVP and documentation regarding that. I have written the documentation for the added feature and it is quiet interesting because If you see the documentation it is very similar to Gatsby docs style. After writing documentation I started refactoring the code regarding the update, modified and delete event code. During this time I almost done with the refactoring and started solving the backlog medium issue. It is very interesting 10 days because I have to do so much googling about the code quality, how to write efficient code and how I can flatten the code by splitting large functions into smaller function. I stuck at various point during the period but as all source code is covered in test I suddenly found out where I am making the error. At this point I feel why should we have better test coverage of source code. I have almost 9 days more in this phase and then a great journey comes to end of my life. But in 9 days I have to clear some small backlog issue like replacing custom logging system with reporter API which is provided by gatsby and place each file into separate folder.</p> <p>That's it for today post. Thanks!!!!!:)</p>ialokkumarsingh0@gmail.com (iFlameing)Fri, 09 Aug 2019 12:22:22 +0000https://blogs.python-gsoc.org/en/iflameings-blog/5th-blog-post/Weekly CheckIn 9thhttps://blogs.python-gsoc.org/en/iflameings-blog/weekly-checkin-9th/<h1><span style="font-size: 26px;"><span style="color: #e67e22;">What did you do this week?</span></span></h1> <p><span style="font-size: 18px;">So, As I previously mention in this phase I have to write documentation and refactor the code. So, I started with writing documentation for the config options provided by the plugin. I have written all the config option properties which you can pass to plugin and extended your website feature. After adding documentation I started refactoring the code. I have flatten the code by creating separate function for each event I have added. I added the create, modified event and delete event. I refactor the code related to createEvent. You can see both the pr below.</span></p> <p><a href="https://github.com/collective/gatsby-source-plone/pull/231">https://github.com/collective/gatsby-source-plone/pull/231</a></p> <p><a href="https://github.com/collective/gatsby-source-plone/pull/231">https://github.com/collective/gatsby-source-plone/pull/229</a></p> <p> </p> <h2><span style="font-size: 26px;"><span style="color: #e67e22;">What is coming up next?</span></span></h2> <p><span style="font-size: 18px;">So, I think that documentation part is over because I have created a new file for config options which covered all the information which I have made changes. I am currently working on refactoring deleteEvent and after that modified options. So, you can see lot of refactoring of code in coming weeks.</span></p> <p><span style="font-size: 26px;"><span style="color: #e67e22;">Did you get stuck anywhere?</span></span></p> <p><span style="font-size: 18px;"> During start of refactoring I stuck at a issue of not finding function and related stuff you can see on the pr but I find it out and able to solve it. Other than that I am having a good time :)</span></p>ialokkumarsingh0@gmail.com (iFlameing)Sun, 04 Aug 2019 18:10:12 +0000https://blogs.python-gsoc.org/en/iflameings-blog/weekly-checkin-9th/4th Blog Post (During the second Period)https://blogs.python-gsoc.org/en/iflameings-blog/4th-blog-post-during-the-second-period/<p>So, what I have done in second period. For me the answer is very simple, MVP is completed in first phase which give me ample time to write test for the added feature and other function which is not tested earlier. In second Period I read lot of documentation of Jest. I have gone through each Matchers which is Provided by jest. Spent almost a week on reading it. After reading the documentation I feel very comfortable in writing test in jest. From my experience I would say don't dive in coding without knowing anything about the subject. First read the documentation of the following framework and become comfortable with the language. After that you will able to solve the problem in very less time. I have written around 10 test in this period which covers every aspect of the source code. I got stuck at the point where I have to write test for the generator function. I have to mock lot of data because It is the main function of source code which generates all the gatsby nodes initially. I also make some mistake. I am fetching data from the Plone CMS and then doing logging. I just forget that console log not print the nested array. So, I have made a huge mistake using console log. After lot of try I am not able to write test properly. I stuck in loop fixing one thing break another, after lot of afford I am able to solve this problem at 3am when I am going to bed after hectic day. I really enjoyed this phase a lot, I learned lot of new things and implemented it. I am very happy with myself what I am doing right now. In third phase I mainly write documentation and refactoring the code into small pieces of function so that It can enhance the  readability of code.</p> <p>If You find any thing interesting and anything which you want to ask, I will be happy to answer it :)</p> <p> </p> <p>Thank You</p>ialokkumarsingh0@gmail.com (iFlameing)Sun, 28 Jul 2019 20:30:07 +0000https://blogs.python-gsoc.org/en/iflameings-blog/4th-blog-post-during-the-second-period/Weekly CheckIN 8thhttps://blogs.python-gsoc.org/en/iflameings-blog/weekly-checkin-8th/<h1><span style="font-size: 26px;"><span style="color: #9b59b6;">What did you do this week?</span></span></h1> <p><span style="font-size: 18px;">Hoorya!! I passed the second evaluation. In the evaluation week I mainly completed the only test which is left before the second evaluation i.e Adding test for the ploneGenerator method which generate all the Gatsby Node initially.  It is the most important generator function. I never tested the generator function in my life. I searched what is the best way to test the generator function and I found some response and successfully Send a pr for that. After that there is simple bug i.e Foreach array method randomly calling the api but we need syncrounus behaviour. After devoting one day and lot of thinking I found that only replacing the foreach method with for loop does the trick. Then I successfully created the pr for that also. You can see the pr link below.</span></p> <p><span style="font-size: 18px;"><a href="https://github.com/collective/gatsby-source-plone/pull/218">https://github.com/collective/gatsby-source-plone/pull/218</a> </span></p> <p><span style="font-size: 18px;"><a href="https://github.com/collective/gatsby-source-plone/pull/218">https://github.com/collective/gatsby-source-plone/pull/225</a></span></p> <p> </p> <h2><span style="font-size: 26px;"><span style="color: #8e44ad;">What is coming up next?</span></span></h2> <p><span style="font-size: 18px;">Upto this time I have successfully implemented the MVP for my project. Written test for all the function which is present in the source code. Now, I only have to refactor the code and write documentation for the added feature. So, You can think that this period mainly deal with refactoring and documenting.</span></p> <p><span style="font-size: 26px;"><span style="color: #8e44ad;">Did you get stuck anywhere?</span></span></p> <p><span style="color: null;"><span style="font-size: 18px;">Really for first time in this project I suffer with simple issue which is converting the foreach method to for loop. It was not easy to find what's going wrong with foreach. Why it doesn't behaviour <b><i>synchronously. </i></b>But after lot of thinking and experiment I am able to attend the behaviour i.e synchronous.</span></span></p> <p> </p>ialokkumarsingh0@gmail.com (iFlameing)Sun, 28 Jul 2019 20:13:34 +0000https://blogs.python-gsoc.org/en/iflameings-blog/weekly-checkin-8th/weekly CheckIn 7thhttps://blogs.python-gsoc.org/en/iflameings-blog/weekly-checkin-7th/<h1><span style="font-size: 26px;"><span style="color: #2c3e50;">What did you do this week?</span></span></h1> <p><span style="font-size: 18px;">I have completed MVP in starting week of 2nd Phase, I moved on writing test for the added feature. I have to read lot's of documentation of jest and Plone CMS API for writing test and setting mock up data. I have written test for may function which is used for creating Gatsby Node from fetching data from Plone CMS. I also remove some redundant code which is not used more in gatsby-node.js file. You can see my pull request by visiting below link.</span></p> <p><a href="https://github.com/collective/gatsby-source-plone/pull/200">https://github.com/collective/gatsby-source-plone/pull/200</a></p> <p><a href="https://github.com/collective/gatsby-source-plone/pull/200">https://github.com/collective/gatsby-source-plone/pull/201</a></p> <p><a href="https://github.com/collective/gatsby-source-plone/pull/200">https://github.com/collective/gatsby-source-plone/pull/204</a></p> <p><a href="https://github.com/collective/gatsby-source-plone/pull/200">https://github.com/collective/gatsby-source-plone/pull/208</a></p> <p><a href="https://github.com/collective/gatsby-source-plone/pull/200">https://github.com/collective/gatsby-source-plone/pull/214</a></p> <h2><span style="font-size: 26px;"><span style="color: #2c3e50;">What is coming up next?</span></span></h2> <p><span style="font-size: 18px;"><span style="color: #2c3e50;">One or more test Which is left in the code base. After that every line is tested and all code is cover with test.  The test for breadcrumbs node is left and is completed in next one or two days :)</span></span></p> <p><span style="color: #2c3e50;"><span style="font-size: 26px;">Did you get stuck anywhere?</span></span></p> <p><span style="font-size: 18px;">Writing test for async code and setting the mock behaviour of fetching data is a tedious task. I have to manipulate some function to pass the test. It is most intense task which I have done in my gsoc period. But after reading the documentation of jest and some googling I am able to write the test. Other than this I am having a great time :)</span></p> <p><span style="font-size: 18px;">If you find anything interesting please comment. I love to hear some feedback !!! :)</span></p> <p> </p>ialokkumarsingh0@gmail.com (iFlameing)Sun, 21 Jul 2019 19:13:33 +0000https://blogs.python-gsoc.org/en/iflameings-blog/weekly-checkin-7th/Weekly CheckIn 6thhttps://blogs.python-gsoc.org/en/iflameings-blog/weekly-checkin-6th/<h1><span style="color: #8e44ad;">What did you do this week?</span></h1> <p><span style="font-size: 18px;">In this week I started writing the test for the gatsby-node API. I read lot's of documentation regarding jest because our previous test is written using this framework. I also do some research regarding the unit test and converting our whole source code into typescript. But we came to the conclusion that first, we write a unit test for all the function and if time permits we devote our entire time working rewriting whole source plugin. I have written a test for makecontentNode function which converts the fetched content into Gatsby Node.  You can see the pr below </span></p> <p><span style="font-size: 18px;"><a href="https://github.com/collective/gatsby-source-plone/pull/200">https://github.com/collective/gatsby-source-plone/pull/200</a></span></p> <h2><span style="color: #8e44ad;"><span style="font-size: 26px;">What is coming up next?</span></span></h2> <p><span style="font-size: 18px;">I will try to test all the code which is written in gatsby-node.js. so, we can accept more test to come in next week.</span></p> <p> </p> <p><span style="color: #8e44ad;"><span style="font-size: 26px;">Did you get stuck anywhere?</span></span></p> <p><span style="font-size: 18px;">I faced some difficulty regarding setting up mock data for the test but fetching up some Plone CMS API I am able to gather the test data. Other than that I am having a good time :)</span></p> <p> </p>ialokkumarsingh0@gmail.com (iFlameing)Sun, 14 Jul 2019 08:55:55 +0000https://blogs.python-gsoc.org/en/iflameings-blog/weekly-checkin-6th/3rd Blog Post After First Evaluationhttps://blogs.python-gsoc.org/en/iflameings-blog/3rd-blog-post-after-first-evaluation/<p><span style="font-size: 16px;">I successfully passed the first evaluation, Hooray! So after first evaluation I started working on issue related to the permission based update of node. After the addition of create, modified and delete feature I encounter with another problem now I have to handle the node based on permission. Plone CMS provide the feature of making field public or private. If the field is public then we have to create the node otherwise we don't. When a field is changed from private to public we get a websocket event modified and I have to handle this case into modified case. For handling this issue I have to change the logic of modified event and I am able to do it after some hard work. Then I started working on updating the Plone Collection after a long silence from the Plone CMS. It is done because we don't have currently any feature that we can detect whether a Plone collection is changed or not. After learning how polling is done I implemented it successfully. I learned how we can use SetTimeout and how we can reset it. After reading the documentation on MDN and helped from my mentor I successfully Imlemented it. Now I am working on test for the added feature of previous month.</span></p> <p> </p> <h1>Auto Updating Plone Collections</h1> <p><a href="https://github.com/collective/gatsby-source-plone/pull/194">https://github.com/collective/gatsby-source-plone/pull/194</a></p> <h1>Removing and creating field based on Permission</h1> <p><a href="https://github.com/collective/gatsby-source-plone/pull/192">https://github.com/collective/gatsby-source-plone/pull/192</a></p> <p>Thanks for reading! I am happy to hear any feedback :)</p>ialokkumarsingh0@gmail.com (iFlameing)Mon, 08 Jul 2019 10:30:03 +0000https://blogs.python-gsoc.org/en/iflameings-blog/3rd-blog-post-after-first-evaluation/2nd Blog Posthttps://blogs.python-gsoc.org/en/iflameings-blog/2nd-blog-post/<p>sorry, For the late post. But in this Post I am going to explain what I had done between 10th June to 24th June 2019.  I started from where I left, I added the update functionality but using my own function which is causing redundancy in code base. I developed a strong concept of javascript generator function. After having generator concept understanding gatsby-source-plone code base become very easy. I refactored my code and use the existing generator function for creating the node. During these period I think I read every page of gatsby docs, each and every method it provide and how we can use it. It is very hard task to read all the api exposed by gatsby and remember them and use them whenever it needed. I have to read API details each day but I feel myself lucky because I have a strong understanding how Gatsby works inside.</p> <p>After the implementation of update now I moved towards updating the modified node. Whenever a node is modified in Plone CMS I received a websocket events containing the modified node id and its parent id. I have to recreate the modified node and its parent node. It is a lot of task. But I have implemented it just in a week. I work almost 8 to 9 hours per day to complete this feature.</p> <p>Adding the modified feature I feel very relaxed and self motivated because I have completed 2 milestone in 2 weeks which is a big win for me. Then I started with my third milestone that is handing the delete node. I had to remove the node which is deleted in Plone CMS. I received the similar websocket event as above a node id which is deleted and it parent Id. I also implement this feature in a week. But this time I struggle a most because I encounter a error which I didn't understand why it is happening. The error is related to deleting the folder. Deleting folder gives me continuous websocket event for its child. when I am trying the fetch the parents of child, It is already deleted from the Plone CMS. I got an error, after talking to mentor I figured out Implementing try catch block and changing some logic. At this time the first evaluation started I am hoping to get passed it easily :)</p> <p>Thanks for reading if you find anything interesting please! comment. Happy to hear your feedback :) </p>ialokkumarsingh0@gmail.com (iFlameing)Sat, 06 Jul 2019 08:50:01 +0000https://blogs.python-gsoc.org/en/iflameings-blog/2nd-blog-post/1st Blog Posthttps://blogs.python-gsoc.org/en/iflameings-blog/1st-blog-post/<p><span style="font-size: 14px;">Sorry, For my late blog post But I am going to explain all the thing which I done before 10th June 2019. So, As coding period start I started with reading the gatsby-source-filesystem code base because I have to implement same feature provided by gatsby-source-filesystem. Reading code written by others is big challenge but as I am doing open source for past 6 months I daily read code which is written by other. And reading code is a way better than writing code without knowing properly about the things which you want to implement. You will learn best practice which is famous in community learn new things on daily basis. So, I started reading the update part of gatsby-source-filesystem and the code base of gatsby-source-plone for implementing the update the function when something changes in Plone CMS.</span></p> <p><span style="font-size: 14px;">I started implementing the update nodes when something changes in Plone CMS but I don't the generator function of javascript clearly, and it is frequently used in code base of gatsby-source-plone. so, I started reading about the generator function of javascript on MDN but I didn't stop here I created My own function and implement the update functionality. My mentor Asko Soukka helped me in understanding the project and codebase of gatsby-source-plone i.e what is flow of code base.</span></p> <p><span style="font-size: 14px;">During the implementation I read many library like socket.io, expresss. Created a dummy server using express framework because Plone doesn't have websocket support during the first week of coding period. But my mentor provide the websocket support in Plone withing one week and we replaces the dummy server after that. During these days I have to read lot's of things and implement but I am happy with myself about what I am doing :)</span></p> <p><span style="font-size: 14px;">Thanks for reading if you find anything interesting and you want to know more please! comment and happy to hear your feedback :)</span></p> <p> </p>ialokkumarsingh0@gmail.com (iFlameing)Sat, 06 Jul 2019 08:23:54 +0000https://blogs.python-gsoc.org/en/iflameings-blog/1st-blog-post/Week 5 After First Evaluationhttps://blogs.python-gsoc.org/en/iflameings-blog/week-5-after-first-evaluation/<p>Hooray! I passed the first evaluation and now focused on 2nd evaluation.</p> <h1><span style="color: #c0392b;">What did you do this week?</span></h1> <p>I have completed all my milestone which is listed in timeline. I implemented the add, update and delete functionality in gatsby-source-plone but this is just MVP. I need to do some refactoring, writing test and adding documentation for the added feature. Also I have to improve the code quality but I think I have enough time for this. So, during the evaluation period I figured out some small issue and made pr for i.e Adding node based on permission provided by PloneCMS. And also made initial commit regarding scheduling Plone collection.</p> <p><span style="color: #c0392b;"><span style="font-size: 28px;">What is coming up next?</span></span></p> <p><span style="font-size: 18px;"><span style="color: null;">Currently I am working on</span><span style="color: null;"> Scheduling Plone collection i.e We have to update the PloneCollection node after some time of websocket event. So, In upcoming week I will try to implement this feature and MVP of gatsby-source-plone is complete.</span></span></p> <p><span style="color: #c0392b;"><span style="font-size: 28px;">Did you get stuck anywhere?</span></span></p> <p><span style="font-size: 18px;"><span style="color: null;">During this week I have to change the concept of adding modified node because Permission changes also fired modified event other than that I didn't stuck anywhere.</span></span></p>ialokkumarsingh0@gmail.com (iFlameing)Mon, 01 Jul 2019 06:14:12 +0000https://blogs.python-gsoc.org/en/iflameings-blog/week-5-after-first-evaluation/Week4 Before First Evaluationhttps://blogs.python-gsoc.org/en/iflameings-blog/week4-before-first-evaluation/<h1><span style="font-size: 26px;"><span style="color: #e74c3c;">What did you do this week?</span></span></h1> <p><span style="font-size: 18px;"><span style="color: null;">I started from where I left i.e is implementing the left modification part in previous week. After some discussion with datakurre I am able to implement. Then I started with my third milestone i.e adding preview for the deleted node in Plone CMS. I implement the intilal functionality in two days but I am stuck at the position where I have to handle some exception. But I am able to resolve this issue at the end of the week and submitted the pr</span></span><span style="color: #d35400;"><span style="font-size: 26px;">.</span></span></p> <p><span style="color: #d35400;"><span style="font-size: 26px;">What is coming up next?</span></span></p> <p><span style="font-size: 18px;"><span style="color: null;">Some small issue are left in MVP. I will try to solve it as soon as possible so that we can announced this feature in community.</span></span></p> <ul> <li><span style="font-size: 18px;"><span style="color: null;">Refactoring some code</span></span></li> <li><span style="font-size: 18px;"><span style="color: null;">Removing logging api</span></span></li> </ul> <p><span style="color: #d35400;"><span style="font-size: 28px;">Did you get stuck anywhere?</span></span></p> <p><span style="font-size: 18px;">During the deletion of node of folder I got successive request from the PLone CMS for the deleted node. I have to handle the exception which will arise when I fetch the url which is deleted. It takes some time to figure out but finally I am able to solve this.</span></p>ialokkumarsingh0@gmail.com (iFlameing)Sun, 23 Jun 2019 20:14:30 +0000https://blogs.python-gsoc.org/en/iflameings-blog/week4-before-first-evaluation/Third Weekhttps://blogs.python-gsoc.org/en/iflameings-blog/third-week/<h1><span style="color: #8e44ad;"><span style="font-size: 26px;">What did you do this week?</span></span></h1> <p><span style="font-size: 18px;"><span style="color: null;">In this week I started from where I left i.e adding create node for the added field in Plone CMS. After some minor changes and with the discussion with mentor the pr got merged and My first milestone which is first in three is completed. This is just POC of the milestone which is modified for the long term after I achieved all the milestone as mentioned in the proposal. After achieving the first milestone I started with second one i.e adding node for the modified field in Plone CMS. I created a initial pr regarding this milestone in this week which is under process. This pr generally contains a feature i.e when user make any changes in Plone backend the gatsby automatically knows that and create node for the updated field and user sees these changes without rebuild. This is handy feature when you are developing continuously and want to see the object how it looks in real world.</span></span></p> <p><a href="https://github.com/collective/gatsby-source-plone/pull/188">https://github.com/collective/gatsby-source-plone/pull/188</a></p> <h2><span style="color: #8e44ad;"><span style="font-size: 28px;">What is coming up next?</span></span></h2> <p><span style="font-size: 18px;">The above pr is related to second milestone and it need some modification before it merge into master. So my first priority is to merge this pr in coming week. Along with this </span></p> <ul> <li><span style="font-size: 18px;">Read Node Api of gatsby</span></li> <li><span style="font-size: 18px;">Read codebase of gatsby-source-filesystem how they implemented the delete feature with filesyste</span></li> </ul> <p><span style="color: #8e44ad;"><span style="font-size: 28px;">Did you get stuck anywhere?</span></span></p> <p><span style="font-size: 18px;"><span style="color: null;">I got stuck during the implementation of updating node related to folder section. In which if we change the parent node we also have to modified the all the children associated with it. I stuck for around a day solving this problem and finally I solve with some change in approach as I am doing in subsequent changes.</span></span></p>ialokkumarsingh0@gmail.com (iFlameing)Sun, 16 Jun 2019 18:00:26 +0000https://blogs.python-gsoc.org/en/iflameings-blog/third-week/Second Weekhttps://blogs.python-gsoc.org/en/iflameings-blog/second-week/<h1><span style="font-size: 28px;"><span style="color: #2ecc71;">What did you do this week?</span></span></h1> <p><span style="font-size: 18px;"><span style="color: null;">In this week, I mostly spent my time reading the api of gatsby-source-filesystem and its implementation. Since  I also have to support the preview feature as gatsby-source-filesystem does, So most of concept I could learned from it. It also one of the requirements of my project. But making the api as gatsby-source-filesystem is not trivial one because gatsby-source-fileystem is based on file change and it works on watch event of file change. Where as Plone is a headless cms. To implement its feature we integrated the plone with the websocket and it is upcoming feature of Plone which is relaeased in version 5.3 but my mentor provided the docker image before its release, for this I am very thankful to my mentor @datakurre. My project consist of three milestones and I started with the first one adding preview for the added fields. You can see my pull request at </span></span></p> <p><a href="https://github.com/collective/gatsby-source-plone/pull/181">https://github.com/collective/gatsby-source-plone/pull/181</a>.</p> <p> </p> <h2><span style="color: #2ecc71;"><span style="font-size: 28px;">What is coming up next?</span></span></h2> <p><span style="font-size: 18px;">The</span> <span style="font-size: 18px;">Pr related to first milestone needed modification. It is just a initial commit regarding the first feature.</span></p> <ul> <li><span style="font-size: 18px;">Some small issue will be still to resolved.</span></li> <li><span style="font-size: 18px;">Refactoring the code and utilise the previous code.</span></li> <li><span style="font-size: 18px;">Figuring out how to create breadcrumbs node and navigation node</span> </li> </ul> <p> </p> <h2><span style="color: #2ecc71;"><span style="font-size: 28px;">Did you get stuck anywhere?</span></span></h2> <p><span style="font-size: 18px;">Reading codebase written by others is not trivial one. Reading the api of gatsby-source-filesystem initially was a big headache but when I started reading this it became very simple. After understanding some api I am able to create the initial commit regarding the first milestone. Other than this I have a great time working on the project :)</span></p>ialokkumarsingh0@gmail.com (iFlameing)Sun, 09 Jun 2019 16:20:07 +0000https://blogs.python-gsoc.org/en/iflameings-blog/second-week/First Weekhttps://blogs.python-gsoc.org/en/iflameings-blog/first-week/<p> </p> <h1><span style="color: #3498db;"><strong>What did I do this week?</strong></span></h1> <p>During my first week of coding period, I implemented a webpsocket to talking with gatsby-source-plone and update the development readme.md. In this week I established a websocket server and connected the websocket server to the gatsby-source-plone. I learned very much in this process, I learned how to create websocket and implement basic websocket api.</p> <p>I also created a basis chat app while learning the socket.io.</p> <p>you can find the pr details below.</p> <p><a href="https://github.com/collective/gatsby-source-plone/pull/176">https://github.com/collective/gatsby-source-plone/pull/176</a></p> <p><a href="https://github.com/collective/gatsby-source-plone/pull/177">https://github.com/collective/gatsby-source-plone/pull/177</a></p> <p> </p> <p><span style="color: #3498db;"><span style="font-size: 28px;">What Coming Next?</span></span></p> <p>In following week I am going to implement the add node to the gatsby-source-plone</p> <p>Read the api provided by gatsby-source-filesystem.</p> <p>How gatsby-source-filesystem work behind the scene.</p> <p><span style="color: #3498db;"><span style="font-size: 28px;">Did you get stuck anywhere?</span></span></p> <article> <p>Not particularly, this week generally have to work with socket implementation. I have to figure out how socket.io api works with express other than that, I have a great time working on project.</p> <p>Thanks for reading till the end!</p> </article> <ul> </ul> <p> </p> <p> </p>ialokkumarsingh0@gmail.com (iFlameing)Tue, 04 Jun 2019 15:02:35 +0000https://blogs.python-gsoc.org/en/iflameings-blog/first-week/Introductory Posthttps://blogs.python-gsoc.org/en/iflameings-blog/introductory-post/<p>Hello everyone!</p> <p>I am Alok Kumar(iFlameing) 2nd-year undergraduate as a Computer Science Major from Shri Mata Vaishno Devi University(Katra, India). Thank you for selecting me as a GSOC student and for giving me the opportunity to work with <a href="https://community.plone.org/u/datakurre">@datakurre</a> and with the Plone community. My skill sets Include Javascript, Html, CSS, Python. I am pretty proficient in react, node, and Gatsby which are the required skills for the project. My project idea is <strong>GatsbyJs Preview for Plone</strong>. we are managing the project using<a href="https://github.com/collective/gatsby-source-plone/projects/2" rel="nofollow noopener"> Github project board</a> for technical part and for communication we are using <a href="https://gitter.im/collective/gatsby-source-plone" rel="nofollow noopener">Gitter channel</a></p> <p>Currently, gatsby-source-plone plugin is unable to update, update, delete and create node after fetching data from Plone site unless GatsbyJs development server is manually restarted or GatsbyJs site is rebuilt. This project plan is to enhance existing project "gatsby-source-plone" with features that allow "gatsby develop" development server to provide up-to-date instant live previews of pages that contain data from a Plone CMS source. You can read more about the project and How I plan to achieve the project goal by going to this <a href="https://docs.google.com/document/d/1rJzQZPcQgWAXaBZLW3Rl2pw48SfTAesaNmCmGkn6irg/edit?usp=sharing" rel="nofollow noopener">link4</a>.</p> <p>I applied to the GSOC program because It provides me a community where I can work with different people and hone my development skills. I can interact with amazing people who are working in the software development field for many years. Building something which is used by many of us and getting in the world of open source, stipend, and the t-shirt <img alt=":slightly_smiling_face:" height="27" src="https://community.plone.org/images/emoji/twitter/slightly_smiling_face.png?v=5" title=":slightly_smiling_face:" width="27"></p> <p>I would like to utilize this community to get advice and tips from other participants, to be inspired by other peoples projects and ideas and to become better at D.I.Y solutions. I will be happy to hear about any topic related to my communication or technical skills where I can improve myself from the community.</p> <p>Alok Kumar<br> (<a href="mailto:ialokkumarsingh0@gmail.com">ialokkumarsingh0@gmail.com</a>)</p>ialokkumarsingh0@gmail.com (iFlameing)Fri, 24 May 2019 09:17:46 +0000https://blogs.python-gsoc.org/en/iflameings-blog/introductory-post/