<?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: Atharv Redij</title>
    <description>The latest articles on DEV Community by Atharv Redij (@atharvredij).</description>
    <link>https://dev.to/atharvredij</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%2F584730%2F1a09687b-3bcc-4b9c-98ad-5b04702a0bad.jpeg</url>
      <title>DEV Community: Atharv Redij</title>
      <link>https://dev.to/atharvredij</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/atharvredij"/>
    <language>en</language>
    <item>
      <title>How I created a google forms clone using AWS</title>
      <dc:creator>Atharv Redij</dc:creator>
      <pubDate>Wed, 28 Jul 2021 15:38:41 +0000</pubDate>
      <link>https://dev.to/atharvredij/how-i-created-a-google-forms-clone-using-aws-11b6</link>
      <guid>https://dev.to/atharvredij/how-i-created-a-google-forms-clone-using-aws-11b6</guid>
      <description>&lt;h1&gt;
  
  
  Introduction
&lt;/h1&gt;

&lt;p&gt;Last month I decided to learn cloud, as it is a key requirement for most developer jobs and also because I have interest in web development. I started learning about different services of AWS like EC2, S3, DynamoDB, Lambda, etc. &lt;/p&gt;

&lt;p&gt;So, I decided to use these services in a personal project. I chose to create a google forms clone as it was a challenging idea for beginner like me and it involved use of three key services of AWS i.e. Lambda, DynamoDB &amp;amp; S3. I decided to only include the key feature of google forms i.e. creating a customized form and sharing it with everyone so they can fill in their responses.&lt;/p&gt;

&lt;h1&gt;
  
  
  Backend
&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--il4DEX_k--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/kzbnzvoj5zb7mpblxdg7.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--il4DEX_k--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/kzbnzvoj5zb7mpblxdg7.jpg" alt="Formful AWS Architecture"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I chose to go with serverless rather than deploying my app on EC2. Backend consist of two services FormService &amp;amp; AuthService.&lt;/p&gt;

&lt;p&gt;All functions in FormsService can be accessed via the API Gateway. All functions require user to be authenticated. &lt;/p&gt;

&lt;p&gt;For authentication, I decided to go with Auth0 as it eases my work by providing all the tools I need for authentication. You can login into the app using username/password or Google OAuth. &lt;/p&gt;

&lt;p&gt;Whenever a request is made to any of the functions. It is first passed to an authorizer lambda function. After checking user's credentials, authorizer returns a JSON Web Token. It is decoded &amp;amp; added into the request context property of the event which function receives. So function has access to user's info such as email, name, etc.&lt;/p&gt;

&lt;p&gt;Now, we have total 5 lambda function as part of FormService.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;createForm&lt;/li&gt;
&lt;li&gt;getForm&lt;/li&gt;
&lt;li&gt;getForms&lt;/li&gt;
&lt;li&gt;submitResponse&lt;/li&gt;
&lt;li&gt;getResponses&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;I think they are pretty much self explanatory. But still I will go over them.&lt;/p&gt;

&lt;h2&gt;
  
  
  createForm
&lt;/h2&gt;

&lt;p&gt;This function receives all the form info such as title, description, questions, etc. It adds a form ID and form creator email and saves it to FormsTable, which is a DynamoDB table.&lt;/p&gt;

&lt;h2&gt;
  
  
  getForm
&lt;/h2&gt;

&lt;p&gt;This function retrieves the form by form ID. &lt;/p&gt;

&lt;h2&gt;
  
  
  getForms
&lt;/h2&gt;

&lt;p&gt;This function retrieves all forms of the logged in user. It gets user email from the decoded JWT and fetches all forms with form creator email equal to user email.&lt;/p&gt;

&lt;h2&gt;
  
  
  submitResponse
&lt;/h2&gt;

&lt;p&gt;This function receives answers to all question of the form and saves the data in ResponsesTable.&lt;/p&gt;

&lt;h2&gt;
  
  
  getResponses
&lt;/h2&gt;

&lt;p&gt;This function retrieves all responses of the given form using form ID.&lt;/p&gt;

&lt;h1&gt;
  
  
  Frontend
&lt;/h1&gt;

&lt;p&gt;Frontend is basically a react app with three pages. A homepage which shows all your forms. From homepage, you can get the shareable link of the form to send to others and an option to download all the responses of the form.&lt;/p&gt;

&lt;p&gt;Another page to create new forms and lastly a page which others see when they open sharable link. This is where they can fill out the form and submit it.&lt;/p&gt;

&lt;p&gt;create form page was particularly challenging for me as I did not have much idea how to add new questions on click of a button. But I managed to solve that problem somehow.&lt;/p&gt;

&lt;p&gt;Other than that I have used bootstrap to style the components. I am not much of a frontend guy. I can write logical code very well but can't design anything creative, so I decided to stick to a basic layout.&lt;/p&gt;

&lt;h1&gt;
  
  
  Result
&lt;/h1&gt;

&lt;p&gt;In the end, I managed to create a good serverless app using the things I learned. It is deployed to AWS. The frontend is deployed to netlify, you can check it &lt;a href="https://formful.netlify.app/"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I have also added a video demo of the project on &lt;a href="https://www.linkedin.com/posts/atharv-redij_react-frontend-cloud-activity-6823281206352723970-B1fM"&gt;LinkedIn&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Let me know what you think.&lt;/p&gt;

</description>
      <category>aws</category>
      <category>serverless</category>
      <category>showdev</category>
      <category>react</category>
    </item>
    <item>
      <title>How should I start my cloud journey?</title>
      <dc:creator>Atharv Redij</dc:creator>
      <pubDate>Wed, 02 Jun 2021 09:47:57 +0000</pubDate>
      <link>https://dev.to/atharvredij/how-should-i-start-my-cloud-journey-54a9</link>
      <guid>https://dev.to/atharvredij/how-should-i-start-my-cloud-journey-54a9</guid>
      <description>&lt;p&gt;Hello everyone, as you may have read from the title I want to know How should I start my cloud journey?&lt;/p&gt;

&lt;p&gt;I am currently working in a service based company as a junior developer. I am good at web development. I have been working on React and NodeJS for some time now and I want to learn cloud (particularly AWS) to get better at full stack development and good job opportunities too :).&lt;/p&gt;

&lt;p&gt;Now the question in front of me is how should I get started? I know there are plenty of resources, free and paid on the internet. But I am not sure which one should I choose. My primary goal is not to just pass the certification exam but to actually learn and use the best cloud practices.&lt;/p&gt;

&lt;p&gt;I have found this course on Udemy. &lt;br&gt;
&lt;a href="https://www.udemy.com/course/aws-certified-developer-associate-dva-c01/"&gt;https://www.udemy.com/course/aws-certified-developer-associate-dva-c01/&lt;/a&gt;&lt;br&gt;
Have anyone of you taken this course? If you know some other course or tutorials, please let me know. &lt;/p&gt;

&lt;p&gt;Also, after learning about AWS what kind of projects should I work on to solidify my knowledge?&lt;/p&gt;

&lt;p&gt;Your suggestions and tips are appreciated. &lt;/p&gt;

</description>
      <category>aws</category>
      <category>cloud</category>
      <category>discuss</category>
      <category>help</category>
    </item>
    <item>
      <title>How to add blogs to react website?</title>
      <dc:creator>Atharv Redij</dc:creator>
      <pubDate>Sat, 27 Mar 2021 09:57:41 +0000</pubDate>
      <link>https://dev.to/atharvredij/how-to-add-blogs-to-react-website-40c3</link>
      <guid>https://dev.to/atharvredij/how-to-add-blogs-to-react-website-40c3</guid>
      <description>&lt;p&gt;Hello everyone. My friend recently asked me if I can develop a website for her. She is a doctor. So she wanted a website with her details, qualification, contact info, etc. I have built this website using react and hosted it on netlify.&lt;/p&gt;

&lt;p&gt;She has requested me to add blogging functionality to this site. I don't know much about adding blogs to react.&lt;/p&gt;

&lt;p&gt;Do you guys know how can I add blogging to her website? Is there any external API or npm package I can use to add blogging support. My goal here is to add blogging with minimal effort and not build a blogging platform from scratch. Any help would be appreciated. &lt;/p&gt;

</description>
      <category>webdev</category>
      <category>help</category>
      <category>discuss</category>
      <category>react</category>
    </item>
    <item>
      <title>Need advice regarding web development</title>
      <dc:creator>Atharv Redij</dc:creator>
      <pubDate>Sat, 27 Feb 2021 10:17:05 +0000</pubDate>
      <link>https://dev.to/atharvredij/need-advice-regarding-web-development-3olm</link>
      <guid>https://dev.to/atharvredij/need-advice-regarding-web-development-3olm</guid>
      <description>&lt;p&gt;I have been learning web development for the past year. I have good knowledge of fundamentals i.e. HTML, CSS &amp;amp; JavaScript. I also know React and Redux. Then I learned about backend development using NodeJS i.e API, authentication, database (MongoDB), etc.&lt;/p&gt;

&lt;p&gt;I have done few projects such as an e-commerce app, google forms clone, COVID-19 tracker, an event registration website, and an admin panel.&lt;/p&gt;

&lt;p&gt;My question is what should I do next? Are there any projects I can do? Any technology to learn? I want to get a job as a full-stack web developer. Any advice would be helpful.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>career</category>
      <category>help</category>
      <category>discuss</category>
    </item>
  </channel>
</rss>
