<?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: Stacy Daniel </title>
    <description>The latest articles on DEV Community by Stacy Daniel  (@stacytech).</description>
    <link>https://dev.to/stacytech</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%2F498171%2Fb2b2d723-12ae-4788-a824-99de25033e46.png</url>
      <title>DEV Community: Stacy Daniel </title>
      <link>https://dev.to/stacytech</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/stacytech"/>
    <language>en</language>
    <item>
      <title>                       S Collection:     </title>
      <dc:creator>Stacy Daniel </dc:creator>
      <pubDate>Thu, 23 Dec 2021 20:26:05 +0000</pubDate>
      <link>https://dev.to/stacytech/s-collection-3kha</link>
      <guid>https://dev.to/stacytech/s-collection-3kha</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;This is it!…what felt like years of hard work, frustration, tears and of course the many victories is all finally coming together!!&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Project:
&lt;/h3&gt;

&lt;p&gt;My final project here at Flatiron… S COLLECTION is a  e commerce web application built using Ruby on Rails for the backend and React JS for the front. I wanted to venture out of my comfort zone and create something completely different to be able to add to my portfolio. This application consist of three models: User, Product and Transaction. &lt;/p&gt;

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

&lt;p&gt;A user is able to Signup/Login to view a list of the pieces in the COLLECTION. They’re also able to select a specific piece to view more information and to be able to add it to his/her cart. I also implemented user authentication using Bcrypt and Jwt.&lt;/p&gt;

&lt;h2&gt;
  
  
  Challenges Faced:
&lt;/h2&gt;

&lt;p&gt;One of the things I struggled most with was updating my state after my &lt;code&gt;"REMOVE_FROM_CART" Delete action&lt;/code&gt; was fired. In  order words, I needed my current state, my action(delete) to return a newState upon deleting an item.&lt;/p&gt;

&lt;h2&gt;
  
  
  Final remark:
&lt;/h2&gt;

&lt;p&gt;As my journey in the bootcamp draws near, I know that learning is something that never stops, especially in the world of development. I am extremely excited to see what the future holds. I am super thankful for Flatiron, for giving me the opportunity to break into Tech , and for also pushing me out my comfort zone . I will be forever grateful when I look back and see how far I have come.&lt;/p&gt;

&lt;p&gt;Happy Coding 😁&lt;/p&gt;

</description>
    </item>
    <item>
      <title>A Beginner's Guide to DOM Manipulation </title>
      <dc:creator>Stacy Daniel </dc:creator>
      <pubDate>Wed, 27 Oct 2021 04:59:12 +0000</pubDate>
      <link>https://dev.to/stacytech/a-beginners-guide-to-dom-manipulation-38ei</link>
      <guid>https://dev.to/stacytech/a-beginners-guide-to-dom-manipulation-38ei</guid>
      <description>&lt;p&gt;JavaScript has many abilities and one of the most unique and  useful is its ability to manipulate the DOM. &lt;/p&gt;

&lt;h2&gt;
  
  
  What is the DOM?
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;&lt;code&gt;Document Object Model(DOM)&lt;/code&gt;&lt;/strong&gt; is an interface that allows a programming language to manipulate the content, structure, and style of a website. It can simply be understood as a tree of nodes created by the browser. Each of these nodes has its own properties and methods which can be manipulated using JavaScript. Almost anytime a website performs an action, such as rotating between a slideshow of images, or toggling a navigation menu, that is the result of JavaScript accessing and manipulating the DOM.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Document Object:
&lt;/h2&gt;

&lt;p&gt;At the most basic level, a website consist of a &lt;strong&gt;HTML Document.&lt;/strong&gt; The browser creates a representation of that document, the &lt;strong&gt;(DOM)&lt;/strong&gt; as it loads and parses the HTML.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;code&gt;Below is a visual representation of what the DOM tree looks like:&lt;/code&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ArBWJP9o--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://www.freecodecamp.org/news/content/images/2021/01/images.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ArBWJP9o--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://www.freecodecamp.org/news/content/images/2021/01/images.png" alt="dom tree" width="486" height="266"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;Here we have the document object.This is the core foundation of the DOM, which is a built-in object that has many properties and methods which can be used to access and modify the DOM. To perform any form of DOM manipulation, you first have to access the document object.&lt;/code&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Accessing the DOM:
&lt;/h2&gt;

&lt;p&gt;In order to be able to manipulate an element in the DOM, you first have to select that particular element. Luckily for us, there are 5 major ways in which one can select elements in a DOM.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;getElementById&lt;/strong&gt;&lt;br&gt;
The most common way to access an HTML element is to use the id of the element. This method document.getElementById() as its name implies, returns an element from the DOM for the specified &lt;strong&gt;Id&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;getElementsByClassName&lt;/strong&gt;&lt;br&gt;
This method document.getElementsByClassName() returns a collection of all the elements in the document which matches  the specified &lt;strong&gt;Class name&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;getElementsByTagName&lt;/strong&gt;&lt;br&gt;
This method document.getElementByTagName() is nearly identical to getElementsByClassName().. but its main difference is that it accepts a tag name/type(example: (p)paragraph) and returns all the elements of the specified &lt;strong&gt;Tag type&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;querySelector&lt;/strong&gt;&lt;br&gt;
Just like the previous methods, document.querySelector() will return whatever we place between the parentheses. Its main difference is that, it's not limited to just one type. We can use querySelector to either retrieve an id, a class or even a HTML tag. One thing to note is that this method will return the first element that matches the specified &lt;strong&gt;CSS Selector&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Lastly,&lt;strong&gt;querySelectorAll&lt;/strong&gt;&lt;br&gt;
This method works similar to above. Whereas querySelector() can only return a single element, document.querySelectorAll() returns a node list collection of all the elements which matches the specified &lt;strong&gt;CSS Selector&lt;/strong&gt;. &lt;/p&gt;

&lt;h2&gt;
  
  
  Creating/Deleting Elements:
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;document.createElement()&lt;/strong&gt;&lt;br&gt;
this method creates an Element Node with the specified name.&lt;br&gt;
&lt;code&gt;document.createElement('button')&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;After the element is created, use the &lt;br&gt;
&lt;strong&gt;element.appendChild()&lt;/strong&gt; &lt;br&gt;
method to insert/get the element onto the page.&lt;br&gt;
&lt;code&gt;document.body.appendChild(btn)&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;element.remove()&lt;/strong&gt;&lt;br&gt;
this method removes the specified element from the page.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Summary:
&lt;/h2&gt;

&lt;p&gt;Knowing how to access and work within the DOM with JavaScript is super important. These are just a few of the basic overview. I hope you find this article useful. Thank you guys for reading and Happy Coding!😀&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Understanding Constructor Functions in JavaScript </title>
      <dc:creator>Stacy Daniel </dc:creator>
      <pubDate>Mon, 18 Oct 2021 03:00:32 +0000</pubDate>
      <link>https://dev.to/stacytech/understanding-constructor-functions-in-javascript-3eal</link>
      <guid>https://dev.to/stacytech/understanding-constructor-functions-in-javascript-3eal</guid>
      <description>&lt;h1&gt;
  
  
  &lt;strong&gt;What is a constructor ?&lt;/strong&gt;
&lt;/h1&gt;

&lt;p&gt;In Javascript, a &lt;strong&gt;constructor&lt;/strong&gt; is a special function which creates an instance of a class which is typically called an "object". They are technically regular functions, but What makes them special is that they are always invoked with a powerful operator in JavaScript called the &lt;strong&gt;new&lt;/strong&gt; operator. Constructors provide the means to create as many objects as needed, whilst attaching properties and behaviors to them as required. As convention, the constructor function name usually starts with a capital letter, to be easily recognizable in code. &lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;What happens when a constructor gets called ?&lt;/strong&gt;
&lt;/h2&gt;

&lt;h3&gt;
  
  
  When a Constructor is invoked:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;A new empty object is created. &lt;/li&gt;
&lt;li&gt;The Javascript keyword  &lt;strong&gt;this&lt;/strong&gt;  starts to refer to the newly created object.&lt;/li&gt;
&lt;li&gt;The value of the newly created object &lt;strong&gt;this&lt;/strong&gt; is then returned.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Example&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;here is an example of a Bird constructor, which will allow us to create new objects:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;     function Bird() {
       this.name = "Tweety";
       this.color = "blue";
     }      

  let blueBird = new Bird();
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;this&lt;/strong&gt; &lt;code&gt;inside the constructor always refers to the object being created.&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;When calling a constructor, the &lt;strong&gt;new&lt;/strong&gt; operator is used to   tell Javascript to create a new instance of the Bird constructor that is called blueBird. &lt;code&gt;Note that the constructor function is not changed, the newly created new context is changed!&lt;/code&gt; Without the new operator, &lt;strong&gt;this&lt;/strong&gt; inside the constructor would not point to the newly created object, giving unexpected results. when a constructor is invoked without the new operator it is invoked as a regular JavaScript function. &lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Summary&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Note the main purpose of constructors are to implement reusable object creation code. &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Constructor functions are regular functions but with a common agreement to defined them with the first letter capitalized.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Constructors use the keyword &lt;strong&gt;this&lt;/strong&gt; to set properties of the object they will create. &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Constructor functions can be used to create multiple similar objects.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Thank you for reading this article, I hope you found it useful. Happy Coding 😀        &lt;/p&gt;

</description>
    </item>
    <item>
      <title>Flatiron Javascript Portfolio</title>
      <dc:creator>Stacy Daniel </dc:creator>
      <pubDate>Thu, 07 Oct 2021 03:46:29 +0000</pubDate>
      <link>https://dev.to/stacytech/flatiron-javascript-portfolio-2g9o</link>
      <guid>https://dev.to/stacytech/flatiron-javascript-portfolio-2g9o</guid>
      <description>&lt;p&gt;We were tasked with creating a single page Application using a Rails API backend with a Vanilla Javascript frontend. For my project , I decided to build a app called &lt;strong&gt;PlantScape&lt;/strong&gt; where users/plant moms like myself are able to post their plants along with their care and is also able to view or comment on other plants.  &lt;/p&gt;

&lt;h1&gt;
  
  
  Generating a New Rails API:
&lt;/h1&gt;

&lt;p&gt;To begin creating my Rails application, I first needed to generate a New Rails API: &lt;strong&gt;&lt;code&gt;rails new plant-api --api --database=postgresql&lt;/code&gt;&lt;/strong&gt;.&lt;br&gt;
The &lt;code&gt;--api&lt;/code&gt; flag is specified so rails knows to set it up as an API , and the &lt;strong&gt;&lt;code&gt;--database=postgresql&lt;/code&gt;&lt;/strong&gt; flag will ensure that your app uses postgres for the database rather than the default sqlite3 , if one plans to deploy to heroku. &lt;/p&gt;

&lt;p&gt;Upon generating my new rails project, I navigated to my gemfile and uncomment &lt;strong&gt;&lt;code&gt;gem 'rack-cors'&lt;/code&gt;&lt;/strong&gt;, which will allow Cross Origin Resource Sharing in my API.&lt;/p&gt;

&lt;p&gt;I also went ahead an added the &lt;strong&gt;&lt;code&gt;active_model_serializers gem&lt;/code&gt;&lt;/strong&gt; which converts data into a format which can be easily transferred, as well as the &lt;strong&gt;&lt;code&gt;'faker' gem&lt;/code&gt;&lt;/strong&gt; which generates random data in many different categories. &lt;/p&gt;

&lt;h1&gt;
  
  
  Connecting My Frontend:
&lt;/h1&gt;

&lt;p&gt;My App is structured such that the frontend(Javascript)sends a get fetch request to my backend(Rails Api) hosted on &lt;strong&gt;&lt;code&gt;http://localhost:3000/plants&lt;/code&gt;&lt;/strong&gt; which returns a Json data response to my frontend. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;code&gt;getPlants = () =&amp;gt; fetch(this.api + "/plants).then(res =&amp;gt; res.json())&lt;/code&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Conclusion:
&lt;/h1&gt;

&lt;p&gt;Most challenging for me was structuring a delete method in order to delete a specific plant by its URI. All in all, I'm very happy with the way my application turned out. I hope to build onto it in the future and eventually add more functionality.&lt;/p&gt;

&lt;h2&gt;
  
  
  Thank you for reading and Happy Coding!😄
&lt;/h2&gt;

</description>
    </item>
    <item>
      <title>Js-Quiz `A JavaScript Frontend with a Rails API backend`</title>
      <dc:creator>Stacy Daniel </dc:creator>
      <pubDate>Sun, 04 Jul 2021 03:07:39 +0000</pubDate>
      <link>https://dev.to/stacytech/js-quiz-a-javascript-frontend-with-a-rails-api-backend-32og</link>
      <guid>https://dev.to/stacytech/js-quiz-a-javascript-frontend-with-a-rails-api-backend-32og</guid>
      <description>&lt;p&gt;This was the moment where I started to feel like an actual developer 😁! For my phrase four project here at Flatiron, We were required to build a single page application using a Rails API backend with a Vanilla JavaScript frontend. I was overjoyed and excited and so I decided to build a Quiz App predominantly on JavaScript. &lt;/p&gt;

&lt;h4&gt;
  
  
  &lt;code&gt;Note: it's important to have both the frontend and backend in two separate repos, for faster error handling and to also avoid any deployment issues.&lt;/code&gt;
&lt;/h4&gt;

&lt;h1&gt;
  
  
  Setting Up My Rails API:
&lt;/h1&gt;

&lt;p&gt;To begin creating my Rails Application, I first had to generate a New Rails API.&lt;/p&gt;

&lt;h4&gt;
  
  
  &lt;code&gt;rails new js-quiz-api --api-database=postgresql&lt;/code&gt;
&lt;/h4&gt;

&lt;p&gt;The &lt;code&gt;--api&lt;/code&gt; flag ensures that a Rails API only application is created and also assigns the database to use Postgres rather than the default Sqlite3. The Rails Api sets up its dependency gems. I also had to add the &lt;code&gt;active_model_serializers&lt;/code&gt; gem to my gemfile, which is used to convert data into a format which can be easily transferred.&lt;/p&gt;

&lt;h2&gt;
  
  
  class Quiz &amp;lt; ApplicationRecord
&lt;/h2&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;   has_many :js_questions&lt;br&gt;
   has_many :results &lt;br&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;h2&gt;
&lt;br&gt;
  &lt;br&gt;
  &lt;br&gt;
  class QuizSerializer &amp;lt; ActiveModel::Serializer&lt;br&gt;
&lt;/h2&gt;
&lt;br&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;attribute: id, :name, :description, :js_questions&lt;br&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;h1&gt;
&lt;br&gt;
  &lt;br&gt;
  &lt;br&gt;
  Connecting My Frontend:&lt;br&gt;
&lt;/h1&gt;

&lt;p&gt;My App is structured such that the frontend(JavaScript)sends a get fetch request to my backend(rails api) hosted on &lt;code&gt;http://localhost:3000/quizzes&lt;/code&gt;and returns a JSON data to use on my web page. &lt;/p&gt;

&lt;h3&gt;
  
  
  getQuizzes()
&lt;/h3&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt; fetch(this.baseUrl + "/quizzes")&lt;br&gt;
 .then(res =&amp;gt; res.json())&lt;br&gt;
 .then(quizzes =&amp;gt; quizzes.forEach(quiz =&amp;gt; {&lt;br&gt;
   const quizObject = new Quiz(quiz)&lt;br&gt;
   quiz.js_questions.forEach(question =&amp;gt; {&lt;br&gt;
      new Question(question)&lt;br&gt;
   })&lt;br&gt;
   quizObject.render()&lt;br&gt;
 })) &lt;br&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;h2&gt;
&lt;br&gt;
  &lt;br&gt;
  &lt;br&gt;
  In Conclusion:&lt;br&gt;
&lt;/h2&gt;

&lt;p&gt;Creating this app was a challenge, yet rewarding at the same time. It seemed very simple at first but it did take me some time to figure out all the working parts and to put everything into place. Being a Frontend Developer is a dream of mine and so I am super ecstatic to be on this journey, and to continue to dive deeper into learning JavaScript! &lt;br&gt;
Happy Coding!😀    &lt;/p&gt;

</description>
    </item>
    <item>
      <title>My First Ruby on Rails Project</title>
      <dc:creator>Stacy Daniel </dc:creator>
      <pubDate>Wed, 28 Apr 2021 12:21:45 +0000</pubDate>
      <link>https://dev.to/stacytech/my-first-ruby-on-rails-project-4g66</link>
      <guid>https://dev.to/stacytech/my-first-ruby-on-rails-project-4g66</guid>
      <description>&lt;p&gt;Phew 😮💨&lt;/p&gt;

&lt;p&gt;It has been a hell of a crazy month 🤣...yes a month. The initial two weeks to create the project plus the other two, to pass the review, but I finally did it 👏!&lt;/p&gt;

&lt;p&gt;My third project here at Flatiron was required to build a Web App using the Ruby on Rails framework. I decided to create a parent forum website, open to current and soon to be parents in the surrounding neighborhoods of Brooklyn NY. &lt;/p&gt;

&lt;p&gt;This forum has the customary signup/login/logout functionality, as well as a third party login authentication using a google.  &lt;/p&gt;

&lt;p&gt;There were many challenges with this project that ran from appropriately setting up my google omniauth, getting my delete button to work, but my biggest challenge by for was rendering the proper routes within my methods as well as within my  forms. &lt;/p&gt;

&lt;h1&gt;
  
  
  My Skeleton App Setup
&lt;/h1&gt;

&lt;h2&gt;
  
  
  class User &amp;lt; ApplicationRecord
&lt;/h2&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;has_secure_password
has_many :posts 
has_many :comments, through: :posts

validates :username, :email, presence: true, uniqueness: true 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;h2&gt;
  
  
  class Post &amp;lt; ApplicationRecord
&lt;/h2&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;belongs_to :user
has_many :comments 
has_many :users, through: :comments

validates :title, :content, presence: true
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;h2&gt;
  
  
  class Comment &amp;lt; ApplicationRecord
&lt;/h2&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;belongs_to :user
belongs_to :post

validates :content, presence: true 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;...&lt;/p&gt;

&lt;h1&gt;
  
  
  Overview
&lt;/h1&gt;

&lt;p&gt;Once a user joins/signup and is logged in, they are directed to their homepage/profile, where they're able to create and then share a post.&lt;/p&gt;

&lt;p&gt;Users can respond to a question or suggestion to any of the post shared, by responding with a comment. &lt;/p&gt;

&lt;p&gt;Only the creator of the post can edit and or delete said post.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;I honestly thought that phrase 3/rails project would have been the simplest, being that the labs were very self explanatory, but after weeks of mulling over errors after errors, I was finally able to get the web functionality I wanted!. I must admit it was a very close one, but having that drive and determination to succeed in becoming a Developer...kept me going!! &lt;br&gt;
Happy Coding y'all!😁&lt;/p&gt;

</description>
    </item>
    <item>
      <title>My Sinatra Base Web Application..."Hello Efitness!"</title>
      <dc:creator>Stacy Daniel </dc:creator>
      <pubDate>Sat, 27 Feb 2021 10:00:53 +0000</pubDate>
      <link>https://dev.to/stacytech/my-sinatra-base-web-application-hello-efitness-426m</link>
      <guid>https://dev.to/stacytech/my-sinatra-base-web-application-hello-efitness-426m</guid>
      <description>&lt;h1&gt;
  
  
  Getting Started: Woohoo
&lt;/h1&gt;

&lt;p&gt;I must admit, This time around I wasn't as nervous and confused as I was when building my very first project here at Flatiron. I was very well prepared. I had a clear idea as to what I wanted to build and how I wanted my app to look. I decided to build a Fitness tracker Web App, in which a user/users are able to signup/login and begin tracking their workouts. &lt;/p&gt;

&lt;h1&gt;
  
  
  Project Structure:
&lt;/h1&gt;

&lt;p&gt;&lt;code&gt;Gem install Corneal&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Corneal is a super convenient gem which is used for creating Sinatra base templates. The gem magically creates the file structure as well as providing useful gems in a Gemfile in other to manage the dependencies in the App. &lt;/p&gt;

&lt;p&gt;After getting my file structure up and running, I went ahead an created my project folders and subfolders. I decided on four models: A User, Workout, Exercise and Exercise_workout. Their relationships are as follows:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;class User &amp;lt; ActiveRecord::Base
    has_secure_password
    has_many :workouts

class Workout &amp;lt; ActiveRecord::Base
    belongs_to :user 
    has_many :exercise_workouts
    has_many :exercises, through: :exercise_workouts

class Exercise &amp;lt; ActiveRecord::Base
    has_many :exercise_workouts
    has_many :workouts, through: :exercise_workouts

class ExerciseWorkout &amp;lt; ActiveRecord::Base
    belongs_to :exercise
    belongs_to :workout
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h1&gt;
  
  
  Routes and Controllers
&lt;/h1&gt;

&lt;p&gt;I was able to utilize RESTful routes in my App through the following: &lt;/p&gt;

&lt;p&gt;&lt;code&gt;ApplicationController&lt;/code&gt; is the parent controller of my App. It requires the necessary files and configures views and sessions. This controller only has one route, A Get request which renders to the homepage, along with helper methods, to check whether or not a user is logged in.  &lt;/p&gt;

&lt;p&gt;&lt;code&gt;UserController&lt;/code&gt; has Get request which renders the user index page, signup form, as well as a Post request to create a user. &lt;/p&gt;

&lt;p&gt;&lt;code&gt;SessionsController&lt;/code&gt; has Get request which renders the login form, as well as a Post request to login/authenticate a user. &lt;/p&gt;

&lt;p&gt;&lt;code&gt;WorkoutController&lt;/code&gt; has Get requests to render the workouts index page, the form to create a new workout, as well as a Post request for that new workout created. This controller also renders the form to either update and or delete a workout.  &lt;/p&gt;

&lt;h1&gt;
  
  
  Conclusion
&lt;/h1&gt;

&lt;p&gt;This project was very rewarding and fun to work on. My biggest challenge was styling, which I ultimately decided to leave very basic. I learned how important it is to organize/have a rough idea prior to coding. I hope that the information provided will be helpful as other students like myself embark on this portion of their journey here at Flatiron. Happy coding!😁&lt;/p&gt;

</description>
    </item>
    <item>
      <title>My Very First Flatiron Project!</title>
      <dc:creator>Stacy Daniel </dc:creator>
      <pubDate>Tue, 16 Feb 2021 02:59:48 +0000</pubDate>
      <link>https://dev.to/stacytech/my-very-first-flatiron-project-4hhl</link>
      <guid>https://dev.to/stacytech/my-very-first-flatiron-project-4hhl</guid>
      <description>&lt;p&gt;OVERVIEW&lt;/p&gt;

&lt;p&gt;For my first project at Flatiron, I was given the task of building a Ruby CLI Application, by either scrapping or utilizing an API from a public website. &lt;/p&gt;

&lt;p&gt;Initially I struggled with ideas for the project. I went through many different ideas and APIs before deciding to build an app that would utilize data on the newly developing islands in the Caribbean. &lt;/p&gt;

&lt;p&gt;DEVELOPMENT&lt;/p&gt;

&lt;p&gt;My application uses the Rest Countries Caricom regional bloc Api, which allows any user to list a few of the countries along with its data. &lt;/p&gt;

&lt;p&gt;First thing I needed to do was build a API class, which gathered all the information from my Apis endpoint. Secondly, a Country class which initializes object instances for the countries. And last, but not least, a Cli class which interacts with the user/users. &lt;/p&gt;

&lt;p&gt;CONCLUSION&lt;/p&gt;

&lt;p&gt;I learned alot during this entire process, including being able to create a new repository, adding, committing and pushing my work through github in order to save it. &lt;/p&gt;

&lt;p&gt;My hardest struggle was not being able to properly execute my ideas in the Cli class, but after weeks of ferociously coding and with the help of my tutor Brandon, I can proudly say I am very happy to be able to immerse myself in greater depths of understanding Ruby!&lt;/p&gt;

</description>
    </item>
    <item>
      <title>My First Flatiron Project!</title>
      <dc:creator>Stacy Daniel </dc:creator>
      <pubDate>Mon, 14 Dec 2020 00:47:48 +0000</pubDate>
      <link>https://dev.to/stacytech/my-first-flatiron-project-4p8l</link>
      <guid>https://dev.to/stacytech/my-first-flatiron-project-4p8l</guid>
      <description>&lt;p&gt;For my very first project at Flatiron, I was given the task of building a Ruby CLI Application, by either scrapping or utilizing an API from a public website. &lt;/p&gt;

&lt;p&gt;Initially I struggled with ideas for my project. I went through so many different APIs before deciding to build an app that would utilize data on the newly developing islands in the Caribbean. &lt;/p&gt;

&lt;p&gt;My application uses the Rest Countries Caricom regional bloc API, which allows any user to list a few of the Caribbean Community, better known as the Caricom countries along with their capital cities and population. &lt;/p&gt;

&lt;p&gt;First thing I needed to do was build an API class, which gathered all the information from my url. Secondly, a Country class which initializes object instances for my Caricom countries. And last but not least, a CLI class which interacts with the user/users. &lt;/p&gt;

&lt;p&gt;Overall, I am very happy with how my project came out. My hardest struggle was not being able to properly execute my ideas in the CLI class, but after weeks of ferociously coding and with the help of my tutor Brandon, I can proudly say I am very happy to be able to immerse myself in greater depths of understanding Ruby!&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Why I decided to learn Software Engineering!</title>
      <dc:creator>Stacy Daniel </dc:creator>
      <pubDate>Sun, 25 Oct 2020 21:27:21 +0000</pubDate>
      <link>https://dev.to/stacytech/why-i-decided-to-learn-software-engineering-4bo7</link>
      <guid>https://dev.to/stacytech/why-i-decided-to-learn-software-engineering-4bo7</guid>
      <description>&lt;p&gt;After many years of job instability, financial strain and most recently the 2020 covid-19  pandemic, I found myself questioning everything: What excites me? What was I good at?  What could I be good at given the opportunity?  I knew I wanted to do something satisfying , most importantly, something which made a difference in myself as well as others. &lt;/p&gt;

&lt;p&gt;A profession in technology was never of interest to me. I had so many preconceived notions about what I thought a programmer was. That all changed when I stumbled upon a post on youtube captioned "A day in the life of a developer", the youtuber -herself a web developer, got me pumped and interested in learning about code.&lt;/p&gt;

&lt;p&gt;After many hours of late night reading, researching and exploring free prep courses in software engineering,  I became more and more excited and fascinated in learning to code. I became hooked!&lt;/p&gt;

&lt;p&gt;Before realizing I wanted to start a career in the tech industry, I came from a completely different background, with zero knowledge or experience in coding. Flatiron was recommended to me by a trusted family member and after some in depth research and careful consideration, I decided to apply to their software engineering program. Their well structured curriculum, and job placement record being the deciding factors for me. &lt;/p&gt;

&lt;p&gt;A career in software engineering will be life changing. The ability to create using languages not known to the general public is amazing! I would be doing something completely fulfilling while gaining financial security. &lt;/p&gt;

&lt;p&gt;Upon my completion of the program, my ultimate goal is to continuously learn and grow to become the best developer that I can be!!&lt;/p&gt;

&lt;p&gt;For more Content:&lt;br&gt;
Like, share and follow😍&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
