iFlameing's Blog

1st Blog Post

iFlameing
Published: 07/06/2019

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.

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.

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 :)

Thanks for reading if you find anything interesting and you want to know more please! comment and happy to hear your feedback :)

 

View Blog Post

Week 5 After First Evaluation

iFlameing
Published: 07/01/2019

Hooray! I passed the first evaluation and now focused on 2nd evaluation.

What did you do this week?

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.

What is coming up next?

Currently I am working on 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.

Did you get stuck anywhere?

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.

View Blog Post

Week4 Before First Evaluation

iFlameing
Published: 06/23/2019

What did you do this week?

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.

What is coming up next?

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.

  • Refactoring some code
  • Removing logging api

Did you get stuck anywhere?

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.

View Blog Post

Third Week

iFlameing
Published: 06/16/2019

What did you do this week?

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.

https://github.com/collective/gatsby-source-plone/pull/188

What is coming up next?

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 

  • Read Node Api of gatsby
  • Read codebase of gatsby-source-filesystem how they implemented the delete feature with filesyste

Did you get stuck anywhere?

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.

View Blog Post

Second Week

iFlameing
Published: 06/09/2019

What did you do this week?

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 

https://github.com/collective/gatsby-source-plone/pull/181.

 

What is coming up next?

The Pr related to first milestone needed modification. It is just a initial commit regarding the first feature.

  • Some small issue will be still to resolved.
  • Refactoring the code and utilise the previous code.
  • Figuring out how to create breadcrumbs node and navigation node 

 

Did you get stuck anywhere?

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 :)

View Blog Post