Last Blog Post
View Blog Post
So, As I already written my last blog post here you can read by clicking to this link https://blogs.python-gsoc.org/en/iflameings-blog/. 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 :)
6th Last or Inception of new road Blog Post
View Blog Post
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.
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 :)
5th Blog Post
View Blog Post
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.
That's it for today post. Thanks!!!!!:)
Weekly CheckIn 9th
View Blog Post
What did you do this week?
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.
What is coming up next?
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.
Did you get stuck anywhere?
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 :)
4th Blog Post (During the second Period)
View Blog Post
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.
If You find any thing interesting and anything which you want to ask, I will be happy to answer it :)