<?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: JAReichert</title>
    <description>The latest articles on DEV Community by JAReichert (@jareichert).</description>
    <link>https://dev.to/jareichert</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%2F805055%2Fed43465d-8e5c-4ccc-a7ff-523d19ec8a88.jpg</url>
      <title>DEV Community: JAReichert</title>
      <link>https://dev.to/jareichert</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/jareichert"/>
    <language>en</language>
    <item>
      <title>The Party-Planner's Capstone Project</title>
      <dc:creator>JAReichert</dc:creator>
      <pubDate>Tue, 03 May 2022 12:45:09 +0000</pubDate>
      <link>https://dev.to/jareichert/the-party-planners-capstone-project-3eg</link>
      <guid>https://dev.to/jareichert/the-party-planners-capstone-project-3eg</guid>
      <description>&lt;p&gt;Let's say you have a milestone birthday coming up, or you finally snagged that promotion at work.  Maybe you graduated medical school or you just finalized your divorce.  Whatever your reason for throwing a party, you are in the mood to celebrate!  But, why do throwing parties have to be such a hassle?  Between looking up addresses and trying to keep track of who is bringing what, by the day of the celebration you are too pooped to party.  If only there was an easier way to plan a party.....&lt;/p&gt;

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

&lt;p&gt;Well, now there is!  Thanks to our capstone project, RSVParty, planning a party can be as much fun as the party itself!  This fullstack application allows the party-starter to create a party homepage, send invitations to guests via email, provide the guests the party details, and prepare a list of supplies needed for the party.  &lt;/p&gt;

&lt;p&gt;The fun doesn't stop there!  When a person receives an email inviting them to your party, an embedded link takes them right to RSVParty's sign-in page where they can create an account.  After picking their animal avatar, &lt;/p&gt;

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

&lt;p&gt;they can then navigate to your party's homepage.  &lt;/p&gt;

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

&lt;p&gt;There they will find all of the party details, &lt;/p&gt;

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

&lt;p&gt;a party countdown clock, &lt;/p&gt;

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

&lt;p&gt;the guest list to see who else is invited to the party,&lt;/p&gt;

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

&lt;p&gt;a comments section for all of your guests, &lt;/p&gt;

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

&lt;p&gt;and a host generated supply section that instantly updates once an item is claimed by a guest!&lt;/p&gt;

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

&lt;p&gt;Once you have a profile created, the application helps you keep track of all of your parties, whether you are the host or the guest.  &lt;/p&gt;

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

&lt;p&gt;&lt;strong&gt;But, how does it work?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Magic!  Well, not quite.  The application uses React.js (below is a portion of the Supplies Component code),&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;export default function Supplies(props) {
  const dispatch = useDispatch();
  const party = useSelector((state) =&amp;gt; state.party);
  const guest = useSelector((state) =&amp;gt; state.guest);
  const [newSupplies, setNewSupplies] = useState(false);

  const claimItem = (e) =&amp;gt; {
    let itemName = e.target.name;
    let updateItem = party.supplies;
    let updatedSupplies = party.supplies;
    updatedSupplies = updatedSupplies.filter((data) =&amp;gt; data.item !== itemName);
    updateItem = updateItem.filter((data) =&amp;gt; data.item === itemName);
    updateItem[0].guest = {
      firstName: guest.firstName,
      lastName: guest.lastName,
      guestId: guest.guestId,
    };
    updateItem[0].claimed = true;
    updatedSupplies.push(updateItem[0]);
    dispatch({ type: SET_ALL_SUPPLIES, payload: updatedSupplies });
    setNewSupplies(true);
  };
  const deleteItem = (e) =&amp;gt; {
    let itemName = e.target.name;
    let updatedSupplies = party.supplies;
    updatedSupplies = updatedSupplies.filter((data) =&amp;gt; data.item !== itemName);
    dispatch({ type: SET_ALL_SUPPLIES, payload: updatedSupplies });
    setNewSupplies(true);
  };

  useEffect(() =&amp;gt; {
    if (newSupplies) {
      partyUpdateSupplies(party.partyId, party.supplies);
      setNewSupplies(false);
    }
  }, [newSupplies]);
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;React-Redux.js, React-Router, Redux-Persist, and Supabase to create a fully functional full-stack operation. Below is a diagram of our Supabase database schema  &lt;/p&gt;

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

&lt;p&gt;In addition, we used a few packages to help provide some additional functionality to the project.  We used EmailJS, emoji-picker-react, and react-countdown. (below is a sample of the function to send emails employing EmailJS),&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;const sendEmails = () =&amp;gt; {
    let forms = document.querySelectorAll(".guestForm");
    for (const form of forms) {
      emailjs
        .sendForm("YOUR_SERVICE_ID", "YOUR_TEMPLATE_ID", form, "YOUR_PUBLIC_KEY")
        .then(
          (result) =&amp;gt; {
            console.log(result.text);
          },
          (error) =&amp;gt; {
            console.log(error.text);
          }
        );
    }
  };
  const saveAndSend = () =&amp;gt; {
    sendEmails();
    saveParty();
  };
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;So, release your inner party-animal today! The next time you have an event or a party, let RSVParty help with the plans while you have all the fun!&lt;/p&gt;

&lt;p&gt;Creators:&lt;br&gt;
Ciara Cloud&lt;br&gt;
&lt;a href="https://github.com/ciaracloud"&gt;Ciara's GitHub Page&lt;/a&gt; &lt;br&gt;
&lt;a href="https://www.linkedin.com/in/ciaracloud/"&gt;Ciara's LinkedIn Account&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Santos Gutierrez &lt;br&gt;
&lt;a href="https://github.com/San-toast"&gt;Santos's GitHub Page&lt;/a&gt;&lt;br&gt;
&lt;a href="https://www.linkedin.com/in/santos-gutierrez-a0465b233/"&gt;Santos's LinkedIn Account&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Rayleigh Rozier&lt;br&gt;
&lt;a href="https://github.com/rayleighrozier"&gt;Rayleigh's GitHub Page&lt;/a&gt;&lt;br&gt;
&lt;a href="https://www.linkedin.com/in/rayleighrozier/"&gt;Rayleigh's LinkedIn Account&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Jason Reichert&lt;br&gt;
&lt;a href="https://github.com/JAReichert"&gt;Jason's GitHub Page&lt;/a&gt;&lt;br&gt;
&lt;a href="https://www.linkedin.com/in/jason-reichert-03b44b230/"&gt;Jason's LinkedIn Account&lt;/a&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>programming</category>
      <category>fullstack</category>
      <category>react</category>
    </item>
    <item>
      <title>How to send emails from a React application without a backend server</title>
      <dc:creator>JAReichert</dc:creator>
      <pubDate>Sat, 30 Apr 2022 02:13:05 +0000</pubDate>
      <link>https://dev.to/jareichert/how-to-send-emails-from-a-react-application-without-a-backend-server-4pdl</link>
      <guid>https://dev.to/jareichert/how-to-send-emails-from-a-react-application-without-a-backend-server-4pdl</guid>
      <description>&lt;p&gt;I was recently part of a team project where we wanted to send emails confirming registration to our application without using a backend server.  Thanks to my best buddy, Google, we were able to find a way.&lt;br&gt;&lt;br&gt;
Email JS is a free service that allows you to send emails from your applications using only client-side technologies.  No server is needed.  And best of all?  It's free.&lt;/p&gt;

&lt;p&gt;1.) Go to &lt;a href="https://www.emailjs.com/"&gt;https://www.emailjs.com/&lt;/a&gt; and sign up for your free account. &lt;/p&gt;

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

&lt;p&gt;2.) After signing up for your free account, you will find the dashboard.&lt;/p&gt;

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

&lt;p&gt;3.) If you already have a gmail, yahoo, or even an old-school aol email account, you can use it in conjunction with this tool.  Simply click on the Add New Service button and then choose the email provider you use. &lt;/p&gt;

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

&lt;p&gt;NOTE:  EmailJS allows you to send 200 emails a month for free.  If you need to send more, there is a fee.  See the pricing guideline below.  &lt;/p&gt;

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

&lt;p&gt;4) To begin, choose your email provider by clicking the "Connect Account" button.  Then, push the "Create Service" button in the lower right hand corner.&lt;/p&gt;

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

&lt;p&gt;5) Now click on the Email Templates on the left. Then click the "Create New Template" to set up your email message.  Notice that EmailJS allows you to interpolate individualized information with two curly braces. &lt;/p&gt;

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

&lt;p&gt;6) Now that your form email is set up and ready to go, you need to jump into your terminal and type the following where your react project lives.&lt;/p&gt;

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

&lt;p&gt;7) Inside your component you will type the following code.&lt;/p&gt;

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

&lt;p&gt;8) Pay special attention to the 'YOUR_SERVICE_ID', 'YOUR_TEMPLATE_ID', and 'YOUR_PUBLIC_KEY' portion of the code.....&lt;/p&gt;

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

&lt;p&gt;10) These three placeholders need to be replaced with your individualized information.&lt;br&gt;&lt;br&gt;
The 'YOUR_SERVICE_ID' needs to be replaced with the Service ID which you can find in the Email Services portion of the dashboard.&lt;/p&gt;

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

&lt;p&gt;11) The 'YOUR_TEMPLATE_ID' can be found back on the "Email Templates" portion of the dashboard.&lt;/p&gt;

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

&lt;p&gt;12) The 'YOUR_PUBLIC_KEY' portion needs to be replaced with your public key.  This can be found in the Account section located on the dashboard.&lt;/p&gt;

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

&lt;p&gt;13) Once you click the Account link, you will find 'YOUR_PUBLIC_KEY' where it says "Public Key."  &lt;/p&gt;

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

&lt;p&gt;14) Now all you need to do is capture a form where you can capture the information to send an email.  It's that easy!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;In conclusion:&lt;/em&gt;&lt;/strong&gt;&lt;br&gt;
That is just the "bare bones" of what EmailJS can provide for you.  In addition to basic email services, it can also send emails with attachments, add CAPTCHA verification, and even allow auto-replies.  Plus, EmailJS not only works with React, but also vanilla JS, Wix, Vue.js, and Angular.  &lt;/p&gt;

&lt;p&gt;I hope you found this article helpful in adding some functionality to your application.  Happy coding!&lt;/p&gt;

</description>
      <category>react</category>
      <category>beginners</category>
      <category>webdev</category>
      <category>programming</category>
    </item>
    <item>
      <title>Has this ever happened to you?????</title>
      <dc:creator>JAReichert</dc:creator>
      <pubDate>Fri, 15 Apr 2022 19:57:47 +0000</pubDate>
      <link>https://dev.to/jareichert/has-this-ever-happened-to-you-1km1</link>
      <guid>https://dev.to/jareichert/has-this-ever-happened-to-you-1km1</guid>
      <description>&lt;p&gt;You are at your family's Thanksgiving gathering, successfully bobbing and weaving the normal conversational-argument-starting-traps like "When are you two getting married?" and "I knew it was a mistake for you to major in psychology".  No, Aunt Thelma, not today you say, as you deftly slip out of her clutches to "freshen up your drink".  &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--xZCP-1ZB--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/vpz74lmymvto68ivoj5q.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--xZCP-1ZB--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/vpz74lmymvto68ivoj5q.jpeg" alt="Image description" width="300" height="299"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now here comes your brother's-hippie-third-wife who is looking to suck you into an argument with you sister about how the only way to treat your niece's cold humanely is with a three day goat-milk colonic cleanse.  Nope!  Sorry, Harmony, see you coming a mile away and it ain't happening!  You are staying on the balls of your feet, your head on a swivel, keeping it moving, staying off the ropes and not allowing yourself to get cornered and trapped in the middle of a debate with Uncle Frank about how the last president was just misunderstood.  And then?  It happens.  You walk into the living room seeking the sancuarary of watching the Philadelphia Sixers taking on the Boston Celtics with your little cousin and napping grandfather.  Everything is going swimmingly until your cousin says something so shocking, so appaling, so stupid that you almost spit out your wine in disbelief.  Your cousin starts telling you how James Harden is not only one of the greatest ballers of all-time but should have been MVP this past season.  &lt;/p&gt;

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

&lt;p&gt;Ummmmmm....excuse me???!!  What did he just say?  Is he being serious?  No, really, he must be joking, right?  James Harden is not even the best player on his own team for goodness sake.  An idiot can clearly see that Joel Embiid is not only the MVP of this past season but James Harden isn't fit to carry Embiid's luggage!  How can anybody be so ignorant?  So, you try to educate the wayward little chap on his misguided ideologies, but he's not listening to reason.  In fact, he's making even more ridiculous claims, saying that Rudy Gobert is the best center in the NBA this past year!  And that, my friend, is when you get involved in a verbal spat with a 12 year old that gets so heated that years from now it is still refered by family as "The Incident".  If only there was something you could have used to show little Billy just how wrong he was!  Well, now, there is!  Introducing The N-B-Apptastic!&lt;/p&gt;

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

&lt;p&gt;Using the latest in API calls, react.js, redux, and a little sprinkling of magical CSS-dust, the N-B-Apptastic provides you with the latest and greatest in NBA stats and allows you to prove to your foolish little cousin just how wrong he is!&lt;br&gt;&lt;br&gt;
Upon opening, the N-B-Apptastic warmly greets you with a lovely picture of "King" (serious air quotes) James &amp;amp; the Lakers being made to look foolish on defense as Bam Adebayo is living his best life.  While this little gem is worth the price of admission, the real heart and soul of the app is located on this page:&lt;/p&gt;

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

&lt;p&gt;Simply input the names of the players you wish to compare, and KA-BLAMY!  You get a number and a graphical representation comparing the two players in key statistical categories. Now little Billy can't deny just how wrong he was! &lt;/p&gt;

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

&lt;p&gt;In addition, N-B-Apptastic can provide you the latest news about your favorite player from trusted news sources like ESPN, Slam magazine, and the NBA itself! Plus?  N-B-Apptastic is responsive so it can be with you wherever you go!&lt;/p&gt;

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

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

&lt;p&gt;So, now you are probably wondering, how much does such a miraculous marvel of coding ingeniuity cost?  Can one even put a price on happiness???!!  Well, this is your lucky day, because the N-B-Apptastic can be yours with 12 easy payments of........NOTHING!  It is free and is yours to download &lt;a href="https://github.com/JAReichert/n-b-apptastic"&gt;here&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;So, in conclusion, don't let your next family holiday gathering be marred with an ugly NBA argument like last year.  Get the N-B-Apptastic....today!&lt;/p&gt;

&lt;p&gt;Shoutouts:&lt;br&gt;
My Mom (Awesome lady)&lt;br&gt;
Joe Frasier (Awesome Instructor)&lt;br&gt;
&lt;a href="https://www.balldontlie.io/#introduction"&gt;https://www.balldontlie.io/#introduction&lt;/a&gt; (Awesome FREE NBA API)&lt;br&gt;
&lt;a href="https://github.com/kevinn03"&gt;https://github.com/kevinn03&lt;/a&gt; (Awesome FREE NBA News API that returns latest articles based on teams or players.  I don't know if this Kevinn03 gentleman on github created this API or not, I think he did, so just in case, huge thank you Kevinn03.  It's awesome)&lt;/p&gt;

</description>
      <category>react</category>
      <category>redux</category>
      <category>beginners</category>
      <category>webdev</category>
    </item>
    <item>
      <title>What Nessie and a full-stack engineer have in common.....</title>
      <dc:creator>JAReichert</dc:creator>
      <pubDate>Mon, 21 Mar 2022 13:26:07 +0000</pubDate>
      <link>https://dev.to/jareichert/what-nessie-and-a-full-stack-engineer-have-in-common-4n3f</link>
      <guid>https://dev.to/jareichert/what-nessie-and-a-full-stack-engineer-have-in-common-4n3f</guid>
      <description>&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--NCRnAkcQ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/zyx85w1h4opbj07e3dlt.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--NCRnAkcQ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/zyx85w1h4opbj07e3dlt.png" alt="Image description" width="823" height="850"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;After two weeks of learning everything back-end, the moment of truth had arrived.  We were paired with a classmate and tasked with creating a full-stack project.  I thought full-stack engineers were like Bigfoot or the Loch Ness monster, some people claim to have seen 'em but it's still inconclusive if they exist or not.  Turns out, they are real and we were expected to do our best imitation of one.  &lt;/p&gt;

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

&lt;p&gt;We were tasked with creating a CRUD application with a user interface, API, and a database.  What was once a mother-approved replacement word for more salty language is now an acronym for the four basic functions that most applications perform.  CRUD stands for Create, Read, Update, and Delete. &lt;/p&gt;

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

&lt;p&gt;After a short brainstorming session, my teammate and I settled on creating a travel website.  We would employ JavaScript, CSS, and ES6 Template Engine to create the front-end, Node.js and Express to create the routes, the Yelp Fusion API for data, and finally Sequelize ORM, elephantSQL, and PostgreSQL for the databases.  &lt;/p&gt;

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

&lt;p&gt;Our first task was to see if there were any API's out there that could supply us with the necessary data.  Our biggest priorities were the following:  1) free, 2) free, 3) free and last but not least: free.  Luckily we came across the &lt;a href="https://fusion.yelp.com"&gt;Yelp Fusion API&lt;/a&gt;.  This ended up being a triple threat for us as it provided us data for hotels, restaurants, and excursions.  &lt;/p&gt;

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

&lt;p&gt;With our data secured, we then went to work creating the routes and databases.  This was easily the biggest undertaking in our young careers, ensuring multiple routes were able to perform the different aspects of CRUD on different databases.  &lt;/p&gt;

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

&lt;p&gt;Finally, we created a front-end user interface that allowed easy access to the data.  Getting the data to display properly was a challenge but with a lot of trial and error, we were able to present the information in a consistent format.  &lt;/p&gt;

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

&lt;p&gt;This was easily the most difficult project we have had to perform to date.  Once the patterns were established, it was easy to replicate for each different database or route.  However, creating that initial pattern was demanding.  Thankfully, we had our partner to lean on to help brainstorm, create, debug, and problem solve.  For such a small project, there were many moving parts.  It is easy to see why most industry-scale projects devote whole teams to just one aspect of a full-stack project.  &lt;/p&gt;

&lt;p&gt;BONUS:  In the above pictures, I have the names of four characters from four different movies.  First person to name all four movies correctly in the discussion section below wins a mystery prize!  (I realize that what I'm about to say is 100% coder heresy, and I risk getting kicked out of the community, but I'll say it anyways.......No googling the answers!)&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>webdev</category>
      <category>node</category>
      <category>database</category>
    </item>
    <item>
      <title>Unlike your lousy ex, JS actually keeps its promises</title>
      <dc:creator>JAReichert</dc:creator>
      <pubDate>Sat, 05 Mar 2022 00:54:23 +0000</pubDate>
      <link>https://dev.to/jareichert/unlike-your-lousy-ex-js-actually-keeps-its-promises-2739</link>
      <guid>https://dev.to/jareichert/unlike-your-lousy-ex-js-actually-keeps-its-promises-2739</guid>
      <description>&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--J7TxKLew--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8aalnzzcv0fqc2tz5r5i.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--J7TxKLew--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8aalnzzcv0fqc2tz5r5i.gif" alt="Image description" width="400" height="350"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Week 6 entry for my coding bootcamp diary: &lt;/p&gt;

&lt;h2&gt;
  
  
  WEEK 6 DAY1
&lt;/h2&gt;

&lt;p&gt;Ooooof.  Rough, rough morning.  By our lunch break, I felt like I had gone 12 rounds with Iron Mike Tyson.  I would like to give you a summary of what we did, but it’s all a blur.  Something with Pokemon cards, JSON, bulbasaurus, ternary operation, squirtles and Dom-zards.  I couldn’t even tell you which was a Pokemon and which one was a programming concept.  At the end of the morning?  We had about thirty lines of code.  How could something so small break my brain?&lt;/p&gt;

&lt;p&gt;The morning was so bad, that by the end of our lunch break, it took a lot of effort to jump back on the zoom call.  But, one thing I promised myself was I would answer the bell, every single time.  So, here I am, mentally beatdown but present.  Maybe my instructor could sense he had broken some spirits because the afternoon was spent reviewing website layout.  Never have I been so happy to see my old nemesis, CSS!  We were tasked with recreating a movie poster, using whatever CSS styling we deemed fit.  I started with flexbox, changed course and went with grid, changed course again to go with grid-template-area, before settling on Flexbox again.  Part of the challenge was we were only allowed to create one element in the HTML document.  Everything else had to be created in JavaScript.  I would be embarrassed to report how long it took me to make it, but here is the end result:&lt;/p&gt;

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

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

&lt;p&gt;Awwww man.  The deeper we get into this, the more acronyms we seem to uncover.  We started the day learning form validation and regex.  We then moved into API's, AJAX, promises, asynchronous operations, promise chaining, and e.preventDefaults.&lt;/p&gt;

&lt;p&gt;We ended the day about thirty minutes early.  Thankfully, I spoke up and asked my instructor, Joe,  to hang back for a minute.  I asked him to talk through the code that we had just written that afternoon.  Joe was very gracious with his time and we spent the next thirty minutes going over the code line by line.  By the end, I could tell you what every line was essentially doing.  Before that, I was at maybe 60%.  It was nice to end the day feeling like I had some firm footing.  The fog is slowly lifting.  &lt;/p&gt;

&lt;p&gt;&lt;a href="https://i.giphy.com/media/l4pT0NtPSMV3pw6Lm/giphy.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://i.giphy.com/media/l4pT0NtPSMV3pw6Lm/giphy.gif" alt="Alt text of image" width="720" height="540"&gt;&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;Most of the morning was spent in review of Monday and Tuesday's concepts.  The only new concept for the day was bootstrap.  After lunch, Joe had a call with a recruiter and he allowed us to listen in to give us exposure to interacting with a recruiter.  Everybody presented their movie cards from Monday.  Finally, we were assigned a  mini-project, where we have to create a weather app using a weather api.  &lt;/p&gt;

&lt;h2&gt;
  
  
  DAY 4 &amp;amp; 5:
&lt;/h2&gt;

&lt;p&gt;We met for a short time in the morning and then were released to work on our small weather app project individually.  Our instructor opened up a zoom chat room for us to all work together.  These have become my favorite time periods during the bootcamp.  The bootcamp is 100% remote.  It is all done over Zoom, you sign in at the beginning of the day and then sign out at the end of the day.  There is some idle chit chat here and there but for the most part it is all business.  So, there are not many opportunities for me to get to know my classmates socially.  However, when we are working together in a zoom chat room, it is an opportunity to get to know my classmates a little bit better; while still getting some work done!&lt;/p&gt;

&lt;p&gt;My biggest issue continues to be styling and laying things out with CSS.  All too often, CSS dictates to me what the end product looks like as opposed to me telling CSS what it needs to do to fulfill my vision.  I am trying to continue to focus on the bare bones of every project first and foremost.  For my weather app, I really wanted to challenge myself to make something simple and clean.  So, I made an I-Phone-style-lock-screen-looking app with an input text field to retrieve the weather. Here it is below: &lt;/p&gt;

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

&lt;p&gt;Not much to look at but I was very happy with the styling and my ability to manipulate the CSS. Here is some of the code for the date and time using a built-in JS date function:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;const d = new Date();

let hour = d.getHours() - 12;
let min = d.getMinutes();
let time = hour + ":" + min;

let date = d.toString().slice(0, 11);
bottomContainer.append(date, time);

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;While this took a long time and I was happy with the results, I felt like I could push myself a little bit more.  However, I didn’t want to junk up the minimalist look of my creation. So I decided to make a second weather application.  The second one provides the temperature highs/lows and weather icons depending upon the forecast for the next three days.   I was very pleased with the end result given my time constraints.  Here is a picture of the main interface:&lt;/p&gt;

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

&lt;p&gt;All of my classmates did a fantastic job with their projects.  I always enjoy seeing what kind of cool projects they create.  One of my classmate made a youtube video walking through her project.  It is egg-cellent! &lt;br&gt;
Check it out: &lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/3X9yLwFWr_w"&gt;
&lt;/iframe&gt;
&lt;/p&gt;
&lt;h2&gt;
  
  
  NON TECHNICAL KNOWLEDGE THIS WEEK
&lt;/h2&gt;

&lt;p&gt;My instructor obviously drops lots of technical knowledge over the course of a week, but he will also throw out some nuggest of wisdom as well.  This particular one stood out to me:  Programming is all about finding the patterns.    &lt;/p&gt;

&lt;p&gt;Our guest speaker this week provided some good advice regarding time management.  He suggested when you reach a roadblock with your code to estimate how long you think it might take you to solve your problem.  Then set a timer for that amount of time.  If the timer goes off and you are no closer to solving your problem, then you should reach out for help.  This is fantastic advice. There have been many times when I have lost track of time trying to debug a piece of code without realizing how much time had passed.  I will be making a habit of using my timer to block out chunks of time moving forward.  &lt;/p&gt;

&lt;p&gt;If you are interested, please read my past articles:&lt;/p&gt;


&lt;div class="ltag__link"&gt;
  &lt;a href="/jareichert" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__pic"&gt;
      &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ZBGYpwIb--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://res.cloudinary.com/practicaldev/image/fetch/s--X005OroU--/c_fill%2Cf_auto%2Cfl_progressive%2Ch_150%2Cq_auto%2Cw_150/https://dev-to-uploads.s3.amazonaws.com/uploads/user/profile_image/805055/00f92d9a-4102-49cd-85cd-54694f8396b6.png" alt="jareichert"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="/jareichert/the-fast-and-the-javascript-3oed" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;The Fast and the JavaScript&lt;/h2&gt;
      &lt;h3&gt;JAReichert ・ Feb 28 ・ 3 min read&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#javascript&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#beginners&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#webdev&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#programming&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;




&lt;div class="ltag__link"&gt;
  &lt;a href="/jareichert" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__pic"&gt;
      &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ZBGYpwIb--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://res.cloudinary.com/practicaldev/image/fetch/s--X005OroU--/c_fill%2Cf_auto%2Cfl_progressive%2Ch_150%2Cq_auto%2Cw_150/https://dev-to-uploads.s3.amazonaws.com/uploads/user/profile_image/805055/00f92d9a-4102-49cd-85cd-54694f8396b6.png" alt="jareichert"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="/jareichert/hanging-on-for-dear-life-352" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;Hanging on for dear life!&lt;/h2&gt;
      &lt;h3&gt;JAReichert ・ Feb 19 ・ 4 min read&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#javascript&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#beginners&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#css&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#html&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;



&lt;div class="ltag__link"&gt;
  &lt;a href="/jareichert" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__pic"&gt;
      &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ZBGYpwIb--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://res.cloudinary.com/practicaldev/image/fetch/s--X005OroU--/c_fill%2Cf_auto%2Cfl_progressive%2Ch_150%2Cq_auto%2Cw_150/https://dev-to-uploads.s3.amazonaws.com/uploads/user/profile_image/805055/00f92d9a-4102-49cd-85cd-54694f8396b6.png" alt="jareichert"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="/jareichert/i-pity-the-fool-who-doesnt-use-python-27if" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;I pity the fool who doesn't use Python!&lt;/h2&gt;
      &lt;h3&gt;JAReichert ・ Jan 29 ・ 5 min read&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#beginners&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#python&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#webdev&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;



&lt;div class="ltag__link"&gt;
  &lt;a href="/jareichert" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__pic"&gt;
      &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ZBGYpwIb--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://res.cloudinary.com/practicaldev/image/fetch/s--X005OroU--/c_fill%2Cf_auto%2Cfl_progressive%2Ch_150%2Cq_auto%2Cw_150/https://dev-to-uploads.s3.amazonaws.com/uploads/user/profile_image/805055/00f92d9a-4102-49cd-85cd-54694f8396b6.png" alt="jareichert"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="/jareichert/diary-of-a-coding-bootcamp-second-week-survivor-53h2" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;Diary of a Coding Bootcamp Second Week Survivor&lt;/h2&gt;
      &lt;h3&gt;JAReichert ・ Feb 17 ・ 3 min read&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#webdev&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#beginners&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#programming&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#python&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;



&lt;div class="ltag__link"&gt;
  &lt;a href="/jareichert" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__pic"&gt;
      &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ZBGYpwIb--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://res.cloudinary.com/practicaldev/image/fetch/s--X005OroU--/c_fill%2Cf_auto%2Cfl_progressive%2Ch_150%2Cq_auto%2Cw_150/https://dev-to-uploads.s3.amazonaws.com/uploads/user/profile_image/805055/00f92d9a-4102-49cd-85cd-54694f8396b6.png" alt="jareichert"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="/jareichert/first-week-of-coding-bootcamp-down-2dj7" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;First week of coding bootcamp down!&lt;/h2&gt;
      &lt;h3&gt;JAReichert ・ Feb 16 ・ 2 min read&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#webdev&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#beginners&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#programming&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#python&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;



&lt;div class="ltag__link"&gt;
  &lt;a href="/jareichert" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__pic"&gt;
      &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ZBGYpwIb--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://res.cloudinary.com/practicaldev/image/fetch/s--X005OroU--/c_fill%2Cf_auto%2Cfl_progressive%2Ch_150%2Cq_auto%2Cw_150/https://dev-to-uploads.s3.amazonaws.com/uploads/user/profile_image/805055/00f92d9a-4102-49cd-85cd-54694f8396b6.png" alt="jareichert"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="/jareichert/a-new-adventure-481d" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;A New Adventure&lt;/h2&gt;
      &lt;h3&gt;JAReichert ・ Feb 11 ・ 2 min read&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#webdev&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#beginners&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#programming&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#career&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;


</description>
      <category>webdev</category>
      <category>beginners</category>
      <category>programming</category>
      <category>javascript</category>
    </item>
    <item>
      <title>The Fast and the JavaScript</title>
      <dc:creator>JAReichert</dc:creator>
      <pubDate>Mon, 28 Feb 2022 03:40:55 +0000</pubDate>
      <link>https://dev.to/jareichert/the-fast-and-the-javascript-3oed</link>
      <guid>https://dev.to/jareichert/the-fast-and-the-javascript-3oed</guid>
      <description>&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--KqK0ofvk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0h4hc4g8v8n64pjw1ood.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--KqK0ofvk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0h4hc4g8v8n64pjw1ood.jpeg" alt="Image description" width="600" height="398"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Week 5 entry for my coding bootcamp diary:&lt;/p&gt;

&lt;h2&gt;
  
  
  Week 5, Day 1 &amp;amp; 2
&lt;/h2&gt;

&lt;p&gt;JavaScript galore!  We bid adieu to CSS and move onto my old frenemy, JavaScript.  JavaScript is the langauge I had spent the most amount of time learning prior to attending a coding bootcamp.  When I was still trying to decide on which bootcamp to attend, one of my biggest hang-ups with DigitalCrafts was the fact that they were going to spend the first two weeks on Python.  I had nothing against the language per se, it just felt silly to take 13% of the short amount of  time we had for bootcamp learning a language that we were not going to use moving forward.  However, I couldn't have been more wrong.  Through some kind of bootcamp magic, the time we spent in Python helped solidify a lot of concepts in JavaScript for me.  I purposely didn’t review much heading into the week, I wanted to see how much of JavaScript I had retained.  Turns out, I retained more than I thought I would.  I think the time I spent learning Python helped.  We learned some general JavaScript concepts in the mornings and then practiced algorithms using JavaScript in the afternoons.  It was nice to have two days in a row of feeling like I had my act together!&lt;/p&gt;

&lt;h2&gt;
  
  
  Day 3
&lt;/h2&gt;

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

&lt;p&gt;Much to my chagrin, it turns out “The Dom” has nothing to do with "The Fast and the Furious" after all (“I live my life a quarter of a line of code at a time”).  No, the DOM is the Document Object Model, “a programming interface for web documents that allows the document, style and content to be changed”.  I understood the overall concept.  I understood very basic exercises related to the DOM.  But anything beyond the basics was difficult.  We ended the day with all of us trying to make a functioning calculator.  I probably contributed about 5% of the code.  Not feeling great, but trusting the process.  At the beginning of all of this, my instructor said that learning how to code isn’t like a light switch.  It’s not like walking into a room with the lights off, you flip a switch, the light comes on and suddenly you understand programming.  He described it as being more like a fog that slowly dissipates.  Little by little, piece by piece, programming becomes clearer.  While I may not have The Dom down 100%, the fog is slowly lifting.  &lt;/p&gt;

&lt;h2&gt;
  
  
  Day 4 &amp;amp; 5
&lt;/h2&gt;

&lt;p&gt;Thankfully, we were able to get more practice with the DOM.  Our instructor drilled into our heads you select, modify (or add info), and then append to the container that you selected in step one.  Every exercise today focused around these steps.  Much of the exercises were a blur and I required a lot of extra work on my own time to solidify the concepts.  However, by the end of the weekend, I was able to complete a To Do List that had eluded me earlier in the week.   &lt;/p&gt;

&lt;h2&gt;
  
  
  SMALL TAKEAWAYS FROM THIS WEEK:
&lt;/h2&gt;

&lt;p&gt;One way you can modify your HTML from the DOM is by using innerHTML.  However, this should be avoided for several reasons, the biggest one being the potential security risk it creates for your code.  In addition, innerHTML reparses the entire tag and event listeners can be inadvertently removed as well.  &lt;/p&gt;

&lt;p&gt;One of my classmates had shared some cool VS Code shortcuts for writing code.  Which got me curious what other kind of shortcuts were out there.  I found this great Emmet cheat sheet.  You can find it here:&lt;br&gt;
&lt;a href="https://dev.tourl"&gt;&lt;/a&gt;&lt;a href="https://docs.emmet.io/cheatsheet-a5.pdf"&gt;https://docs.emmet.io/cheatsheet-a5.pdf&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;In honor of the Red Hot Chili Peppers reuniting with John Frusciante and the release of their upcoming 12th album, I listened to these two a lot this week: &lt;br&gt;
&lt;iframe src="https://open.spotify.com/embed/track/3a94TbZOxhkI9xuNwYL53b" width="100%" height="80px"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;&lt;iframe src="https://open.spotify.com/embed/album/7xl50xr9NDkd3i2kBbzsNZ" width="100%" height="380px"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;What do you consider to be the all-time greatest RHCP album?????&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>beginners</category>
      <category>webdev</category>
      <category>programming</category>
    </item>
    <item>
      <title>Hanging on for dear life!</title>
      <dc:creator>JAReichert</dc:creator>
      <pubDate>Sat, 19 Feb 2022 00:51:15 +0000</pubDate>
      <link>https://dev.to/jareichert/hanging-on-for-dear-life-352</link>
      <guid>https://dev.to/jareichert/hanging-on-for-dear-life-352</guid>
      <description>&lt;p&gt;Week 4 entry for my coding bootcamp diary:&lt;/p&gt;

&lt;p&gt;Fresh off project week and I’m feeling good.  While my  project was far from perfect, I am very proud of what I was able to accomplish in a short amount of time.  It feels good to come into the week on a big “win”.  If you would like to read about it, follow this link here: &lt;a href="https://dev.to/jareichert/i-pity-the-fool-who-doesnt-use-python-27if"&gt;https://dev.to/jareichert/i-pity-the-fool-who-doesnt-use-python-27if&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;After our project presentations last Friday, our instructor laid out what was going to be happening the next few weeks.  This upcoming week, we will be tackling HTML.  The following week we will be covering CSS. Then JavaScript for the third week.  After that, another solo project week, with the goal to create  a full fledged working web page, using JS and API.  We are getting into more and more acronyms so things are starting to get serious around here!  This past weekend I spent a lot of times going over HTML and JavaScript so feel as prepared as I can be coming into the week.  &lt;/p&gt;

&lt;h2&gt;
  
  
  DAY 1
&lt;/h2&gt;

&lt;p&gt;All morning we learned the basics of HTML.  Tags, elements, lists, links, headings, paragraphs, div’s, we knocked out all of the basics right off of the bat.  Surprisingly enough, my instructor revealed that he only uses the h1, div, and p tags when he codes in html.  It would appear that all of that time spent studying HTML this past weekend might have been an unproductive use of my time.  In the afternoon, we had to pick a website from the nineties and recreate it using HTML only.  I chose a random Yahoo website from……Check it out:&lt;/p&gt;

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

&lt;h2&gt;
  
  
  DAY 2
&lt;/h2&gt;

&lt;p&gt;Hmmmmmm…..it appears that the beforementioned timeline has been moved up a bit.  Today we went over CSS.  We learned the structure of a basic CSS document, different ways to link the CSS document to our HTML and different ways we can style our website using CSS.  Pretty easy day conceptually for me overall.  However, with the accelerated timeline, a feeling of dread is starting to come over me.  Like a bad storm on the horizon…..&lt;/p&gt;

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

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ZQRZuycx--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/d5865sns5glhg886mrf7.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ZQRZuycx--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/d5865sns5glhg886mrf7.gif" alt="Image description" width="498" height="280"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;And the storm has arrived!  Holy smokes, my head is spinning.  We went over what feels like two fairly large topics today:  CSS Grid and CSS Flexbox.  My brain feels like one of those snow globes that has been shaken up sending all the snow spinning violently inside of the globe.  &lt;/p&gt;

&lt;p&gt;By the end of the day I couldn’t tell you what was a grid term, what was a flexbox term, or what either one of them did.&lt;/p&gt;

&lt;h2&gt;
  
  
  Day 4 &amp;amp; 5:
&lt;/h2&gt;

&lt;p&gt;The last two days of the week were a blur of tic-tac-toe boards, pixel artwork projects, blogpost layouts, checkerboard layout, and website layouts.  I spent a lot of my free time watching youtube videos from the following people&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/T-slCsOrLcc"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/hs3piaN4b5I"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;These two fine folks really saved my bacon as far as helping me get a little better grasp of CSS styling.  If you need some extra help with CSS like I did, you should definitely check them out!&lt;/p&gt;

&lt;p&gt;This week is definitely my first week of feeling a little bit overwhelmed.  It’s funny, but CSS was the absolute last language I was worried about coming into this bootcamp and it’s the first one to knock me upside the head.   Which has me worried about the other languages which I perceive to be more difficult.  But, who knows.  All I can do is keep moving forward.  &lt;/p&gt;

&lt;h2&gt;
  
  
  NONTECHNICAL
&lt;/h2&gt;

&lt;p&gt;One huge takeaway from my project last week is I need to laser focus on the absolute requirements of a project and then move out from there.  During the project, I started day-dreaming about and working on the “extras” for the project before I had the bare bones in place.  It resulted in a couple of late nights of scrambling to make sure I had all of the checkboxes checked.  In the future, I need to make sure I have the bare necessities taken care of first and foremost before worrying about fancying it up.  &lt;/p&gt;

&lt;p&gt;Obviously, my instructor spends a lot of time going over the technical side of this profession.  But, one extra thing he does that I really enjoy is his willingness to speak frankly about the industry as a whole.  He speaks very plainly about searching for a job, the job market, working with recruiters, what it’s like working for a startup, what it's like working for a larger corporation, money, salary structure, work/life balance…..nothing is off limits.  During one of these side lectures, he said something in particular that really stood out.  He said:  “Make them tell you no”.  In this instance, he was speaking about applying for a job.  Specifically, he was saying, just because YOU don’t think you have enough experience or feel like an imposter, don’t let that stop you from applying for the job you want.  Make them make the decision on whether you are appropriate for the job or not.  Make them tell you no.  While this is great advice for the job search, I think it is even better advice to apply to life.  &lt;/p&gt;

&lt;p&gt;What I've been listening to this week:&lt;/p&gt;

&lt;p&gt;&lt;iframe src="https://open.spotify.com/embed/playlist/1oAMif715hHna6xc9m0qz5" width="100%" height="380px"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;&lt;iframe src="https://open.spotify.com/embed/playlist/0Jli3ghCLAT2dQgzRKpXBi" width="100%" height="380px"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;What have you been listening to this past week?&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>beginners</category>
      <category>css</category>
      <category>html</category>
    </item>
    <item>
      <title>Diary of a Coding Bootcamp Second Week Survivor</title>
      <dc:creator>JAReichert</dc:creator>
      <pubDate>Thu, 17 Feb 2022 02:57:15 +0000</pubDate>
      <link>https://dev.to/jareichert/diary-of-a-coding-bootcamp-second-week-survivor-53h2</link>
      <guid>https://dev.to/jareichert/diary-of-a-coding-bootcamp-second-week-survivor-53h2</guid>
      <description>&lt;h2&gt;
  
  
  Week 2 is in the books.....
&lt;/h2&gt;

&lt;p&gt;.....and I’m feeling surprisingly good.  No major roadblocks as of yet.  I know I will eventually hit a wall several times over the next 15 weeks, so I am soaking up the “wins” as much as I can right now.   All week long we did a deep-dive into Python.  The best part of the week was the pair programming we’ve been doing daily.  I’ve been studying coding by myself for so long, it’s refreshing to have somebody to bounce ideas off of, learn from, and discuss coding.  It’s nice to feel a part of a team again.  &lt;/p&gt;

&lt;h2&gt;
  
  
  What we've been up to:
&lt;/h2&gt;

&lt;p&gt;So far, we’ve developed a lot of mini-applications.  All of these are terminal based.  So, while they aren’t much to look at, they are requiring us to be able to think logically step by step. We have made a phonebook, a bank account interface, a small car-racing game, and a grocery shopping list interface.  The grocery shopping list interface was easily the most difficult.  It was a whole mess of classes, while loops, for loops, and if statements.  Here's a small portion:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;class ShoppingList:
    def __init__(self,title,address,groceryItems=[]):
        self.title = title
        self.address = address
        self.groceryItems = groceryItems
    def displayGroceryStore(self):
        groceryStore = [self.title, self.address]         
        for attribute in groceryStore:
            print(attribute,end=" ")
    def addItemToList(self,groceryItemName):
        self.groceryItems.append(groceryItemName)
    def displayCompleteGroceryList(self): 
        for  store in self.groceryItems:
            print(self.title)
            print(f"{store.title} : price: {store.price} quantity: {store.quantity}")

while True:
    groceryStoreName = input("What is the name of the grocery store you want to add? ")
    groceryStoreAddress = input(f"What is the address of {groceryStoreName}? ")
    groceryStoreName = ShoppingList(groceryStoreName,groceryStoreAddress)
    listOfGroceryStores.append(groceryStoreName)
    print("Here is your list of grocery stores:")
    for eachGroceryStore in listOfGroceryStores:
        eachGroceryStore.displayGroceryStore()
    userContinue = input("\n Would you like to add another grocery store to your list? If yes, press enter. If no, press 'N'. ")
    if userContinue == "N":
        break
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Luckily, I had the talented &lt;a href="https://github.com/ciaracloud/digitalCrafts"&gt;Ciara Cloud&lt;/a&gt; as a teammate to help pull me through to the end.   She has a great eye for detail and will not stop until the job is done right.&lt;/p&gt;

&lt;h2&gt;
  
  
  On deck:
&lt;/h2&gt;

&lt;p&gt;Next week is project week.  For project week, we will be developing a terminal and text based role-playing game.  We will have to rely on what Python we have learned so far and any other knowledge we can gain from the google machine.  We won’t have normal lectures, but we will be required to check in with our instructor first thing in the morning and last thing that evening.  Other than that, we are left to our own devices.  Creating something from scratch completely on my own will be a big challenge for me.  The only projects I have completed on my own were code-alongs.  &lt;/p&gt;

&lt;h2&gt;
  
  
  TECHNICAL KNOWLEDGE:
&lt;/h2&gt;

&lt;p&gt;Python looping, classes, functions, and if statements.  &lt;/p&gt;

&lt;h2&gt;
  
  
  NONTECHNICAL INSIGHT:
&lt;/h2&gt;

&lt;p&gt;I realize that we are just scratching the surface of Python, but it seems fairly straight forward compared to JavaScript.  When I was debating between different coding bootcamps, one of the “cons” for DigitalCrafts was the fact that we were spending the first few weeks learning Python, only to never use it again for the rest of the course.  However, now that I am using it, I am glad they used this approach.  It seems like it is a little bit easier to pick up the basics of computer programming learning it in Python.  &lt;/p&gt;

&lt;p&gt;Software developers are an amazingly supportive group of people.  I have come across so many successful people that have encouraged me, given me advice, and shared some of their own stories and struggles.  &lt;/p&gt;

&lt;h2&gt;
  
  
  WHAT I AM LISTENING TO:
&lt;/h2&gt;

&lt;p&gt;This week it was a lot of these two albums:&lt;/p&gt;

&lt;p&gt;&lt;iframe src="https://open.spotify.com/embed/album/3p6XK8PERkujtV6MRu7QH3" width="100%" height="380px"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;&lt;iframe src="https://open.spotify.com/embed/album/5xOjgloikzuQ1mTs2mqedk" width="100%" height="380px"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;What do you listen to while coding?&lt;/p&gt;

&lt;p&gt;&lt;a href="https://dev.to/jareichert/first-week-of-coding-bootcamp-down-2dj7"&gt;Week #1&lt;/a&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>beginners</category>
      <category>programming</category>
      <category>python</category>
    </item>
    <item>
      <title>First week of coding bootcamp down!</title>
      <dc:creator>JAReichert</dc:creator>
      <pubDate>Wed, 16 Feb 2022 23:07:23 +0000</pubDate>
      <link>https://dev.to/jareichert/first-week-of-coding-bootcamp-down-2dj7</link>
      <guid>https://dev.to/jareichert/first-week-of-coding-bootcamp-down-2dj7</guid>
      <description>&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--B3biysB4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/jyi2vasbxvzvhshacs5u.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--B3biysB4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/jyi2vasbxvzvhshacs5u.jpg" alt="Image description" width="768" height="1024"&gt;&lt;/a&gt;Week number one is in the books!  I haven’t blown up my computer (yet), quit, or fallen hopelessly behind (yet).  I’d say that is a win!&lt;/p&gt;

&lt;h2&gt;
  
  
  WEEK 1 SUMMARY
&lt;/h2&gt;

&lt;p&gt;The first day of school!  My buddy's kid (she is seven) advised me to &lt;em&gt;try&lt;/em&gt; to be nice and stay in my seat on the first day.  I thought it was pretty good advice, so I tried to follow it to the best of my abilities.  Thanks for the great advice, Sophie!&lt;/p&gt;

&lt;p&gt;Day numero uno was filled with your typical onboarding type procedures.  We met our support/administration staff, our instructor, and our fellow classmates.  The rest of the day was spent setting our computer up to make sure it was ready to go for the rest of the cohort.  &lt;/p&gt;

&lt;p&gt;The second day was spent learning terminal commands and generally getting more comfortable working from the terminal. In addition, we were introduced to the ins-and-outs of Visual Studio Code.   &lt;/p&gt;

&lt;p&gt;The third day was spent learning about and setting up our github accounts.  Github sounds like a very useful tool and I’m sure I will think nothing of using it soon enough, but for right now, it is very intimidating.  It’s one thing to mess up my own computer, but quite another to mess up somebody else’s code or project!  &lt;/p&gt;

&lt;p&gt;The fourth day was spent learning the basics of computer programming through Python.  There was coursework we were recommended to complete prior to the start of the cohort.  I did complete it and I am thankful I did as most of the information has been review.  &lt;/p&gt;

&lt;p&gt;Friday morning was spent working on various algorithms.  I was able to work through an algorithm that has always alluded me (the Fibonacci sequence), so it was a major win for me personally.  While I was unable to solve all of the algorithms, I was able to come close and understand the solutions.  Finally, that Friday afternoon, we had a guest speaker.  The guest speaker was a DigitalCrafts alumni.  She spoke about her own bootcamp experience and her transition into a software engineering career.  She was a very engaging and informative speaker.  &lt;/p&gt;

&lt;p&gt;Overall, it was a pretty easy week.  However, I get the feeling this is the calm before the storm.&lt;/p&gt;

&lt;h2&gt;
  
  
  TECHNICAL KNOWLEDGE
&lt;/h2&gt;

&lt;p&gt;-Terminal commands.  &lt;/p&gt;

&lt;p&gt;-Github desktop, git and github commands.&lt;/p&gt;

&lt;p&gt;-The basics of Python:  variables, types of data, different forms of data, and different ways to manipulate said data.&lt;/p&gt;

&lt;p&gt;-Visual Studio Code commands and shortcuts.  &lt;/p&gt;

&lt;h2&gt;
  
  
  NON-TECHNICAL INSIGHT
&lt;/h2&gt;

&lt;p&gt;I am quickly discovering I am not nearly as fast nor as accurate of a typist as I had previously thought.  Apparently, autocorrect has made me weak and sloppy though the years.  Plus, the special symbols and numbers require me to employ the old hunt and peck method.  Not good!  I’m going to have to make sure I get more fluent with my typing skills these next few days.  &lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.digitalcrafts.com/"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>beginners</category>
      <category>programming</category>
      <category>python</category>
    </item>
    <item>
      <title>A New Adventure</title>
      <dc:creator>JAReichert</dc:creator>
      <pubDate>Fri, 11 Feb 2022 21:52:59 +0000</pubDate>
      <link>https://dev.to/jareichert/a-new-adventure-481d</link>
      <guid>https://dev.to/jareichert/a-new-adventure-481d</guid>
      <description>&lt;h2&gt;
  
  
  The Beginning:
&lt;/h2&gt;

&lt;p&gt;I am transitioning from a nineteen year career in speech-language pathology to software engineering.  It was not an easy decision to leave behind a fulfilling career but I love to learn and take on big challenges.  After a lot of research, interviews, and applications, I eventually decided to attend DigitalCraft's full-time web development program.  &lt;/p&gt;

&lt;h2&gt;
  
  
  How I Got Here:
&lt;/h2&gt;

&lt;p&gt;This decision did not come easily and did not happen overnight.  Twenty years ago, I ran a junky html-only website as a way for my friends and I to continue with a fantasy football contest that we started in college.  This was back in the computer stone age when you had to figure out points by hand and you couldn’t host your league on a website like CBS or Yahoo.  I loved the weekly challenge of getting the website updated and ready to publish at the start of each week.  In addition, every week I would try to add an extra feature to improve the site’s look and functionality.  Eventually, life happened and we all got too busy to continue with the fantasy football league.  However, I never forgot how much I enjoyed creating and updating the website.&lt;/p&gt;

&lt;p&gt;Fast forward to COVID and I found myself with extra time at home and kiddos old enough to be learning the basics of coding in school.  I started thinking about how I wanted to spend the next chapters of my work life.  I recalled my first experience in website development and decided to take another look into programming.  I started by taking the CompTIA IT Fundamentals course to get a general feel for computers overall.  I then took a few Udemy courses on Python, HTML, CSS and JavaScript.  I fell in love with the problem solving and challenge of coding.  So much so that I decided to jumpstart my learning, take the plunge, and attend a bootcamp.  &lt;/p&gt;

&lt;h2&gt;
  
  
  The Future:
&lt;/h2&gt;

&lt;p&gt;So, starting on January 10th and until May 4th, I will be trying to learn all things coding.  I looked into different coding bootcamps and I think I landed in the perfect space for me.  Our class is very small with only six members.  My instructor is young, energetic, and has several years experience working as a software engineer.  The overall community of DigitalCrafts is supportive, positive, and passionate about learning.  All of my classmates have been helpful and appear to be very motivated to make sure we all get through this together.  I am eager to get started on my new career.  &lt;/p&gt;

&lt;h2&gt;
  
  
  What About You?
&lt;/h2&gt;

&lt;p&gt;I would love to hear about &lt;em&gt;your&lt;/em&gt; journey.  What inspired you to get into software development?  Are you self taught, attended college, or did you go to a coding bootcamp?  What kind of projects do you enjoy creating?  &lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.digitalcrafts.com/"&gt;https://www.digitalcrafts.com/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>beginners</category>
      <category>programming</category>
      <category>career</category>
    </item>
    <item>
      <title>I pity the fool who doesn't use Python!</title>
      <dc:creator>JAReichert</dc:creator>
      <pubDate>Sat, 29 Jan 2022 01:13:47 +0000</pubDate>
      <link>https://dev.to/jareichert/i-pity-the-fool-who-doesnt-use-python-27if</link>
      <guid>https://dev.to/jareichert/i-pity-the-fool-who-doesnt-use-python-27if</guid>
      <description>&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--mLD38aUq--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/x62xy22vmfjrrk6a6la6.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--mLD38aUq--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/x62xy22vmfjrrk6a6la6.jpeg" alt="Image description" width="880" height="1384"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I am currently a student in the DigitalCrafts full-time Web Development course.  We just wrapped up week number three and our very first solo project.  The assignment was to create a terminal based game using Python.  &lt;/p&gt;

&lt;p&gt;My daughter and I are currently watching the first season of the A-Team together.  If you are unfamiliar with the show, it is an old network television show from the 1980’s.  The show was about four men who were members of an army unit during the Vietnam War.  They were sent to prison for a crime they didn’t commit.  After escaping prison, they survived as soldiers of fortune in the Los Angeles underground.  Every episode revolved around The A-Team helping some unfortunate soul who was being bullied by some prototypical television bad guy and his gang of goons.  Despite the otherworldly amount of car crashes and guns fired, no one ever appeared  to suffer anything worse than a black eye and all problems were neatly solved within the hour episode.  If you are looking for high-cultured entertainment, this ain’t it.  &lt;/p&gt;

&lt;h2&gt;
  
  
  A-Team the Game
&lt;/h2&gt;

&lt;p&gt;I used the show as inspiration for my Python project.  The goal of the game is to help the Penhall family get their last crop of watermelons to the L.A. Farmers Market.  Stopping them is the evil rancher Chuck Easterland.  Chuck wants to force the Penhall family into foreclosure so he can purchase their farm for pennies on the dollar and expand his ranching empire.  &lt;/p&gt;

&lt;p&gt;In my &lt;a&gt;game&lt;/a&gt;, you can choose to be one of two characters from The A-Team, either John “Hannibal” Smith or B.A. Baracus.  I created classes to give each character different strengths and weaknesses.  For instance, B.A. Baracus has higher “strength” capabilities versus Hannibal who has more “brains”.  The game is entirely text based.  You help accomplish the game goals by fighting, retreating, and tricking Chuck Easterland and his merry band of buffoons.  Besides classes, I also used while-loops, functions, and if/elif/else statements.  I also imported the time, random and PIL.Image libraries to increase the functionality of my program.  Finally, I was also able to add a little bit of ascii art to the project at the eleventh hour.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;def fightToughBadGuyWeakGoodGuy():
        hannibal.health = 10
        toughGuy.health = 10
        toughGuy.health = toughGuy.health - hannibal.power    
        print("\nYou hit him hard, but unfortunately not hard enough, Bubba is still on his feet and he appears to be slightly irritated with your ruse\n")
        time.sleep(2)
        print(f"&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;Your health is now {hannibal.health}&amp;gt;&amp;gt;&amp;gt;&amp;lt;&amp;lt;&amp;lt;Bubba's health is now {toughGuy.health}&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;")

        x = (input("""\nWhat should you do?  Should you:\n
        A = make like a shepherd and get the flock out of there\n
        --or--\n
        B = give the big lug another slug\n
        """))
        if x == "A":
            print("\nWhile lunkhead is still trying to figure out which way is north and which way is south, you decide to cut your losses and beat it to the chopper.  After all, you've always been more of a lover than a fighter.  You sprint to the helicopter and jump into the cockpit.  Adhering to television show rules, the keys to the copter are in the visor.  You fire up the huey and make your getaway while Bubba shakes his fist at you in vain.  Smell ya later!\n")
            time.sleep(5)
            sceneTwo()
        elif x == "B":
            print("""
            you take another crack at the big burly behemoth.\n  
            WHAP!
            """)
            randomHealthBonus = random.randint(1, 10)
            toughGuyHealth2 = toughGuy.health + randomHealthBonus
            toughGuyHealth3 = toughGuyHealth2 - hannibal.power
            if toughGuyHealth3 &amp;gt; 0:
                print(f"This guy appears to be getting stronger as the fight continues!  He's a savage! &amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;Your health is now {hannibal.health}&amp;gt;&amp;gt;&amp;gt;&amp;lt;&amp;lt;&amp;lt;Bubba's health is now {toughGuyHealth3}&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;""\n")
                print("You gave it your best shot and he's still on his feet!  This guy can't take a hint!  Should you:\n")
                y = (input("""
                A) give him the Kung Fu Grip Death Punch\n
                --or--\n
                B) make like a banana and split!
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;I also imported the time, random and PIL.Image libraries to increase the functionality of my program.  Finally, I was also able to add a little bit of ascii art to the project at the eleventh hour.&lt;/p&gt;

&lt;h2&gt;
  
  
  Challenges I Encountered
&lt;/h2&gt;

&lt;p&gt;One of the challenges for this project was the size.  This is the most amount of code I have written in a program to date.  The second biggest challenge was maintaining proper indentation.  The nesting of if-statements inside of while-loops inside of functions made keeping track of indentation tricky.  Luckily, a classmate of mine told me about a VS Code Extension that helps with this issue.  &lt;/p&gt;

&lt;h2&gt;
  
  
  Areas For Improvement
&lt;/h2&gt;

&lt;p&gt;There is plenty of room for improvement.  My original plan was to allow the player to choose to be any of the four members of The A-Team.  In addition, my original planning session had three main acts or scenes.  In the interest of fulfilling my deadline, I scaled back the scope of my project to only include the two main characters and two scenes.  As I continue working on this project, I will develop the other two characters that make up the team and add the third “act”.  In addition, after the project was over, I learned that you can link python files together.  This will be another improvement to incorporate as I continue to improve the project.  &lt;/p&gt;

&lt;p&gt;Overall, I think our instructor picked a great project for us to complete.  We had only studied Python for a week, so our toolbox was limited.  However, we had enough of a foundation to create a functional game.  The project also provided an opportunity for additional independent learning to discover more efficient ways to work around problems and find alternative solutions.   &lt;/p&gt;

&lt;h2&gt;
  
  
  References and Resources
&lt;/h2&gt;

&lt;p&gt;If you would like play the game, you can check it out on my github account:&lt;br&gt;
&lt;a href="https://github.com/JAReichert/digitalCrafts/tree/master/aTeamPythonGame"&gt;https://github.com/JAReichert/digitalCrafts/tree/master/aTeamPythonGame&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Also, I’d be remiss if I didn’t give a thank you  to my classmate, Rayleigh Rozier, who pointed me in the direction of the VS Code Extension Identicator.  You can find Rayleigh’s awesome college football game here: &lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/rayleighrozier/digitalcrafts/tree/main/dawgsOnTop"&gt;https://github.com/rayleighrozier/digitalcrafts/tree/main/dawgsOnTop&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Here is a link to digitalCrafts:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.digitalcrafts.com"&gt;https://www.digitalcrafts.com&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Finally, check out this youtube video from Caelan at Kite.  It is a tutorial on how to turn any image into ASCII art.  It was a big help in jazzing up my primarily text based game with some artwork. &lt;br&gt;
&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/v_raWlX7tZY"&gt;
&lt;/iframe&gt;
 &lt;/p&gt;

</description>
      <category>beginners</category>
      <category>python</category>
      <category>webdev</category>
    </item>
  </channel>
</rss>
