<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: yash</title>
    <description>The latest articles on DEV Community by yash (@yashkandalkar).</description>
    <link>https://dev.to/yashkandalkar</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F481100%2F42a624cc-9c40-4e0f-8fd5-9f6dc002743c.jpeg</url>
      <title>DEV Community: yash</title>
      <link>https://dev.to/yashkandalkar</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/yashkandalkar"/>
    <language>en</language>
    <item>
      <title>GSoC: Final Evaluation</title>
      <dc:creator>yash</dc:creator>
      <pubDate>Mon, 05 Sep 2022 11:39:45 +0000</pubDate>
      <link>https://dev.to/yashkandalkar/gsoc-final-evaluation-25m9</link>
      <guid>https://dev.to/yashkandalkar/gsoc-final-evaluation-25m9</guid>
      <description>&lt;p&gt;Hello everyone! Hope you're doing well!&lt;br&gt;
This is the final blog of my GSoC journey. It'll contain a brief of everything that I have worked on during my term and what's left to do.&lt;/p&gt;

&lt;h3&gt;
  
  
  Mentors
&lt;/h3&gt;

&lt;p&gt;A huge thanks to &lt;a href="https://github.com/aornugent"&gt;Andrew O'Reilly-Nugent&lt;/a&gt; and &lt;a href="https://github.com/HarshCasper"&gt;Harsh Mishra&lt;/a&gt; for helping me at every step of the project.&lt;br&gt;
I cannot thank them enough for encouraging me throughout the project and guiding me in the right direction. &lt;/p&gt;

&lt;h3&gt;
  
  
  Community Members
&lt;/h3&gt;

&lt;p&gt;Special thanks to all these community members for helping me throughout the project: &lt;a href="https://github.com/padmajabhol"&gt;Padmaja&lt;/a&gt;, &lt;a href="https://github.com/Namyalg"&gt;Namya&lt;/a&gt;, &lt;a href="https://github.com/chicken-biryani"&gt;Shloka&lt;/a&gt;, &lt;a href="https://github.com/SanjaySinghRajpoot"&gt;Sanjay&lt;/a&gt;, &lt;a href="https://github.com/Janvi-Thakkar"&gt;Janvi&lt;/a&gt;, and &lt;a href="https://github.com/Palaksharma23"&gt;Palak&lt;/a&gt;. &lt;br&gt;
I wouldn't have been able to finish the project without their help.&lt;/p&gt;

&lt;h3&gt;
  
  
  Community Bonding Period
&lt;/h3&gt;

&lt;p&gt;I started working on the project by researching on the different inputs required for running the GCBM Simulation.&lt;br&gt;
I gathered information from Andrew, Padmaja and Namya regarding the configs which can be edited by the users on the web interface.&lt;br&gt;
During this period, we also decided to migrate the project from Vue 2 to Vue 3 as it is the latest version of Vue and supports more libraries. I worked on the migration process and updated all the old libraries to their Vue 3 compatible versions and updated some legacy code.&lt;br&gt;
I also started working on the new components and removing the old ones in the GCBM Simulation Editor.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--VSUmYaG3--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/qkkuv73vem49hlp6qwfr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--VSUmYaG3--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/qkkuv73vem49hlp6qwfr.png" alt="Local Domain Configuration UI" width="880" height="411"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Relevant PRs: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/moja-global/FLINT-UI/pull/294"&gt;Migrate Vue-2 to Vue-3 for FLINT-UI #294&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/moja-global/FLINT-UI/pull/313"&gt;feat: add Sidebar, LocalDomain in GCBM #313&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Week 1:
&lt;/h3&gt;

&lt;p&gt;From the last week of community bonding period I started creating components of each configuration parameter. &lt;br&gt;
In this week, I created the UI for the Modules configuration.&lt;br&gt;
The users can enable and disable (add or remove) modules that'll be included in the run. Some modules, like the Decay Module, also contains configurable variables. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--SQqR7nvi--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/b834tlcohaw9ukovi8r4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--SQqR7nvi--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/b834tlcohaw9ukovi8r4.png" alt="Modules" width="880" height="411"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Relevant PRs:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/moja-global/FLINT-UI/pull/320"&gt;feat: add Modules components for GCBM run #320&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/moja-global/FLINT-UI/pull/322"&gt;feat: add Variables config for GCBM run #322&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Week 2:
&lt;/h3&gt;

&lt;p&gt;In this week I worked on creating the Pools config. Users can edit different pool values and search the name of the pools in a search bar. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--dSSRgOu5--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/oo180779rbo75f9ne6ic.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--dSSRgOu5--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/oo180779rbo75f9ne6ic.png" alt="Pools" width="880" height="410"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--x_O3p_zA--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/aumoelj5yrt0rjjjae21.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--x_O3p_zA--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/aumoelj5yrt0rjjjae21.png" alt="Search bar Pools" width="880" height="413"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Relevant PRs: &lt;br&gt;
&lt;a href="https://github.com/moja-global/FLINT-UI/pull/325"&gt;feat: add Pools config in GCBM run #325&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Week 3:
&lt;/h3&gt;

&lt;p&gt;In this week, I added a Create Simulation page which will be the entry point of the simulation run and added sub-menus in the Upload Section for different file types (disturbances, classifiers, input DB and miscellaneous). &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--WPFVeJFN--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gw4019wn3m35pbbaf72e.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--WPFVeJFN--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gw4019wn3m35pbbaf72e.png" alt="Create Simulation UI" width="880" height="411"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Relevant PRs:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/moja-global/FLINT-UI/pull/331"&gt;chore: redid the file and menu structure #331&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Week 4:
&lt;/h3&gt;

&lt;p&gt;I started working on the UI for the Upload section. Here, the major work was of the JSON config editor. There was a requirement for a GUI editor to make it easier for non-developers to edit the JSON attributes easier. I used the &lt;a href="https://github.com/joaomede/vue3-json-editor"&gt;vue3-json-editor&lt;/a&gt; library for this functionality.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--0ZrICe3z--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/vz2jz35pxz85qrz9astq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--0ZrICe3z--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/vz2jz35pxz85qrz9astq.png" alt="Upload section" width="880" height="416"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Relevant PRs:&lt;br&gt;
&lt;a href="https://github.com/moja-global/FLINT-UI/pull/332"&gt;https://github.com/moja-global/FLINT-UI/pull/332&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Week 5:
&lt;/h3&gt;

&lt;p&gt;I added the UI for editing column names in the DB Editor. After the user uploads a database file, the server responds with the table and attribute names. The requirement was to provide users the option to edit table and attribute names on the frontend. I added a Edit button near the database table which when pressed, makes all the attribute names editable.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--hz4xSvd4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/jamf3la7axum5kaoag40.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--hz4xSvd4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/jamf3la7axum5kaoag40.png" alt="database editor" width="880" height="457"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Relevant PRs:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/moja-global/FLINT-UI/pull/347"&gt;feat: add UI for Spinup, Run simulation, DB Editor, Integrate upload endpoints #347&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Week 6:
&lt;/h3&gt;

&lt;p&gt;Connected some configuration like Local Domain with the Vuex store. I added vue-persist so that the configurations made on the frontend will persist between website reloads.&lt;/p&gt;

&lt;p&gt;Relevant PRs:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/moja-global/FLINT-UI/pull/355"&gt;feat: add UI for Import Simulation modal, connect LocalDomain to the vuex store #355&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Week 7:
&lt;/h3&gt;

&lt;p&gt;Added Import Simulation feature in the sidebar. Here, users can upload all the files required by the simulation. If configuration files are uploaded, they will be read using the FileReader API and the UI will be updated accordingly.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--E3bz89ys--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/q0g88flybnse4xxletus.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--E3bz89ys--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/q0g88flybnse4xxletus.png" alt="import simulation" width="537" height="631"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Week 8:
&lt;/h3&gt;

&lt;p&gt;Added the UI and functionality for changing table names in the db editor.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--iEToC5DK--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/eadbj952dc4w03fw8f0o.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--iEToC5DK--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/eadbj952dc4w03fw8f0o.png" alt="change table names" width="526" height="223"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Week 9:
&lt;/h3&gt;

&lt;p&gt;Worked on adding an Export Simulation feature so that the users can download the configurations in JSON format if they want to continue configuring the simulation later. &lt;br&gt;
These JSON configuration files can be uploaded in the Import Simulation feature, which will update the UI accordingly.&lt;/p&gt;

&lt;h3&gt;
  
  
  Week 10:
&lt;/h3&gt;

&lt;p&gt;In this week, I worked on creating a &lt;em&gt;Tour&lt;/em&gt; for the simulation, which will help new users understand the flow of the simulation editor. &lt;/p&gt;

&lt;h3&gt;
  
  
  Further Steps:
&lt;/h3&gt;

&lt;p&gt;In the coming week, I will be writing tests for the components I created and documenting the features which will help new contributors understand the code and continue enhancing the project. &lt;/p&gt;

&lt;h4&gt;
  
  
  Previous Blogs:
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://dev.to/yashkandalkar/gsoc-blog-week-1-4c7p"&gt;GSoC Blog - Week 1&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://dev.to/yashkandalkar/gsoc-blog-phase-1-5ek5"&gt;GSoC Blog: Phase 1&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>gsoc</category>
      <category>vue</category>
      <category>mojaglobal</category>
      <category>javascript</category>
    </item>
    <item>
      <title>GSoC Blog: Phase 1</title>
      <dc:creator>yash</dc:creator>
      <pubDate>Sun, 24 Jul 2022 09:13:03 +0000</pubDate>
      <link>https://dev.to/yashkandalkar/gsoc-blog-phase-1-5ek5</link>
      <guid>https://dev.to/yashkandalkar/gsoc-blog-phase-1-5ek5</guid>
      <description>&lt;p&gt;Hello everyone! Hope you're doing well and drinking enough water!&lt;/p&gt;

&lt;h3&gt;
  
  
  Introduction
&lt;/h3&gt;

&lt;p&gt;So - a small introduction of me - I am Yash Kandalkar, an IT undergraduate from Maharashtra, India. I love doing frontend web development.&lt;br&gt;
Recently, I got selected into &lt;a href="https://summerofcode.withgoogle.com/" rel="noopener noreferrer"&gt;Google Summer of Code&lt;/a&gt;, an open-source program for students and working professionals.&lt;br&gt;
I am working on making a User Interface for configuring the simulation run for the &lt;a href="https://moja.global/flint/flint-pilot-projects/#:~:text=The%20Generic%20Carbon%20Budget%20Model%20(GCBM)%2C" rel="noopener noreferrer"&gt;Generic Carbon Budgeting Model (GCBM)&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;You can find my week 1 blog &lt;a href="https://dev.to/yashkandalkar/gsoc-blog-week-1-4c7p"&gt;here&lt;/a&gt;!&lt;/p&gt;
&lt;h3&gt;
  
  
  Progress
&lt;/h3&gt;

&lt;p&gt;Since the most important part of this project is it's Upload section, I started working on it early. &lt;br&gt;
I had a discussion with the folks working on the backend and proposed a design for uploading different file types. &lt;br&gt;
In the new design, all the file types - classifiers, disturbances, input db and miscellaneous files were given a separate UI. This will help users in modifying the config generated on the backend. &lt;br&gt;
After this design was finalised, I started working on the UI for these sections and the config editor. &lt;br&gt;
For the config editor, I used the &lt;a href="https://github.com/joaomede/vue3-json-editor" rel="noopener noreferrer"&gt;vue3-json-editor&lt;/a&gt; which is super cool!&lt;br&gt;
These are some snapshots of the UI:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fo992x9rwwfs1hanavfl0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fo992x9rwwfs1hanavfl0.png" alt="GUI Editor"&gt;&lt;/a&gt; &lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fs3izp5brp02e361k1g1m.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fs3izp5brp02e361k1g1m.png" alt="JSON Editor"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The GUI editor is provided for non-developers who may have trouble editing the JSON file directly. &lt;/p&gt;

&lt;p&gt;For the input database, a UI for changing the column names of the tables from the uploaded database is provided. &lt;/p&gt;

&lt;p&gt;This completes the upload section. Now, the things left in the project are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The backend integration&lt;/li&gt;
&lt;li&gt;UI for Spinup and Libraries configurations&lt;/li&gt;
&lt;li&gt;UI for running the simulation (and downloading the output / logs)&lt;/li&gt;
&lt;li&gt;Some features like importing, exporting the complete simulation, "Need help?" modal to give a tour of the whole simulation (or parts like the upload section, demonstrating how to edit config files)&lt;/li&gt;
&lt;li&gt;Tests for the components I created, and some E2E tests.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Along with the project, I have been creating new issues and reviewing PRs in the FLINT-UI project for new contributors and reviewing PRs of the new UI Library project.&lt;/p&gt;
&lt;h3&gt;
  
  
  Challenges:
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Libraries for Vue3&lt;/strong&gt;:
Getting help for fixing issues while using some old libraries with Vue3 is a pain. It's hard to find the solution for a specific error easily. I spent days getting to work 2-3 libraries with Vue3, and ended up isolating some tasks to the backend. &lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Getting overwhelmed&lt;/strong&gt;:
Sometimes, even if you know a lot about the project, you start questioning if you're moving in the right direction. 
Talking with your mentors definitely helps. This may be a small thing from &lt;a href="https://github.com/aornugent" rel="noopener noreferrer"&gt;Andrew&lt;/a&gt; but it encouraged me a lot!
&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdjcthp2o1lenqpuxqh8s.png" alt="You've arrived exactly where we need you and at exactly the right time"&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Managing Time&lt;/strong&gt;:&lt;br&gt;
College re-opened recently. So, it's been a bit hard to manage time, but I'm getting used to it. Our team also got selected in the finals of &lt;a href="http://sih.gov.in/" rel="noopener noreferrer"&gt;SIH&lt;/a&gt; (India's largest hackathon, woohoo 🎉), so we have to work on the implementation of the project's idea too. &lt;/p&gt;

&lt;p&gt;Keeping appropriate hours a day for working on the project helps. I have already completed a huge portion of the project in the holidays. So it'll be easier for me to complete the whole project in the required time.  &lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;
  
  
  Learnings
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;JavaScript Object Cloning:&lt;/strong&gt;&lt;br&gt;
A little technical, but I was under the impression that the spread operator in JS deep clones an object/array:&lt;br&gt;
&lt;/p&gt;

&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;anObject&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;car&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;bus&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;fruits&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;apple&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;banana&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;4&lt;/span&gt; &lt;span class="p"&gt;}}&lt;/span&gt;
&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;objectClone&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="p"&gt;...&lt;/span&gt;&lt;span class="nx"&gt;anObject&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;



&lt;p&gt;But, it only goes one level deep while cloning objects. For deep cloning, you're supposed to use a custom function like &lt;code&gt;cloneDeep&lt;/code&gt; from lodash.&lt;/p&gt;


&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;&lt;a href="https://tailwindcss.com/" rel="noopener noreferrer"&gt;TailwindCSS&lt;/a&gt; &amp;amp; &lt;a href="https://antdv.com/" rel="noopener noreferrer"&gt;Ant Design Vue&lt;/a&gt;&lt;/strong&gt;: These two libraries are NOT completely compatible. I'd love to use these two side by side without any issues. There are some default styles from Tailwind that interferes with antdv components. For e.g.: Borders of text input component from antdv are bigger due to some styles from Tailwind, antdv icons appear a little lower than they should due to Tailwind's styles. These can be fixed easily by overwriting the appropriate class, but shouldn't be a problem in the first place.&lt;/p&gt;&lt;/li&gt;

&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmedia3.giphy.com%2Fmedia%2FJd5YlXOVTcQtW%2Fgiphy.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmedia3.giphy.com%2Fmedia%2FJd5YlXOVTcQtW%2Fgiphy.gif" alt="cat gif"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;center&gt;BONUS: Cat GIF.&lt;/center&gt;

&lt;center&gt;_it was hard to select one_&lt;/center&gt;




&lt;p&gt;That's all for now. Until next time. Peace ✌️!&lt;/p&gt;

</description>
      <category>gsoc</category>
      <category>vue</category>
      <category>opensource</category>
      <category>webdev</category>
    </item>
    <item>
      <title>GSoC Blog - Week 1</title>
      <dc:creator>yash</dc:creator>
      <pubDate>Sun, 19 Jun 2022 20:46:37 +0000</pubDate>
      <link>https://dev.to/yashkandalkar/gsoc-blog-week-1-4c7p</link>
      <guid>https://dev.to/yashkandalkar/gsoc-blog-week-1-4c7p</guid>
      <description>&lt;p&gt;Hey everyone! Hope you're doing well and drinking enough water!&lt;/p&gt;

&lt;h4&gt;
  
  
  Introduction
&lt;/h4&gt;

&lt;p&gt;So - a small introduction of me - I am Yash Kandalkar, an IT undergraduate from Maharashtra, India. I started my programming journey when I was 16, with Python as my first language. It taught me a lot of important programming concepts. Currently, I love doing frontend web development.&lt;/p&gt;

&lt;p&gt;Recently, I got selected into &lt;a href="https://summerofcode.withgoogle.com/"&gt;Google Summer of Code&lt;/a&gt;, an open-source program for students and working professionals. &lt;br&gt;
This was a dream come true. I am working on making a User Interface for configuring the simulation run for the &lt;a href="https://moja.global/flint/flint-pilot-projects/#:~:text=The%20Generic%20Carbon%20Budget%20Model%20(GCBM)%2C"&gt;Generic Carbon Budgeting Model (GCBM)&lt;/a&gt;, a model to generate detailed maps of carbon changes and emission associated with land use change.&lt;/p&gt;

&lt;h4&gt;
  
  
  The Beginning
&lt;/h4&gt;

&lt;p&gt;I got to know about &lt;a href="https://moja.global"&gt;Moja Global&lt;/a&gt; from &lt;a href="https://github.com/chicken-biryani/"&gt;Shloka Gupta&lt;/a&gt;, the UI working group lead at Moja Global. Shloka and &lt;a href="https://github.com/sohamsshah"&gt;Soham Shah&lt;/a&gt;, a past contributor and an LFX Mentee at Moja Global, helped me a lot during my initial contributions in the organisation.&lt;br&gt;
The Moja Global community is very welcoming and all the members help new contributors in getting started with the projects. All you have to do is show interest, attend weekly meetings, and play around with the projects of your interest to have an understanding of the existing code. &lt;br&gt;
There is also a Documentation Working Group which works on writing technical documentation of the sciences involved in these models and working of the &lt;a href="https://docs.moja.global/"&gt;documentation website&lt;/a&gt;.&lt;/p&gt;

&lt;h4&gt;
  
  
  The Proposal
&lt;/h4&gt;

&lt;p&gt;The proposal writing process for the GCBM Simulation Project was a lengthy task. I joined the organisation just a few weeks before the GSoC projects list was published, so I was still getting to know how the things worked. I read lots of documents, and watched the &lt;a href="https://www.youtube.com/playlist?list=PL_WECUlMWiUmZYoPHNn6RnMSia5Naj5gE"&gt;Introduction GCBM Simulation&lt;/a&gt; to have a deeper understanding of the project. Before the deadline I had already made a lot of contributions to the &lt;a href="https://www.github.com/moja-global/FLINT-UI"&gt;FLINT-UI&lt;/a&gt; project, and had a fair understanding of what was to be done. &lt;br&gt;
The final few days was pretty hectic as we had our college journal submissions too. While everyone else were getting their journals checked, I had most of them incomplete. :)&lt;/p&gt;

&lt;p&gt;The mentors at Moja Global (&lt;a href="https://github.com/aornugent"&gt;Andrew&lt;/a&gt; and &lt;a href="https://github.com/HarshCasper"&gt;Harsh&lt;/a&gt;) helped a lot with the proposal with their reviews. I was satisfied with the proposal and submitted it on the final day. &lt;/p&gt;

&lt;p&gt;You can have a look at &lt;a href="https://summerofcode.withgoogle.com/media/user/5be392b58636/proposal/3YjYnht7mQH1qWW7.pdf"&gt;my proposal here&lt;/a&gt; if you want.&lt;/p&gt;

&lt;h4&gt;
  
  
  The Acceptance
&lt;/h4&gt;

&lt;p&gt;After the long wait, I was filled with joy seeing this from Harsh. &lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--6Diu0vt5--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/50t8awst1osbvm4uhg6h.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--6Diu0vt5--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/50t8awst1osbvm4uhg6h.png" alt="Harsh congratulations" width="880" height="73"&gt;&lt;/a&gt;&lt;br&gt;
And of course, Shloka hyping me up XD:&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--U3DcFwqC--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/uwdn6jcz76q6b1ux94wn.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--U3DcFwqC--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/uwdn6jcz76q6b1ux94wn.png" alt="excited Shloka" width="821" height="346"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Community Bonding Period
&lt;/h4&gt;

&lt;p&gt;I could not do a lot of work during this time as I had my finals going on (killed it). But I still managed to discuss a few things with Andrew, attend the working group meetings and work with &lt;a href="https://github.com/padmajabhol"&gt;Padmaja&lt;/a&gt; and &lt;a href="https://github.com/Namyalg"&gt;Namya&lt;/a&gt; (community members working on the &lt;a href="https://github.com/moja-global/FLINT.Cloud"&gt;FLINT.Cloud&lt;/a&gt; project) on some inputs for the simulation.&lt;/p&gt;

&lt;p&gt;Just after my exam, we decided in a meeting that we should migrate the project from Vue 2 to Vue 3 due to better support from libraries and the community. For the first week, I worked on migrating all the libraries used, to their Vue 3 supporting version and making changes as necessary. After the initial steps of migration were done, and everything was functional with Vue 3, &lt;a href="https://github.com/Palaksharma23"&gt;Palak&lt;/a&gt; worked on migrating all the components that used the Options API to using the new Composition API which is recommended in Vue 3. &lt;/p&gt;

&lt;p&gt;After this, I couldn't work for another week and a half due to personal reasons. &lt;/p&gt;

&lt;h4&gt;
  
  
  The Coding Begins
&lt;/h4&gt;

&lt;p&gt;I started the actual coding of the new UI from 15th. I removed the old code and made the landing page first. Adding a sidebar with the configurations parameters was necessary for the ease of navigation for the user. Andrew also gave a great suggestion during this time - of having collapsible groups inside each configuration, so that the user can have a bird's eye view of all the options inside a parameter.&lt;/p&gt;

&lt;p&gt;Currently, I have worked on the landing component, sidebar, and the local domain configuration. The tricky part here was having nested children components in vue-router. It took me more time that it should've (I still don't know many things in Vue projects, googling my way through :)).&lt;/p&gt;

&lt;p&gt;I plan on adding the Modules configurations tomorrow (June 20th). There are still some things that needs to be worked on which I realise while I'm working on these configuration components. Things like showing previous simulation runs, providing an option to continue these runs, and load their previously completed configurations. These configs also need to be stored in the local-storage of the browser so that if the user leaves the page without running the simulation, there changes aren't lost.&lt;/p&gt;

&lt;h4&gt;
  
  
  Continuation
&lt;/h4&gt;

&lt;p&gt;These were my updates till now, I'll be writing more mini-blogs in the coming weeks about the progress. &lt;/p&gt;

&lt;p&gt;Stay tuned, and again, drink enough water.&lt;/p&gt;

</description>
      <category>gsoc</category>
      <category>vue</category>
      <category>webdev</category>
      <category>opensource</category>
    </item>
  </channel>
</rss>
