<?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: Melissa Bennett-Holt</title>
    <description>The latest articles on DEV Community by Melissa Bennett-Holt (@thecodingbarista).</description>
    <link>https://dev.to/thecodingbarista</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%2F312036%2F281cfd05-382a-4590-ac0c-5743efb1d5df.jpeg</url>
      <title>DEV Community: Melissa Bennett-Holt</title>
      <link>https://dev.to/thecodingbarista</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/thecodingbarista"/>
    <language>en</language>
    <item>
      <title>A Very Potter React App</title>
      <dc:creator>Melissa Bennett-Holt</dc:creator>
      <pubDate>Fri, 27 Jan 2023 07:28:47 +0000</pubDate>
      <link>https://dev.to/thecodingbarista/a-very-potter-react-app-166k</link>
      <guid>https://dev.to/thecodingbarista/a-very-potter-react-app-166k</guid>
      <description>&lt;p&gt;This app has been years in the making! My journey through Flatiron School's Software Engineering program has been an unconventional one, and I want to take a moment to acknowledge that here. I first came to Flatiron some months after my younger sister was killed. During that trying time, I found myself searching for more out of life, feeling that life was too short to just get by. &lt;/p&gt;

&lt;p&gt;After studying the social sciences in college, retraining my brain to be more technical was quite a challenge, and took longer than I originally expected. After all is said and done, getting through this program is my proudest achievement to date, because there were many moments when I didn't think I ever would. That said, let's get into it!&lt;/p&gt;

&lt;p&gt;The main function of this app is to show a representation of the Hogwarts sorting ceremony (all recognizable characters and names of the wizarding world of Harry Potter are the property of J.K. Rowling). It also displays all students, as well allowing for the addition and deletion of students.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F68ooxdpyw1nrxyvotnht.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F68ooxdpyw1nrxyvotnht.png" alt="Pre-sorting" width="652" height="1286"&gt;&lt;/a&gt; &lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fuf3urpcgtqzwkudz3o6y.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fuf3urpcgtqzwkudz3o6y.png" alt="Post-sorting" width="644" height="1318"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I enjoyed getting familiar with React, it was more intuitive than anything I've encountered so far, and the framework is both highly customizable and user-friendly out of the box. I know I've only scratched the surface of what it can do! React Router and the Form from "semantic-ui-react" were wonderful tools. No more worrying about including the preventDefault() method! &lt;/p&gt;

&lt;p&gt;In fact, this Form is so user-friendly and handles so much behind the scenes that I actually had some trouble with articulating what makes a "controlled form". With a &lt;strong&gt;controlled&lt;/strong&gt; form, the React component that renders a form also manages user input with state. This also allows for us to clear forms upon submit by updating the state.&lt;/p&gt;

&lt;p&gt;I always like to highlight one "silly" mistake from each one of my projects, and this one's was forgetting to assign ids to my database items, and wondering why my POST request wasn't working!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.giphy.com/media/xT5LMzIK1AdZJ4cYW4/giphy.gif" rel="noopener noreferrer"&gt;https://media.giphy.com/media/xT5LMzIK1AdZJ4cYW4/giphy.gif&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://i.giphy.com/media/xT5LMzIK1AdZJ4cYW4/giphy.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://i.giphy.com/media/xT5LMzIK1AdZJ4cYW4/giphy.gif" title="Doh gif" alt="Homer Simpson gif" width="480" height="366"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It was important to me to include the carousel feature in this app, because I wanted a sense of the queue that students must wait in. This turned out to be trickier than I could have imagined, but &lt;a href="https://mediajams.dev/post/add-a-responsive-image-carousel-to-your-react-app" rel="noopener noreferrer"&gt;this tutorial&lt;/a&gt; really helped me out.&lt;/p&gt;

&lt;p&gt;This is one app that I'm not quite ready to shelf just yet, I look forward to improving the styling and adding more features, but for now, that's a wrap!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.youtube.com/watch?v=VZTbVi7yVNI" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftb1u40jqoi6qe4ms1bmt.jpg" alt="React App" width="480" height="360"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;See the repo &lt;a href="https://github.com/TheCodingBarista/potter-project" rel="noopener noreferrer"&gt;here&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>discuss</category>
    </item>
    <item>
      <title>What in the CWverse?</title>
      <dc:creator>Melissa Bennett-Holt</dc:creator>
      <pubDate>Wed, 07 Apr 2021 19:50:02 +0000</pubDate>
      <link>https://dev.to/thecodingbarista/what-in-the-cwverse-2e09</link>
      <guid>https://dev.to/thecodingbarista/what-in-the-cwverse-2e09</guid>
      <description>&lt;p&gt;I'd heard from others that the JavaScript project, and indeed, JavaScript itself was the most challenging part of the Flatiron curriculum, and now I truly believe it.&lt;/p&gt;

&lt;p&gt;Aside from the challenges that arise when learning a new language and learning how to get that language to display what you know you can create in your head, it has been an extraordinarily tough year. Getting this far for me has been a hard-fought battle, and I can only keep looking towards the finish line and what the future has in store.&lt;/p&gt;

&lt;p&gt;This project was both familiar to me in terms of using Rails as the backend and implementing some similar setups, and completely new in learning how to dynamically make changes to a web page. &lt;/p&gt;

&lt;p&gt;The challenges that I faced:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Getting familiar and comfortable writing with a new syntax&lt;/li&gt;
&lt;li&gt;Working on this project in the midst of a COVID outbreak at work and its lasting effects&lt;/li&gt;
&lt;li&gt;Understanding how the backend and frontend talk to each other&lt;/li&gt;
&lt;li&gt;Rendering things outside of a static index.html&lt;/li&gt;
&lt;/ul&gt;

</description>
    </item>
    <item>
      <title>Money Moves</title>
      <dc:creator>Melissa Bennett-Holt</dc:creator>
      <pubDate>Fri, 07 Aug 2020 04:29:41 +0000</pubDate>
      <link>https://dev.to/thecodingbarista/money-moves-3m0h</link>
      <guid>https://dev.to/thecodingbarista/money-moves-3m0h</guid>
      <description>&lt;p&gt;Rake, and routes, and resources, oh my!&lt;/p&gt;

&lt;p&gt;For my Flatiron School Module 3 (Rails) project, I decided to build something that showcased one of my interests - personal finance. During this COVID-19 pandemic, I think it's more important than ever for people to understand their finances and to have the resources to further their financial education.&lt;/p&gt;

&lt;p&gt;This app was fun to build, as I was able to highlight influencers in the personal finance space through featuring Twitter accounts, showcasing a couple of books, and by directly featuring blog posts in the app.&lt;/p&gt;

&lt;p&gt;This project took me through learning how to use a Bootstrap template, using the incredibly helpful Rails (and Devise) helper methods, and learning more about git and database management. I got the opportunity to revisit my old friends APIs and parsing from Module 1, with more experience, and it was gratifying. &lt;/p&gt;

&lt;p&gt;My biggest takeaways from this project, however, were:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A more personal understanding more of what the seasoned devs are always talking about: becoming a better dev can be, and will be, done through getting better at Googling&lt;/li&gt;
&lt;li&gt;Sleeping or taking a break is your best debugging tool&lt;/li&gt;
&lt;li&gt;You can never do too much planning&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;As always, I had big ideas for this project, and wanted to incorporate so much more! I look forward to the rest of the curriculum and expanding my knowledge and skill set!&lt;/p&gt;

&lt;p&gt;Happy coding!&lt;/p&gt;

</description>
      <category>rails</category>
      <category>finance</category>
      <category>resources</category>
    </item>
    <item>
      <title>The Coffee Project: Sinatra knows this ditty</title>
      <dc:creator>Melissa Bennett-Holt</dc:creator>
      <pubDate>Sat, 04 Apr 2020 01:25:58 +0000</pubDate>
      <link>https://dev.to/thecodingbarista/the-coffee-project-sinatra-knows-this-ditty-18om</link>
      <guid>https://dev.to/thecodingbarista/the-coffee-project-sinatra-knows-this-ditty-18om</guid>
      <description>&lt;p&gt;The Coffee Project is the app that serves as the grand finale to Module 2 of my Flatiron School program: Sinatra.&lt;/p&gt;

&lt;p&gt;Sprinkled throughout the app are a few nods to the late, great Frank Sinatra, and its name is derived from one of his songs, "The Coffee Song."&lt;/p&gt;

&lt;p&gt;As a barista and coffee lover, I took inspiration for this project from what I know well - day to day life in a coffee shop. The prompt required that the app functions as a Content Management System (CMS), and I decided to build an app that would track inventory for The Cafe Sinatra, a fictional small chain of coffee shops.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fxwtwhzzj36i44ikx3pkz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fxwtwhzzj36i44ikx3pkz.png" alt="A checklist of the project requirements" width="727" height="823"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Application Structure
&lt;/h3&gt;

&lt;p&gt;The Coffee Project is an MVC (Model-View-Controller) Sinatra application. &lt;a href="https://github.com/sinatra/sinatra"&gt;Sinatra&lt;/a&gt; is a Domain-specific language for creating web applications with Ruby. When paired with the &lt;a href="https://github.com/rtomayko/shotgun"&gt;Shotgun&lt;/a&gt; gem, it's incredibly easy to view your app in browser with real-time changes.&lt;/p&gt;

&lt;h4&gt;
  
  
  Models
&lt;/h4&gt;

&lt;p&gt;The Cafe Sinatra has multiple cafe locations, and each of those locations (Store model) has its own inventory of supplies (Item model) and employees (User model). Put in terms of Ruby model relationships:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;A Store has_many items and users&lt;/li&gt;
&lt;li&gt;A User belongs_to a Store and has_many Items&lt;/li&gt;
&lt;li&gt;An Item belongs_to a Store and to (many) Users through their Store&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  User Validations and CRUD Actions
&lt;/h3&gt;

&lt;p&gt;CRUD = Create, Read, Update, Delete&lt;/p&gt;

&lt;p&gt;Before a user is able to complete the signup process, the form is checked for completeness and the username they entered is checked against the database to ensure that it hasn't already been taken by way of the &lt;a href="https://apidock.com/rails/ActiveRecord/Validations/ClassMethods/validates_uniqueness_of"&gt;validates_uniqueness_of&lt;/a&gt; macro.&lt;/p&gt;

&lt;p&gt;Each store has two types of users - employees and admins. The full inventory of an individual store is available for all of its users to view (read) and update when they are logged in, but only admins are able to create and delete items.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F9hbwuphqhcha86lkzn5z.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F9hbwuphqhcha86lkzn5z.png" alt="An example of the Store Inventory page" width="766" height="487"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Building this app was quite a learning experience, and after all of the debugging, researching, route building, and testing, I'm proud to say Sinatra KNOWS this ditty!&lt;/p&gt;

&lt;p&gt;Check out the repo here:&lt;/p&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--A9-wwsHG--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/TheCodingBarista"&gt;
        TheCodingBarista
      &lt;/a&gt; / &lt;a href="https://github.com/TheCodingBarista/the-coffee-project"&gt;
        the-coffee-project
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      An inventory management web app for a coffee shop
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;h1&gt;
The Coffee Project is an inventory management system for The Cafe Sinatra, a fictional small chain of coffee shops.&lt;/h1&gt;
&lt;h2&gt;
Installation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Fork and clone this repository to your local machine.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Execute:&lt;/p&gt;
&lt;p&gt;$ bundle install&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
Usage&lt;/h2&gt;
&lt;div class="snippet-clipboard-content notranslate position-relative overflow-auto"&gt;&lt;pre class="notranslate"&gt;&lt;code&gt;To get started:
1. Run 'rake db:migrate'
2. Run 'shotgun' to open the app in browser

With The Coffee Project, you can:

1. View/edit your store's inventory
2. See a list of your store's current employees
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;
Contributing&lt;/h2&gt;
&lt;p&gt;Bug reports and pull requests are welcome on GitHub at &lt;a href="https://github.com/TheCodingBarista/the-coffee-project"&gt;https://github.com/TheCodingBarista/the-coffee-project&lt;/a&gt;. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the Contributor Covenant code of conduct.&lt;/p&gt;
&lt;h2&gt;
License&lt;/h2&gt;
&lt;p&gt;The gem is available as open source under the terms of the &lt;a href="https://opensource.org/licenses/MIT" rel="nofollow"&gt;MIT License&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;



&lt;/div&gt;
&lt;br&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/TheCodingBarista/the-coffee-project"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;br&gt;
&lt;/div&gt;
&lt;br&gt;


</description>
      <category>sinatra</category>
      <category>ruby</category>
    </item>
    <item>
      <title>Dev.to CLI Gem</title>
      <dc:creator>Melissa Bennett-Holt</dc:creator>
      <pubDate>Mon, 20 Jan 2020 02:01:18 +0000</pubDate>
      <link>https://dev.to/thecodingbarista/cli-project-1g31</link>
      <guid>https://dev.to/thecodingbarista/cli-project-1g31</guid>
      <description>&lt;p&gt;I just completed my first project for my Flatiron software engineering program, and it feels so good! I had never even thought about coding outside of the lens of "Oh, really smart people do that!" until this past August, and although this is just the beginning of my journey, it's incredible how much I've grown since then.&lt;/p&gt;

&lt;p&gt;I have never been so thoroughly challenged and excited by anything as I have these past few months learning to code. Every day marks a new concept or a new perspective on how to implement something. &lt;/p&gt;

&lt;p&gt;Although I experienced the feelings of Impostor Syndrome that are not unfamiliar to developers throughout the process, creating this gem was a fantastic way for me to prove to myself just how much I have learned.&lt;/p&gt;

&lt;p&gt;The gem is designed to interact with the Dev.to API and retrieve the most popular posts. I totally geeked out while working on it when I realized that I was actually able to see the top post change when printed to the terminal. Seeing that real, changing data come through my design for the first time is a feeling that I'll never forget! &lt;/p&gt;

&lt;p&gt;My major sources of gripe were dealing with environment issues that sounded vaguely life-threatening and a problem with Bundler that has plagued more than a few of us.&lt;/p&gt;

&lt;p&gt;I decided to center this project on this community's work, because I recently discovered it through Twitter, and I think that it is a valuable alternative resource for #CodeNewbies and vets alike. Thank you all for the great work you all do!&lt;/p&gt;

</description>
      <category>ruby</category>
      <category>cli</category>
    </item>
  </channel>
</rss>
