<?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>Forem: Tate Handley</title>
    <description>The latest articles on Forem by Tate Handley (@tate_handley).</description>
    <link>https://forem.com/tate_handley</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%2F976579%2F2c69ce0d-9234-48a9-b862-49ced2387cdc.png</url>
      <title>Forem: Tate Handley</title>
      <link>https://forem.com/tate_handley</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/tate_handley"/>
    <language>en</language>
    <item>
      <title>My Final week at Flatiron</title>
      <dc:creator>Tate Handley</dc:creator>
      <pubDate>Fri, 31 Mar 2023 13:17:03 +0000</pubDate>
      <link>https://forem.com/tate_handley/my-final-week-at-flatiron-1a62</link>
      <guid>https://forem.com/tate_handley/my-final-week-at-flatiron-1a62</guid>
      <description>&lt;p&gt;Congratulations on reaching your final week at Flatiron Coding Bootcamp! It's an exciting time filled with mixed emotions as you prepare to complete your intensive program.&lt;/p&gt;

&lt;p&gt;During your time at Flatiron, you've undoubtedly worked hard to learn and master various programming languages and tools. You've likely built numerous projects and worked collaboratively with your fellow students. Now, as you approach the end of the program, it's time to reflect on all that you've accomplished and look ahead to what's next.&lt;/p&gt;

&lt;p&gt;In this final week, you'll likely be putting the finishing touches on your portfolio and polishing up your skills. You may be reviewing material from earlier in the program to ensure that you're ready for any final exams or assessments. It's also a good time to connect with your instructors and fellow students, to exchange ideas and insights as you prepare to enter the workforce.&lt;/p&gt;

&lt;p&gt;As you prepare to graduate, it's natural to feel a mix of excitement and apprehension. You may be eager to start your career as a software developer or to continue your education. At the same time, you may be nervous about finding a job or adjusting to life outside of the structured environment of the bootcamp.&lt;/p&gt;

&lt;p&gt;Remember, though, that you've come a long way in a short amount of time. You've demonstrated your ability to learn new skills quickly and to apply them to real-world problems. You've also gained valuable experience working in teams and communicating effectively with others.&lt;/p&gt;

&lt;p&gt;So, as you approach the end of your time at Flatiron, take a moment to celebrate all that you've achieved. Recognize the hard work and dedication that you've put in and look forward to the exciting opportunities that lie ahead. And most importantly, stay curious, stay motivated, and continue to learn and grow as a developer. Congratulations again, and best of luck in your future endeavors!&lt;/p&gt;

</description>
    </item>
    <item>
      <title>My first week at flatiron</title>
      <dc:creator>Tate Handley</dc:creator>
      <pubDate>Thu, 23 Mar 2023 21:32:39 +0000</pubDate>
      <link>https://forem.com/tate_handley/my-first-week-at-flatiron-1n35</link>
      <guid>https://forem.com/tate_handley/my-first-week-at-flatiron-1n35</guid>
      <description>&lt;p&gt;Thinking back to my first week of flatiron it was a pretty exciting experience, I had no clue what was happening or what I was doing. I still don't but It is something that comes with practice and time. It's easy to get discouraged and feel this sense of "why am I even trying this" but If you nose to the grindstone and just try to take each day one step at a time I think It will all pay off in the end.&lt;/p&gt;

&lt;p&gt;Getting into coding is a daunting experience, and can really get you feeling like you don't know anything. The thing is, you don't but the joy of coding seems to be you get to find out!&lt;/p&gt;

</description>
    </item>
    <item>
      <title>A basic use of NameSpacing</title>
      <dc:creator>Tate Handley</dc:creator>
      <pubDate>Tue, 21 Feb 2023 19:38:24 +0000</pubDate>
      <link>https://forem.com/tate_handley/a-basic-use-of-namespacing-5hb0</link>
      <guid>https://forem.com/tate_handley/a-basic-use-of-namespacing-5hb0</guid>
      <description>&lt;p&gt;NameSpacing was a little endeavor I decided to take upon myself for our Phase 4 project at flatiron, let me explain just a couple of highs and lows of this fun and useful feature of rails. &lt;/p&gt;

&lt;p&gt;NameSpacing is a useful tool to prefix the Url path to specified resources. Which will allow your machine to try and locate your controllers etc. under a module of the same name as the namespace.&lt;/p&gt;

&lt;p&gt;Yeah it sounds pretty technical but in practice it is a pretty simple set up. when first starting out I went to my Routes.rb file in my backend &lt;br&gt;
&lt;a href="https://media2.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%2Feq5kv8a3wi71xq9kx4db.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.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%2Feq5kv8a3wi71xq9kx4db.png" alt="Route.rb" width="224" height="58"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;now what you'll need to do in this file is just add a couple very short lines of code underneath the first &lt;strong&gt;do&lt;/strong&gt; of the file like so.&lt;br&gt;
&lt;a href="https://media2.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%2Fmdbwycgna9327v2hmf3l.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.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%2Fmdbwycgna9327v2hmf3l.png" alt="route.rbFile" width="594" height="108"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;DO NOT FORGET TO ADD THE CORRESPONDING END FOR THE DO's&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;in the end your routes file should resemble something like this.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.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%2Fulm9k763d18esznv6h7j.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.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%2Fulm9k763d18esznv6h7j.png" alt="RoutesFile" width="800" height="402"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now your routes are done you need to make sure your controllers also reflect the use of api and v1. what you will need to do next is create two new folders and rest them inside the controllers folder. Name the first folder api and move it into your controllers folder, then create the second and move it inside the api folder. your files should reflect this. &lt;br&gt;
&lt;a href="https://media2.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%2Fcxwu0jvmi8kehnsje8f1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.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%2Fcxwu0jvmi8kehnsje8f1.png" alt="api/v1 file" width="314" height="96"&gt;&lt;/a&gt;&lt;br&gt;
then drag and drop your controllers into the api/v1 folder. &lt;strong&gt;MAKE SURE&lt;/strong&gt; that your controllers are landing inside the correct file or you will run into bugs that just don't seem to make sense but it is because your computer will be looking for files in the wrong spot. &lt;/p&gt;

&lt;p&gt;And to answer your question, no it is not finished. Just a couple more additions to your controllers to make sure you are establishing the communication correctly! &lt;/p&gt;

&lt;p&gt;Now in each controller, excluding the Application Controller and your Fallback Controller (if you have one established). Since they all now sit under this api/v1 folder combination you need to have your code reflect that as well. at the top of your controllers where you see the&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Controller &amp;lt; ApplicationController
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;you will need to add the proper NameSpacing, it should look something like this.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;API::V1::Controller &amp;lt; API::V1::ApplicationController
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And there you have it! your controllers are properly NameSpaced! Now there are other methods of NameSpacing such as use Modules, which require a little bit more code to be written so I wont go into to detail but if you'd like to read up on it (which I recommend) please check out the links at the end of this blog! &lt;/p&gt;

&lt;p&gt;Now in the front end what you will need to make sure you do is include an "/api/v1" to the routes for your fetch calls! heres an example. &lt;br&gt;
&lt;a href="https://media2.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%2Five5p3jnetg2rwhse5k9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.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%2Five5p3jnetg2rwhse5k9.png" alt="frontend fetch" width="784" height="232"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;See its not so daunting a task and actually is something relatively simple to set up, now it does come with its own forms of complications and bugs so do take time to read up on it and make sure you understand how to properly implement this into your projects! &lt;/p&gt;

&lt;p&gt;I hope this was informative and helpful in you establishing NameSpacing for yourself!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://devblast.com/b/rails-5-routes-scope-vs-namespace" rel="noopener noreferrer"&gt;Scope vs NameSpacing&lt;/a&gt;&lt;br&gt;
&lt;a href="https://boykoc.github.io/ruby/rubyonrails/2016/12/16/namespaces-and-modules-in-rails.html" rel="noopener noreferrer"&gt;NameSpacing with Modules&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>productivity</category>
      <category>workplace</category>
      <category>discuss</category>
    </item>
    <item>
      <title>Following the Flow</title>
      <dc:creator>Tate Handley</dc:creator>
      <pubDate>Fri, 06 Jan 2023 17:48:18 +0000</pubDate>
      <link>https://forem.com/tate_handley/following-the-flow-48p2</link>
      <guid>https://forem.com/tate_handley/following-the-flow-48p2</guid>
      <description>&lt;p&gt;React can be a complicated tool when first starting out, it's easy to lose track of the passing of information and frustrating to get back on track once you get lost. So I hope I can provide some insight into understanding how you can keep track of your data when passing it around your app.&lt;/p&gt;

&lt;p&gt;The most important part is understanding the "tree" of your app, take the image below for example.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--T_5j4rRf--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/o5je6m1zn9dm4cr7ahku.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--T_5j4rRf--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/o5je6m1zn9dm4cr7ahku.png" alt="React Tree" width="880" height="264"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;you can see how the data flows from the top down to the lower components, also know as the children or grandchildren, depending how low they sit in the tree. It's always crucial that when you are working in a react application that you first and foremost draw out your "tree" so that you know what information is being passed where. I will use snippets of our second phase at Flatiron for an example of just the basic idea of data flow.  &lt;/p&gt;

&lt;p&gt;Now like in the image above we start by building our tree. We had our App.js file, which acts as the parent to all the other components we were going to build.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--GVuZM33d--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/yr5pg5nj3417yzubdn17.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--GVuZM33d--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/yr5pg5nj3417yzubdn17.png" alt="React tree 2" width="290" height="508"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Go ahead and ignore the Route and Switch for now, those will come later. focus on the core components. We have the app, which leads down to the Form, Counter, Wallet, Search, and ComicList, which ComicList contains a Child or GrandChild called Comic. now I'm sure you're asking "how do I know where to start?" these next couple of steps will get you there. &lt;/p&gt;

&lt;p&gt;I mentioned STATE earlier, if you are new to React and are lost I highly recommend reading up here: &lt;/p&gt;
&lt;div class="crayons-card c-embed text-styles text-styles--secondary"&gt;
      &lt;div class="c-embed__cover"&gt;
        &lt;a href="https://reactjs.org/docs/state-and-lifecycle.html" class="c-link s:max-w-50 align-middle" rel="noopener noreferrer"&gt;
          &lt;img alt="" src="https://res.cloudinary.com/practicaldev/image/fetch/s--zsQScK7q--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://reactjs.org/logo-og.png" height="462" class="m-0" width="880"&gt;
        &lt;/a&gt;
      &lt;/div&gt;
    &lt;div class="c-embed__body"&gt;
      &lt;h2 class="fs-xl lh-tight"&gt;
        &lt;a href="https://reactjs.org/docs/state-and-lifecycle.html" rel="noopener noreferrer" class="c-link"&gt;
          State and Lifecycle – React
        &lt;/a&gt;
      &lt;/h2&gt;
      &lt;div class="color-secondary fs-s flex items-center"&gt;
          &lt;img alt="favicon" class="c-embed__favicon m-0 mr-2 radius-0" src="https://res.cloudinary.com/practicaldev/image/fetch/s--QGThkwG4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://reactjs.org/favicon.ico" width="64" height="64"&gt;
        reactjs.org
      &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;


&lt;p&gt;The first piece of advice I can give when trying to figure these things out is to slow down, and plan what you need to do and take it one step at a time. so,&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 1:
&lt;/h2&gt;

&lt;p&gt;what do we need to do? If you need to just get information on the page what components are going to need that data to be able to render it? &lt;/p&gt;

&lt;h2&gt;
  
  
  Step 2:
&lt;/h2&gt;

&lt;p&gt;Plan on how you will need to do that. What is the job of each component going to be tasked with? What data are they going to need to be able to preform that job? If two siblings need the SAME data how will you pass that &lt;em&gt;down&lt;/em&gt; to them both?&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 3:
&lt;/h2&gt;

&lt;p&gt;Take it slow and remember to back track if you get lost.&lt;/p&gt;

&lt;p&gt;Lets look at the code &lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--2N0FT9pz--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/hgau3uy3uzol01ye3n6k.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--2N0FT9pz--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/hgau3uy3uzol01ye3n6k.png" alt="useState function" width="676" height="90"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Let's say you have already written out your fetch and got your data appearing in your console tools. But now you need to pass the information to its desired component. In the tree to our project you saw a ComicList with a grandChild Comic. If I was a betting man, I'd put my money on those two being in charge of displaying the information. Now if you did your fetch correctly, and to be sure here is a best practice example: &lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--23xA_6BS--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/g78ytclbphdap6no93s0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--23xA_6BS--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/g78ytclbphdap6no93s0.png" alt="Async fetch" width="880" height="386"&gt;&lt;/a&gt; &lt;br&gt;
then you are already using the setState Function "setComicList" &lt;br&gt;
if the best practice method is new to you please read up here.&lt;/p&gt;
&lt;div class="crayons-card c-embed text-styles text-styles--secondary"&gt;
      &lt;div class="c-embed__cover"&gt;
        &lt;a href="https://reactjs.org/docs/hooks-effect.html#gatsby-focus-wrapper" class="c-link s:max-w-50 align-middle" rel="noopener noreferrer"&gt;
          &lt;img alt="" src="https://res.cloudinary.com/practicaldev/image/fetch/s--zsQScK7q--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://reactjs.org/logo-og.png" height="462" class="m-0" width="880"&gt;
        &lt;/a&gt;
      &lt;/div&gt;
    &lt;div class="c-embed__body"&gt;
      &lt;h2 class="fs-xl lh-tight"&gt;
        &lt;a href="https://reactjs.org/docs/hooks-effect.html#gatsby-focus-wrapper" rel="noopener noreferrer" class="c-link"&gt;
          Using the Effect Hook – React
        &lt;/a&gt;
      &lt;/h2&gt;
      &lt;div class="color-secondary fs-s flex items-center"&gt;
          &lt;img alt="favicon" class="c-embed__favicon m-0 mr-2 radius-0" src="https://res.cloudinary.com/practicaldev/image/fetch/s--QGThkwG4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://reactjs.org/favicon.ico" width="64" height="64"&gt;
        reactjs.org
      &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;


&lt;p&gt;ComicList is acting as the container that renders each individual comic, So lets pass the State Variable we created to maintain this newly acquired data down to that component like so. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--TVnMA13L--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8spi0y3lko6ebq4wyw6x.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--TVnMA13L--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8spi0y3lko6ebq4wyw6x.png" alt="Passing state" width="442" height="40"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;now that the data has reached ComicList, we need to use a method to get each object out of the array and give it some individuality. that method is the .map() method. it looks a little something like this. &lt;/p&gt;

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

&lt;p&gt;what this is doing is taking that state variable containing our data, iterating through the array {...} and picking out each object using the key={} so use the ID to identify each object. the Spread also allows us to de-structure the data so it makes it easier for use to input what we want our comic cards to look like. and since we created the Comic component in our map function. the data has been successfully passed. the final step is placing the passed data in its correct places. Now I mentioned that we de-structured our data using the spread operator in the map function, what that looks like is this. &lt;/p&gt;

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

&lt;p&gt;and what it is referring to is in our db.json file. &lt;/p&gt;

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

&lt;p&gt;our destructured data matches the data inside the db.json file and we use it that way to target those unique identifiers!&lt;/p&gt;

&lt;p&gt;now all there is to do is place it in the correct places with {} like so. &lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--kF2OUBfv--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/b4cz4av21uqoujclsvdz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--kF2OUBfv--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/b4cz4av21uqoujclsvdz.png" alt="placement" width="864" height="260"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;and with that you have correctly fetched data, passed it down, mapped it, and passed it to its desired location and rendered it to your page! &lt;/p&gt;

&lt;p&gt;There is so much more to understand when it comes to data flow and the passing of information but I hope this was a good lesson in understanding the basic flow of passing information. &lt;/p&gt;

&lt;p&gt;If i have left you confused I highly recommend researching some of the things I have mentioned in this blog. .map(), State, useEffect, async and await. are all highly useful and crucial to understand. Here are a couple links to get you going on your journey! &lt;/p&gt;


&lt;div class="crayons-card c-embed text-styles text-styles--secondary"&gt;
      &lt;div class="c-embed__cover"&gt;
        &lt;a href="https://reactjs.org/" class="c-link s:max-w-50 align-middle" rel="noopener noreferrer"&gt;
          &lt;img alt="" src="https://res.cloudinary.com/practicaldev/image/fetch/s--zsQScK7q--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://reactjs.org/logo-og.png" height="462" class="m-0" width="880"&gt;
        &lt;/a&gt;
      &lt;/div&gt;
    &lt;div class="c-embed__body"&gt;
      &lt;h2 class="fs-xl lh-tight"&gt;
        &lt;a href="https://reactjs.org/" rel="noopener noreferrer" class="c-link"&gt;
          React – A JavaScript library for building user interfaces
        &lt;/a&gt;
      &lt;/h2&gt;
      &lt;div class="color-secondary fs-s flex items-center"&gt;
          &lt;img alt="favicon" class="c-embed__favicon m-0 mr-2 radius-0" src="https://res.cloudinary.com/practicaldev/image/fetch/s--QGThkwG4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://reactjs.org/favicon.ico" width="64" height="64"&gt;
        reactjs.org
      &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;



&lt;div class="crayons-card c-embed text-styles text-styles--secondary"&gt;
      &lt;div class="c-embed__cover"&gt;
        &lt;a href="https://reactjs.org/docs/lists-and-keys.html" class="c-link s:max-w-50 align-middle" rel="noopener noreferrer"&gt;
          &lt;img alt="" src="https://res.cloudinary.com/practicaldev/image/fetch/s--zsQScK7q--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://reactjs.org/logo-og.png" height="462" class="m-0" width="880"&gt;
        &lt;/a&gt;
      &lt;/div&gt;
    &lt;div class="c-embed__body"&gt;
      &lt;h2 class="fs-xl lh-tight"&gt;
        &lt;a href="https://reactjs.org/docs/lists-and-keys.html" rel="noopener noreferrer" class="c-link"&gt;
          Lists and Keys – React
        &lt;/a&gt;
      &lt;/h2&gt;
      &lt;div class="color-secondary fs-s flex items-center"&gt;
          &lt;img alt="favicon" class="c-embed__favicon m-0 mr-2 radius-0" src="https://res.cloudinary.com/practicaldev/image/fetch/s--QGThkwG4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://reactjs.org/favicon.ico" width="64" height="64"&gt;
        reactjs.org
      &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;



&lt;div class="crayons-card c-embed text-styles text-styles--secondary"&gt;
      &lt;div class="c-embed__cover"&gt;
        &lt;a href="https://reactjs.org/docs/thinking-in-react.html" class="c-link s:max-w-50 align-middle" rel="noopener noreferrer"&gt;
          &lt;img alt="" src="https://res.cloudinary.com/practicaldev/image/fetch/s--zsQScK7q--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://reactjs.org/logo-og.png" height="462" class="m-0" width="880"&gt;
        &lt;/a&gt;
      &lt;/div&gt;
    &lt;div class="c-embed__body"&gt;
      &lt;h2 class="fs-xl lh-tight"&gt;
        &lt;a href="https://reactjs.org/docs/thinking-in-react.html" rel="noopener noreferrer" class="c-link"&gt;
          Thinking in React – React
        &lt;/a&gt;
      &lt;/h2&gt;
      &lt;div class="color-secondary fs-s flex items-center"&gt;
          &lt;img alt="favicon" class="c-embed__favicon m-0 mr-2 radius-0" src="https://res.cloudinary.com/practicaldev/image/fetch/s--QGThkwG4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://reactjs.org/favicon.ico" width="64" height="64"&gt;
        reactjs.org
      &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;


</description>
      <category>react</category>
    </item>
    <item>
      <title>Learning how to fish for data</title>
      <dc:creator>Tate Handley</dc:creator>
      <pubDate>Fri, 09 Dec 2022 18:59:38 +0000</pubDate>
      <link>https://forem.com/tate_handley/learning-how-to-fish-for-data-29m3</link>
      <guid>https://forem.com/tate_handley/learning-how-to-fish-for-data-29m3</guid>
      <description>&lt;p&gt;Coming to a close on Phase 1 of the Flatiron coding bootcamp, I look back at what we have gone through and am a little surprised at how much has been accomplished. &lt;/p&gt;

&lt;p&gt;I helped create a webpage database that uses an external API to fetch and organize information from the government monitoring library Fish watch. &lt;/p&gt;

&lt;p&gt;We started by finding the open sourced API and created our fetch request. first to the API then to turn the .json data into something legible for our local environment to understand. It went a little like this: &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--E9hX0Vyn--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/034ttb6tv1xd2a2cxhuo.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--E9hX0Vyn--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/034ttb6tv1xd2a2cxhuo.png" alt="Image description" width="720" height="416"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can see we reach out to the API and pass the returned .json data to be turned into something legible by our local machine. we then took that data and ran it through a console.log to make sure we were collecting the correct data. which in that case we were! Now instead of breaking it down step by step I'll just share a couple big take aways that I learned. This project was something that really solidified my understand of manipulating the DOM. Having to make use of tools like console.logs and debuggers to make sure when we created our listener events for the page that we were not breaking the flow of our code. &lt;/p&gt;

&lt;p&gt;the piece of code I was most proud of by the end of the project was the function that rendered our fish information, pictures and functionality all in one. (best practice? probably not, but it was still impressive to me.) &lt;/p&gt;

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

&lt;p&gt;We first created the variables we were going to need to properly place the information on the document and have content appear on the page. Creating a div "liveWell", an h1 tag, a couple P tags, and another div which would act as the container for the images and information. Next we went on to populating the page with the content. &lt;/p&gt;

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

&lt;p&gt;We first worked on creating the image variable so we would be able to access the data, giving it an alt id as well to make it an easier process down the road. Also created the container for the details where all the P tags would sit inside the cards. We added the class so we could tie it to our event listener that we created a little later on. &lt;/p&gt;

&lt;p&gt;We also needed to add in classes for the pulled elements so we could target them and append them to our containers: &lt;/p&gt;

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

&lt;p&gt;We specifically targeted Taste, Protein content, and Health benefits. Using the title of each container to be the space for the species name. &lt;/p&gt;

&lt;p&gt;And now since we had all our information all we needed to do was append it to the page! &lt;/p&gt;

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

&lt;p&gt;At this point we just were not getting the information we desired so we, came to the conclusion that if we interpolated we could access the data we were searching for and get it to act for each individual fish based off of the elements within the objects.&lt;/p&gt;

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

&lt;p&gt;But wait! now all the data was showing but we needed all of our appended data to hide behind the images of the fish. What did we miss? That event listener I had mentioned earlier! So we went back and attached it and ended with the final piece of code: &lt;/p&gt;

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

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

&lt;p&gt;It looks like a lot but being able to break it down and know what each line of code is doing was a big success and kept me wanting to fish for more Data. &lt;/p&gt;

&lt;p&gt;If you'd like to check out the page we created please check out the repo here! &lt;a href="https://github.com/Shenanigans570/funFactsProject/tree/newBranch"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>html</category>
      <category>css</category>
      <category>api</category>
    </item>
  </channel>
</rss>
