<?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: Mike Landers</title>
    <description>The latest articles on DEV Community by Mike Landers (@mlanders).</description>
    <link>https://dev.to/mlanders</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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F148320%2F5318fd3c-3f22-4042-b857-e53a60f5183e.jpeg</url>
      <title>DEV Community: Mike Landers</title>
      <link>https://dev.to/mlanders</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/mlanders"/>
    <language>en</language>
    <item>
      <title>Gapful Numbers</title>
      <dc:creator>Mike Landers</dc:creator>
      <pubDate>Wed, 04 Sep 2019 16:00:15 +0000</pubDate>
      <link>https://dev.to/mlanders/gapful-numbers-2i4d</link>
      <guid>https://dev.to/mlanders/gapful-numbers-2i4d</guid>
      <description>&lt;p&gt;Simple code challenge in Python&lt;/p&gt;


&lt;div class="ltag__replit"&gt;
  &lt;iframe height="550px" src="https://repl.it/@mlanders/Gapful-Code-Challenge?lite=true"&gt;&lt;/iframe&gt;
&lt;/div&gt;


</description>
      <category>replit</category>
      <category>python</category>
    </item>
    <item>
      <title>First Community Project</title>
      <dc:creator>Mike Landers</dc:creator>
      <pubDate>Mon, 22 Jul 2019 16:33:47 +0000</pubDate>
      <link>https://dev.to/mlanders/first-community-project-1bhj</link>
      <guid>https://dev.to/mlanders/first-community-project-1bhj</guid>
      <description>&lt;p&gt;Over the past weekend I participated in my first community project with a bunch of devs I've never met before.&lt;/p&gt;

&lt;h2&gt;
  
  
  Saturday
&lt;/h2&gt;

&lt;p&gt;Showed up around 9:30am at &lt;a href="https://skyslope.com/"&gt;SkySlope&lt;/a&gt;. The organizers of the project first discussed the project and their idea of how we could organize around 20 devs across all aspects of the project. We had a small DevOps team who got the database setup on AWS and built the database structure using SQL.&lt;/p&gt;

&lt;p&gt;I was on the backend team that handled building out the routes, logic, and sql queries. We had about 10 people working on the backend over the course of the weekend. Pretty early on we decided to use Node as the majority of the team knew it. A more senior dev in the group started to stand up a Loopback server but it ended up being a bit more complex for the everyone to learn and use in a weekend. The decision was made to switch over the Express as it's much easier to work with and get a 0.1.0 project up and running quickly.&lt;/p&gt;

&lt;p&gt;The front end team was also a larger team of devs and UI/UX people. They created some great designs and started building out the application in React.&lt;/p&gt;

&lt;h2&gt;
  
  
  Sunday
&lt;/h2&gt;

&lt;p&gt;Much smaller team showed up on Sunday. Backend team consisted of about 5 people. Early on we distributed the workload across the team to complete the routes and make sure all the GET routes were working. Near the end of the day we got some POST requests working and started to narrow down the GET SQL queries so they didn't return all data but rather just the data that was needed.&lt;/p&gt;

&lt;p&gt;It was a great experience learning the terminology and structure that a larger company and more senior devs use. There wasn't much formality on code structure or how to commit but we got a good amount of work done. I plan on working on the project over the next few weeks in hopes we can get the project ready to use for the city.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Labs Week 5: A Review</title>
      <dc:creator>Mike Landers</dc:creator>
      <pubDate>Fri, 19 Apr 2019 17:43:37 +0000</pubDate>
      <link>https://dev.to/mlanders/labs-week-5-a-review-59pd</link>
      <guid>https://dev.to/mlanders/labs-week-5-a-review-59pd</guid>
      <description>&lt;center&gt;And that's a wrap!&lt;/center&gt;

&lt;center&gt;[Training Bot](https://www.trainingbot.co)&lt;/center&gt;




&lt;p&gt;Lambda Labs has been an absolute wonderful experience and I couldn't have asked for a better team to work with.&lt;/p&gt;

&lt;p&gt;The last week of our project was all about polishing and getting the app finalized. Last week I thought that this would be a pretty easy week. I was surprised as we went through the week there was more and more work to complete. They either seemed to be small styling issues or a realization that we should have written an entire part of the app another way. I guess that just comes with writing version 1.0 of an app. Just need to get something out the door and then build on it.&lt;/p&gt;




&lt;p&gt;This week the big item I worked on was setting up our app to disabled the add team member button or save button when editing a team member if the phone number isn't a full 10 digit number. Due to the way I had originally setup the phone number format it I wasn't able to do the validation of the number on the front end. I did enjoy writing the following regex to disable the button if no required phone number was present.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;  let addDisabled = false;
    if (
      /^$/gm.test(this.state.teamMember.phoneNumber) === true ||
      (/\+1 \(\d{0}/gm.test(this.state.teamMember.phoneNumber) === true &amp;amp;&amp;amp;
        /^\s*(?:\+?(\d{1,3}))?([-. (]*(\d{3})[-. )]*)?((\d{3})[-. ]*(\d{4})(?:[-.x ]*(\d+))?)\S*$/gm.test(this.state.teamMember.phoneNumber) === false)
    ) {
      addDisabled = true;
    }
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;The first part checks to see if the phone number string is empty and if so disabled will be &lt;code&gt;true&lt;/code&gt;. The second part checks for the form string to be there but empty. The last one checks that all 10 digits have been entered. &lt;/p&gt;

&lt;p&gt;I'm sure there is an easier way to do this and may go back to it later to simplify and get proper phone validation on the front end. Alex was able to get validation for the phone number on the backend so that when they are sent to Twilio it doesn't crash our server.&lt;/p&gt;



&lt;p&gt;This last week had it's challenges. Looking back though I have a feeling what we experienced was pretty common. We felt really good going into the week and during the week it just felt like one thing after another was cropping up. From styling issue caused by a mix of Material-UI and Styled Components to changing a component key to something that wasn't original that caused a list item to duplicate. I will say that is the first time when mapping over an array a key causing an issue. I think mostly because I either forget to add a key and ignore the warning or the item I'm mapping over includes an id, which this one didn't.&lt;/p&gt;

&lt;p&gt;Looking back over the last 5 weeks I'm extremely proud of the work our team put in to making this app. Many learning experiences from reading others code the entire planning process for an application of this scale.&lt;/p&gt;

&lt;p&gt;Thanks to Nate for our apps amazing video.&lt;/p&gt;

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



&lt;center&gt;[Training Bot](https://www.trainingbot.co)&lt;/center&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2F6w6gnma59wupyt1e7zl4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2F6w6gnma59wupyt1e7zl4.png" alt="Training Bot"&gt;&lt;/a&gt;&lt;/p&gt;



&lt;p&gt;GitHub PR's&lt;/p&gt;


&lt;div class="ltag_github-liquid-tag"&gt;
  &lt;h1&gt;
    &lt;a href="https://github.com/training-bot/labs11-trainingBot-FE/pull/155" rel="noopener noreferrer"&gt;
      &lt;img class="github-logo" alt="GitHub logo" src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev.to%2Fassets%2Fgithub-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg"&gt;
      &lt;span class="issue-title"&gt;
        Code cleanup
      &lt;/span&gt;
      &lt;span class="issue-number"&gt;#155&lt;/span&gt;
    &lt;/a&gt;
  &lt;/h1&gt;
  &lt;div class="github-thread"&gt;
    &lt;div class="timeline-comment-header"&gt;
      &lt;a href="https://github.com/mlanders" rel="noopener noreferrer"&gt;
        &lt;img class="github-liquid-tag-img" src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Favatars0.githubusercontent.com%2Fu%2F1500024%3Fv%3D4" alt="mlanders avatar"&gt;
      &lt;/a&gt;
      &lt;div class="timeline-comment-header-text"&gt;
        &lt;strong&gt;
          &lt;a href="https://github.com/mlanders" rel="noopener noreferrer"&gt;mlanders&lt;/a&gt;
        &lt;/strong&gt; posted on &lt;a href="https://github.com/training-bot/labs11-trainingBot-FE/pull/155" rel="noopener noreferrer"&gt;&lt;time&gt;Apr 18, 2019&lt;/time&gt;&lt;/a&gt;
      &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class="ltag-github-body"&gt;
      &lt;p&gt;Cleared all notifications in console and on the yarn start.&lt;/p&gt;
&lt;p&gt;Chrome dev tools audit: 100% Accessibility, 100% SEO, 93% Best Practices&lt;/p&gt;

    &lt;/div&gt;
    &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/training-bot/labs11-trainingBot-FE/pull/155" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;



&lt;div class="ltag_github-liquid-tag"&gt;
  &lt;h1&gt;
    &lt;a href="https://github.com/training-bot/labs11-trainingBot-FE/pull/144" rel="noopener noreferrer"&gt;
      &lt;img class="github-logo" alt="GitHub logo" src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev.to%2Fassets%2Fgithub-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg"&gt;
      &lt;span class="issue-title"&gt;
        Profile pricing &amp;amp; restricted pages
      &lt;/span&gt;
      &lt;span class="issue-number"&gt;#144&lt;/span&gt;
    &lt;/a&gt;
  &lt;/h1&gt;
  &lt;div class="github-thread"&gt;
    &lt;div class="timeline-comment-header"&gt;
      &lt;a href="https://github.com/mlanders" rel="noopener noreferrer"&gt;
        &lt;img class="github-liquid-tag-img" src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Favatars0.githubusercontent.com%2Fu%2F1500024%3Fv%3D4" alt="mlanders avatar"&gt;
      &lt;/a&gt;
      &lt;div class="timeline-comment-header-text"&gt;
        &lt;strong&gt;
          &lt;a href="https://github.com/mlanders" rel="noopener noreferrer"&gt;mlanders&lt;/a&gt;
        &lt;/strong&gt; posted on &lt;a href="https://github.com/training-bot/labs11-trainingBot-FE/pull/144" rel="noopener noreferrer"&gt;&lt;time&gt;Apr 17, 2019&lt;/time&gt;&lt;/a&gt;
      &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class="ltag-github-body"&gt;
      &lt;p&gt;Updated pricing page and pages that are restricted when logged out such as &lt;a href="https://trainingbot-dev.netlify.com/home/" rel="nofollow noopener noreferrer"&gt;https://trainingbot-dev.netlify.com/home/&lt;/a&gt;&lt;/p&gt;

    &lt;/div&gt;
    &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/training-bot/labs11-trainingBot-FE/pull/144" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;



&lt;div class="ltag_github-liquid-tag"&gt;
  &lt;h1&gt;
    &lt;a href="https://github.com/training-bot/labs11-trainingBot-FE/pull/137" rel="noopener noreferrer"&gt;
      &lt;img class="github-logo" alt="GitHub logo" src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev.to%2Fassets%2Fgithub-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg"&gt;
      &lt;span class="issue-title"&gt;
        Pricing page &amp;amp; phone number regex
      &lt;/span&gt;
      &lt;span class="issue-number"&gt;#137&lt;/span&gt;
    &lt;/a&gt;
  &lt;/h1&gt;
  &lt;div class="github-thread"&gt;
    &lt;div class="timeline-comment-header"&gt;
      &lt;a href="https://github.com/mlanders" rel="noopener noreferrer"&gt;
        &lt;img class="github-liquid-tag-img" src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Favatars0.githubusercontent.com%2Fu%2F1500024%3Fv%3D4" alt="mlanders avatar"&gt;
      &lt;/a&gt;
      &lt;div class="timeline-comment-header-text"&gt;
        &lt;strong&gt;
          &lt;a href="https://github.com/mlanders" rel="noopener noreferrer"&gt;mlanders&lt;/a&gt;
        &lt;/strong&gt; posted on &lt;a href="https://github.com/training-bot/labs11-trainingBot-FE/pull/137" rel="noopener noreferrer"&gt;&lt;time&gt;Apr 17, 2019&lt;/time&gt;&lt;/a&gt;
      &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class="ltag-github-body"&gt;
      &lt;p&gt;Forgot to create a new branch for these.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Landing page links to pricing page.&lt;/li&gt;
&lt;li&gt;Pricing page includes a basic chart&lt;/li&gt;
&lt;li&gt;When adding a phone number to a new team member the add member is disabled until a valid number is entered or none is added.&lt;/li&gt;
&lt;li&gt;When editing a team members phone number the save button is disabled unless a valid number is entered or none at all&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/training-bot/labs11-trainingBot-FE/pull/137" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;



&lt;div class="ltag_github-liquid-tag"&gt;
  &lt;h1&gt;
    &lt;a href="https://github.com/training-bot/labs11-trainingBot-FE/pull/136" rel="noopener noreferrer"&gt;
      &lt;img class="github-logo" alt="GitHub logo" src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev.to%2Fassets%2Fgithub-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg"&gt;
      &lt;span class="issue-title"&gt;
        phone numbers formatted on notifications page
      &lt;/span&gt;
      &lt;span class="issue-number"&gt;#136&lt;/span&gt;
    &lt;/a&gt;
  &lt;/h1&gt;
  &lt;div class="github-thread"&gt;
    &lt;div class="timeline-comment-header"&gt;
      &lt;a href="https://github.com/mlanders" rel="noopener noreferrer"&gt;
        &lt;img class="github-liquid-tag-img" src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Favatars0.githubusercontent.com%2Fu%2F1500024%3Fv%3D4" alt="mlanders avatar"&gt;
      &lt;/a&gt;
      &lt;div class="timeline-comment-header-text"&gt;
        &lt;strong&gt;
          &lt;a href="https://github.com/mlanders" rel="noopener noreferrer"&gt;mlanders&lt;/a&gt;
        &lt;/strong&gt; posted on &lt;a href="https://github.com/training-bot/labs11-trainingBot-FE/pull/136" rel="noopener noreferrer"&gt;&lt;time&gt;Apr 17, 2019&lt;/time&gt;&lt;/a&gt;
      &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class="ltag-github-body"&gt;
      &lt;p&gt;Phone numbers on notifications dashboard are now formatted&lt;/p&gt;

    &lt;/div&gt;
    &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/training-bot/labs11-trainingBot-FE/pull/136" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;






&lt;p&gt;GitHub Repo&lt;/p&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev.to%2Fassets%2Fgithub-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/training-bot" rel="noopener noreferrer"&gt;
        training-bot
      &lt;/a&gt; / &lt;a href="https://github.com/training-bot/labs11-trainingBot-FE" rel="noopener noreferrer"&gt;
        labs11-trainingBot-FE
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      Front-end repo for Training Bot, an app that allows training managers to send employees automated messages.
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;&lt;a rel="noopener noreferrer" href="https://github.com/training-bot/labs11-trainingBot-FEAssets/Screenshot1.png"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub.com%2Ftraining-bot%2Flabs11-trainingBot-FEAssets%2FScreenshot1.png" alt="Training Bot"&gt;&lt;/a&gt;&lt;/h1&gt;
&lt;/div&gt;
&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;Training Bot&lt;/h1&gt;
&lt;/div&gt;
&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
  A single page application using the Twilio API to send automated text and email notifications. Training Bot assists team leaders by sending automated notifications with custom content to their team
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Demo&lt;/h2&gt;

&lt;/div&gt;
&lt;p&gt;Here is a working live demo:  &lt;a href="https://trainingbot.netlify.com" rel="nofollow noopener noreferrer"&gt;https://trainingbot.netlify.com&lt;/a&gt;&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Site&lt;/h2&gt;

&lt;/div&gt;
&lt;div class="markdown-heading"&gt;
&lt;h3 class="heading-element"&gt;Dashboard&lt;/h3&gt;

&lt;/div&gt;
&lt;p&gt;The central location of our App. Here you can see all of your team members, training series, and outgoing/sent messages.&lt;/p&gt;
&lt;p&gt;&lt;a rel="noopener noreferrer" href="https://github.com/training-bot/labs11-trainingBot-FEAssets/Screenshot2.png"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub.com%2Ftraining-bot%2Flabs11-trainingBot-FEAssets%2FScreenshot2.png" alt=""&gt;&lt;/a&gt;&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h3 class="heading-element"&gt;Team Members&lt;/h3&gt;

&lt;/div&gt;
&lt;p&gt;You'll store all of your members here. This information will be used to send the notification to that specific member.
&lt;a rel="noopener noreferrer" href="https://github.com/training-bot/labs11-trainingBot-FEAssets/screenshot4.png"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub.com%2Ftraining-bot%2Flabs11-trainingBot-FEAssets%2Fscreenshot4.png" alt=""&gt;&lt;/a&gt;&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h3 class="heading-element"&gt;Training Series&lt;/h3&gt;

&lt;/div&gt;
&lt;p&gt;Training Series contains all of your content and assigned members.
&lt;a rel="noopener noreferrer" href="https://github.com/training-bot/labs11-trainingBot-FEAssets/Screenshot5.png"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub.com%2Ftraining-bot%2Flabs11-trainingBot-FEAssets%2FScreenshot5.png" alt=""&gt;&lt;/a&gt;&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h3 class="heading-element"&gt;Profile&lt;/h3&gt;

&lt;/div&gt;
&lt;p&gt;The profile section is where you can view/delete your account as well as upgrade your account.
&lt;a rel="noopener noreferrer" href="https://github.com/training-bot/labs11-trainingBot-FEAssets/Screenshot6.png"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub.com%2Ftraining-bot%2Flabs11-trainingBot-FEAssets%2FScreenshot6.png" alt=""&gt;&lt;/a&gt;&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Mobile support&lt;/h2&gt;

&lt;/div&gt;
&lt;p&gt;Training Bot is compatible with devices of all sizes and all OS's.
&lt;a rel="noopener noreferrer" href="https://github.com/training-bot/labs11-trainingBot-FEAssets/Screenshot3.png"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub.com%2Ftraining-bot%2Flabs11-trainingBot-FEAssets%2FScreenshot3.png" alt=""&gt;&lt;/a&gt;&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;&lt;a href="https://trainingbot.netlify.com" rel="nofollow noopener noreferrer"&gt;Usage&lt;/a&gt;&lt;/h2&gt;

&lt;/div&gt;
&lt;div class="markdown-heading"&gt;
&lt;h3 class="heading-element"&gt;Development&lt;/h3&gt;

&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;Fork the repository&lt;/li&gt;
&lt;li&gt;Create a new branch (&lt;code&gt;git checkout -b improve-feature&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;Make the appropriate changes in the files&lt;/li&gt;
&lt;li&gt;Add…&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/training-bot/labs11-trainingBot-FE" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;br&gt;
&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev.to%2Fassets%2Fgithub-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/training-bot" rel="noopener noreferrer"&gt;
        training-bot
      &lt;/a&gt; / &lt;a href="https://github.com/training-bot/labs11-trainingBot-BE" rel="noopener noreferrer"&gt;
        labs11-trainingBot-BE
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      Back-end repo for Training Bot, an app that allows training managers to send employees automated messages.
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;💬 Training Bot API 💬&lt;/h1&gt;
&lt;/div&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Introduction&lt;/h2&gt;
&lt;/div&gt;
&lt;p&gt;Training bot allows managers of teams to send notifications to their teammates on a predefined schedule.&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Table of Contents&lt;/h2&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/training-bot/labs11-trainingBot-BE#%F0%9F%92%AC-training-bot-api-%F0%9F%92%AC" rel="noopener noreferrer"&gt;💬 Training Bot API 💬&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/training-bot/labs11-trainingBot-BE#introduction" rel="noopener noreferrer"&gt;Introduction&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/training-bot/labs11-trainingBot-BE#table-of-contents" rel="noopener noreferrer"&gt;Table of Contents&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/training-bot/labs11-trainingBot-BE#overview" rel="noopener noreferrer"&gt;Overview&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/training-bot/labs11-trainingBot-BE#what-is-training-bot-%F0%9F%A4%96" rel="noopener noreferrer"&gt;What is Training Bot? 🤖&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/training-bot/labs11-trainingBot-BE#mission-statement-%F0%9F%93%9C" rel="noopener noreferrer"&gt;Mission Statement 📜&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/training-bot/labs11-trainingBot-BE#usage" rel="noopener noreferrer"&gt;Usage&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/training-bot/labs11-trainingBot-BE#getting-started" rel="noopener noreferrer"&gt;Getting Started&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/training-bot/labs11-trainingBot-BE#database-tables" rel="noopener noreferrer"&gt;Database Tables&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/training-bot/labs11-trainingBot-BE#schema" rel="noopener noreferrer"&gt;Schema&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/training-bot/labs11-trainingBot-BE#user" rel="noopener noreferrer"&gt;User&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/training-bot/labs11-trainingBot-BE#trainingseries" rel="noopener noreferrer"&gt;TrainingSeries&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/training-bot/labs11-trainingBot-BE#teammember" rel="noopener noreferrer"&gt;TeamMember&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/training-bot/labs11-trainingBot-BE#post" rel="noopener noreferrer"&gt;Post&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/training-bot/labs11-trainingBot-BE#accounttype" rel="noopener noreferrer"&gt;accountType&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/training-bot/labs11-trainingBot-BE#relationaltable" rel="noopener noreferrer"&gt;RelationalTable&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/training-bot/labs11-trainingBot-BE#endpoints" rel="noopener noreferrer"&gt;Endpoints&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/training-bot/labs11-trainingBot-BE#all-endpoints" rel="noopener noreferrer"&gt;All endpoints&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/training-bot/labs11-trainingBot-BE#%F0%9F%96%A5-data-requests-and-responses-%F0%9F%96%A5" rel="noopener noreferrer"&gt;🖥 Data requests and responses 🖥&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/training-bot/labs11-trainingBot-BE#apiauth" rel="noopener noreferrer"&gt;&lt;code&gt;/api/auth&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/training-bot/labs11-trainingBot-BE#apiusersid" rel="noopener noreferrer"&gt;&lt;code&gt;/api/users/:id&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/training-bot/labs11-trainingBot-BE#apiusersidtraining-series" rel="noopener noreferrer"&gt;&lt;code&gt;/api/users/:id/training-series&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/training-bot/labs11-trainingBot-BE#apiusersidteam-members" rel="noopener noreferrer"&gt;&lt;code&gt;/api/users/:id/team-members&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/training-bot/labs11-trainingBot-BE#apitraining-series" rel="noopener noreferrer"&gt;&lt;code&gt;/api/training-series&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/training-bot/labs11-trainingBot-BE#apitraining-seriesid" rel="noopener noreferrer"&gt;&lt;code&gt;/api/training-series/:id&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/training-bot/labs11-trainingBot-BE#apitraining-seriesidposts" rel="noopener noreferrer"&gt;&lt;code&gt;/api/training-series/:id/posts&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/training-bot/labs11-trainingBot-BE#apiposts" rel="noopener noreferrer"&gt;&lt;code&gt;/api/posts&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/training-bot/labs11-trainingBot-BE#apipostsid" rel="noopener noreferrer"&gt;&lt;code&gt;/api/posts/:id&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/training-bot/labs11-trainingBot-BE#apiteam-members" rel="noopener noreferrer"&gt;&lt;code&gt;/api/team-members&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/training-bot/labs11-trainingBot-BE#apiteam-membersid" rel="noopener noreferrer"&gt;&lt;code&gt;/api/team-members/:id&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/training-bot/labs11-trainingBot-BE#apiteam-membersidtraining-series" rel="noopener noreferrer"&gt;&lt;code&gt;/api/team-members/assign&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/training-bot/labs11-trainingBot-BE#apiteam-membersidtraining-seriestsid" rel="noopener noreferrer"&gt;&lt;code&gt;/api/team-members/assign/:id&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/training-bot/labs11-trainingBot-BE#apistripe" rel="noopener noreferrer"&gt;&lt;code&gt;/api/stripe&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/training-bot/labs11-trainingBot-BE#apistripeunsubscribe" rel="noopener noreferrer"&gt;&lt;code&gt;/api/stripe/unsubscribe&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;Overview&lt;/h1&gt;

&lt;/div&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;What is Training Bot? 🤖&lt;/h2&gt;

&lt;/div&gt;
&lt;p&gt;Training Bot is a learning application that lets a team leader create a series of trainings and deliver them at a scheduled time via text or email to assigned learners. The user will be able to add members and assign them to a scheduled set of trainings with a start date. Each training will have a title, text body, and link. They should be small…&lt;/p&gt;&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/training-bot/labs11-trainingBot-BE" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


</description>
      <category>lambdaschool</category>
    </item>
    <item>
      <title>Labs Week 4: A Review</title>
      <dc:creator>Mike Landers</dc:creator>
      <pubDate>Fri, 12 Apr 2019 16:56:52 +0000</pubDate>
      <link>https://dev.to/mlanders/labs-week-4-a-review-5dfn</link>
      <guid>https://dev.to/mlanders/labs-week-4-a-review-5dfn</guid>
      <description>&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fjzwn4saemikowrhvz2c6.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fjzwn4saemikowrhvz2c6.gif" alt="Training Bot"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This week was all about the user experience. Started off on Monday with a hard discussion regarding the user experience and lack of flow through our app. We all stepped back and took off our developer hats and put on our user hats to finally step back and discuss how a user actually goes through the app. We brought a friend to do go through the app and talk their way through how they were using the app. This was the eye opening we all needed to help us refocus our efforts for the rest of the week.&lt;/p&gt;




&lt;p&gt;I had a couple big winds this week. First is the profile page. With the help of Alex, it received a couple big updates. Fully responsive, a new pricing guide and a slick payment interaction&lt;/p&gt;

&lt;p&gt;&lt;a href="https://i.giphy.com/media/kcf1Eya06r30mEMrEy/giphy.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://i.giphy.com/media/kcf1Eya06r30mEMrEy/giphy.gif" alt="Profile payment"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;When you select a payment option it adds a nice animation and once the payment has been accepted it switches your plan in bot the guide and on the left on the profile card.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;iPad&lt;/th&gt;
&lt;th&gt;iPhone Large&lt;/th&gt;
&lt;th&gt;iPhone Small&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2F5q1ufhk8t0gk9hjp9udw.png" alt="iPad"&gt;&lt;/td&gt;
&lt;td&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fqie5okcn8w8ieee0tznz.png" alt="iPhone Large"&gt;&lt;/td&gt;
&lt;td&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2F1jynk5jb7yetgp489rmz.png" alt="iPhone Small"&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The second big win this week was making the main dashboard fully responsive. This required manipulating multiple components. Styles needed to be adjusted using Styled Components as well as Material UI styles.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://i.giphy.com/media/J3SSg61LY9xXXCRK5G/giphy.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://i.giphy.com/media/J3SSg61LY9xXXCRK5G/giphy.gif" alt="Responsive"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Getting the dashboard fully responsive was a little challenging. Being able to get all three cards to adjust appropriately as you shrink the window down wasn't as easy as I had anticipated. At one point the cards were getting smaller but snapping to a smaller size and not being fluid. After some tweaking of styling across 4 components I was able to make all the cards fluid on the dashboard.&lt;/p&gt;




&lt;p&gt;This week our team worked really well together. We took Monday off from coding to make sure we had our priorities straight in regards to the user experience. During that discussion we got to ambitious for the final two weeks and we had to refocus on what we could complete with the time we had left. &lt;/p&gt;

&lt;p&gt;We took everything we learned from our user test on Monday and put those items into Trello. The discussion then moved on to refining some of the design decisions to help make them more uniform across the app. An example was our button styles and placements. Having multiple people build the app without a clear design guide we ended up with many different button styles and layouts. &lt;/p&gt;

&lt;p&gt;Throughout the week each item we discussed on Monday started to come together. On Thursday we did another user test which better results but not perfect. Some bugs have popped up and some styles still need to be adjusted but we can see the finish line. &lt;/p&gt;

&lt;p&gt;Next week will be a grind to get the last remaining items finalized and a video made for the app.&lt;/p&gt;




&lt;p&gt;Profile&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;a href="https://trello.com/c/HKgNRO2k/317-profile-pages-responsiveness-and-pricing-design" rel="noopener noreferrer"&gt;https://trello.com/c/HKgNRO2k/317-profile-pages-responsiveness-and-pricing-design&lt;/a&gt;&lt;br&gt;
&lt;a href="https://trello.com/c/1kpAa58k/336-loading-animation-should-just-be-on-the-payment-section-and-not-the-pricing" rel="noopener noreferrer"&gt;https://trello.com/c/1kpAa58k/336-loading-animation-should-just-be-on-the-payment-section-and-not-the-pricing&lt;/a&gt;&lt;br&gt;
&lt;a href="https://github.com/training-bot/labs11-trainingBot-FE/pull/108" rel="noopener noreferrer"&gt;https://github.com/training-bot/labs11-trainingBot-FE/pull/108&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Number of assigned displayed on training series&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;a href="https://github.com/training-bot/labs11-trainingBot-FE/pull/102" rel="noopener noreferrer"&gt;https://github.com/training-bot/labs11-trainingBot-FE/pull/102&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Favicon &amp;amp; Loader&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;a href="https://github.com/training-bot/labs11-trainingBot-FE/pull/99" rel="noopener noreferrer"&gt;https://github.com/training-bot/labs11-trainingBot-FE/pull/99&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Button design updates&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;a href="https://trello.com/c/ZDf5cS4F/309-replace-all-buttons-with-text-buttons" rel="noopener noreferrer"&gt;https://trello.com/c/ZDf5cS4F/309-replace-all-buttons-with-text-buttons&lt;/a&gt;&lt;br&gt;
&lt;a href="https://github.com/training-bot/labs11-trainingBot-FE/pull/88" rel="noopener noreferrer"&gt;https://github.com/training-bot/labs11-trainingBot-FE/pull/88&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Pricing on profile start&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;a href="https://trello.com/c/KgVd5ahx/302-pricing-info-on-user-profile-in-subscriptions-section" rel="noopener noreferrer"&gt;https://trello.com/c/KgVd5ahx/302-pricing-info-on-user-profile-in-subscriptions-section&lt;/a&gt;&lt;br&gt;
&lt;a href="https://github.com/training-bot/labs11-trainingBot-FE/pull/88" rel="noopener noreferrer"&gt;https://github.com/training-bot/labs11-trainingBot-FE/pull/88&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

</description>
      <category>lambdaschool</category>
    </item>
    <item>
      <title>Labs Week 3: A Review</title>
      <dc:creator>Mike Landers</dc:creator>
      <pubDate>Fri, 05 Apr 2019 17:12:15 +0000</pubDate>
      <link>https://dev.to/mlanders/labs-week-3-a-review-4kcb</link>
      <guid>https://dev.to/mlanders/labs-week-3-a-review-4kcb</guid>
      <description>

&lt;p&gt;This week was dedicated to finalizing the features of our app as well as making it responsive. My main accomplishment was getting Stripe integrated into redux so it allows for a better user experience when subscribing a plan. This involved taking the Stripe integration I had built already and refactoring it to work through redux for better state management. If I had to do it again I would have preferred our team to decide on redux earlier but in the end it wasn't too bad.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://i.giphy.com/media/ZNyrdtVHCnMzKArRMs/giphy.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://i.giphy.com/media/ZNyrdtVHCnMzKArRMs/giphy.gif" alt="subscription"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;One big challenge I faced was how to make creating a user with stripe and adding the Stripe customer id do our database and then sending that same customer id back to stripe when doing the first payment in our system.&lt;/p&gt;

&lt;p&gt;After having our UI/UX meeting mid week we came to realize our main dashboard wasn't going to handle a lot of data well. We needed a way to have everything on one page without a huge long list or using infinite scroll. We decided as a team to use pagination. Having very little experience with pagination I decided to take on the task to push myself. &lt;/p&gt;

&lt;p&gt;After doing a little research I was able to find a nice npm package, &lt;a href="https://www.npmjs.com/package/material-ui-flat-pagination"&gt;Material UI Flat Pagination&lt;/a&gt;. After a quick read of the docs I was able to add it into our project with relative ease.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://i.giphy.com/media/58FqpnLF3EyUdYmAZR/giphy.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://i.giphy.com/media/58FqpnLF3EyUdYmAZR/giphy.gif" alt="pagination"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This week our team work really well to make big decisions quickly in order to make our user experience better. From removing modals and making them full pages to allowing each individual to make their own design decisions for the section they are working on. As each team member worked on the components they all started to come together into a cohesive app. I would say the only real challenge our team faced as a whole was after having our UI/UX meeting. It shined a light on some of our design decisions and how they wouldn't work. We were able to overcome this by meeting right after and taking the feedback and putting it into our Trello board to accomplish during the remainder of the week.&lt;/p&gt;

&lt;p&gt;Ready to take on week 4&lt;/p&gt;

&lt;p&gt;If you've managed to make it this far make sure to check out my labs team on Twitter!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://twitter.com/nateboyette"&gt;Nate&lt;/a&gt; | &lt;a href="https://twitter.com/lafriedel"&gt;Leigh-Ann&lt;/a&gt; | &lt;a href="https://twitter.com/BrandonLent17"&gt;Brandon&lt;/a&gt; | &lt;a href="https://twitter.com/_alex_ak"&gt;Alex&lt;/a&gt;&lt;/p&gt;


</description>
      <category>lambdaschool</category>
    </item>
    <item>
      <title>Labs Week 2: A Review</title>
      <dc:creator>Mike Landers</dc:creator>
      <pubDate>Fri, 29 Mar 2019 18:05:12 +0000</pubDate>
      <link>https://dev.to/mlanders/labs-week-2-a-review-pnd</link>
      <guid>https://dev.to/mlanders/labs-week-2-a-review-pnd</guid>
      <description>

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--XtFU3SKQ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/qwrt0bt452lccfj935bp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--XtFU3SKQ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/qwrt0bt452lccfj935bp.png" alt="training bot"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What a week!
&lt;/h2&gt;

&lt;p&gt;This has by far been the one of the more challenging weeks I've had at Lambda School. From feeling impostor syndrome in the beginning of the week to feeling great mid week and then getting stuck today.&lt;/p&gt;

&lt;p&gt;This week I took on getting Stripe integrated into our project. Started out reading documentation and not understanding how it all fit together. This was the first time I had to integrated a front end, back end, and third party API. Understanding how all the pieces fit together has been the biggest challenges. Mid week I started to get a hang of things and by the end of the week started to refactor the code to add in redux.&lt;/p&gt;




&lt;p&gt;This week one of my bigger accomplishments has been getting the front end to look decent while updating based on the state of the subscription.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--6uhyKmFH--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/gzybajq1i01gjx9r4uca.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--6uhyKmFH--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/gzybajq1i01gjx9r4uca.png" alt="UI for Profile"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;When a user selects a subscription type the payment form appears. Upon entering their card info the back end handles registering the user with stripe if they aren't already and sending the Stripe user ID to our database. Then it takes the Stripe user id and subscribes the user to the plan and updates the user account type in our database to be reflected on the front end. I'm currently running into some promise issues while integrating redux to better handling the updating of state for the profile page.&lt;/p&gt;




&lt;p&gt;My team has been nothing but incredible through the entire process. I've tried to be in our zoom sessions at all times to help out where I can. I think a big part of being a team player is being in the room there for when someone has an issue or wants to bounce an idea off you. I jump in on the discussions where I feel I have a valuable idea and listen to the discussions that are outside of what I know&lt;/p&gt;

&lt;p&gt;Overall our team is fairly laid back and nobody has a strong opinion on design or technology decisions. If someone feels like taking on a task we all trust their decision and if something comes up we handle it as a team.This has made the entire process pretty frictionless. I do feel that I haven't been good personally about asking for help and rather just try and grind through something I'm not sure on. This is something I would like to work on in the final three weeks of Labs.&lt;/p&gt;


</description>
      <category>lambdaschool</category>
    </item>
    <item>
      <title>Labs Week 1: A Review</title>
      <dc:creator>Mike Landers</dc:creator>
      <pubDate>Fri, 29 Mar 2019 18:05:02 +0000</pubDate>
      <link>https://dev.to/mlanders/labs-week-1-a-review-3if</link>
      <guid>https://dev.to/mlanders/labs-week-1-a-review-3if</guid>
      <description>

&lt;p&gt;As we complete the first week of Labs at Lambda School there is quite a bit to reflect on. As a team we planned out our project in the product canvas document and got both the front end and back end up and running.&lt;/p&gt;

&lt;p&gt;During the first week I setup an AWS account and created a MySQL database running. Used MySQLWorkbench to build out the tables needed along with the foreign keys that it required. While I did spend most of my time troubleshooting AWS connection and table issues I was able to contribute to the front end. Once we had Auth0 setup I added the ability to logout via the profile page. For both the front end and back end I setup some of the environment variables that would be needed and setup the necessary variables on Heroku and Netlify to simplify deployment between local and web.&lt;/p&gt;




&lt;p&gt;The ticket that i worked on the most this week was the setup of the database on AWS. Having never worked with AWS or MySQL, it was a great experience and would use it again. The following is a brief view of the MySQLWorkbench of the database.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Nrsyc-CN--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/eiucy2x8vq0p2br0tagl.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Nrsyc-CN--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/eiucy2x8vq0p2br0tagl.png" alt="alt text" title="Database Tables"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Some of the issues I ran into early on was that i could access the database but nobody else on the team could through the workbench and we couldn't access it via the codebase. After doing research on the issue I realized it was a permission issue on what IP's were allowed to connect to the database. After digging through the AWS settings I was able to open it up to allow the other members to access it as well as the codebase.&lt;/p&gt;

&lt;p&gt;Once the database was open this allowed the project to really start moving with seeding data and writing out components to display the data through API endpoints.&lt;/p&gt;




&lt;p&gt;Our team as a whole did a great job with research and writing the project specification. I personally helped find a competitor (&lt;a href="https://www.cronote.com/"&gt;https://www.cronote.com/&lt;/a&gt;) and assisted with the writing of the epics/features and the user stories that go along with them. The biggest contribution was researching and investigation the database we would eventually use. We knew how to use SQLite and Postgres from previous projects at Lambda. I personally wanted to go outside of our comfort zone and use an industry tool like AWS to build our application on.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--oJCpWHGs--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/ybbgqjp6udguaur6tzep.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--oJCpWHGs--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/ybbgqjp6udguaur6tzep.png" alt="alt text" title="AWS Monitor"&gt;&lt;/a&gt;&lt;/p&gt;


</description>
      <category>lambdaschool</category>
    </item>
  </channel>
</rss>
