<?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: Rayleigh Rozier</title>
    <description>The latest articles on DEV Community by Rayleigh Rozier (@rayleighrozier).</description>
    <link>https://dev.to/rayleighrozier</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%2F804762%2F6f05ef6c-5754-43d3-9b37-5dfd663fdeb5.jpeg</url>
      <title>DEV Community: Rayleigh Rozier</title>
      <link>https://dev.to/rayleighrozier</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/rayleighrozier"/>
    <language>en</language>
    <item>
      <title>Using React to improve the state (ha) of my library</title>
      <dc:creator>Rayleigh Rozier</dc:creator>
      <pubDate>Fri, 15 Apr 2022 03:52:27 +0000</pubDate>
      <link>https://dev.to/rayleighrozier/using-react-to-improve-the-state-ha-of-my-library-5hef</link>
      <guid>https://dev.to/rayleighrozier/using-react-to-improve-the-state-ha-of-my-library-5hef</guid>
      <description>&lt;p&gt;My coding boot camp experience is coming to an end, and of course I'm a little sad. It's been incredibly rewarding to learn so many new skills in such a short amount of time, and I love the feeling of being challenged that comes in a classroom environment.&lt;/p&gt;

&lt;p&gt;That being said, I'm ready to have a little free time back. Because I really, &lt;em&gt;really&lt;/em&gt; miss reading.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://i.giphy.com/media/bslzwg9Qkl0aY/giphy.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://i.giphy.com/media/bslzwg9Qkl0aY/giphy.gif" width="500" height="355"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Before I started coding, books were my go-to whenever I had a spare minute. In 2021, I read 100 books (read: too many). This year, I'll be lucky to hit 10. Because of that, I often find myself glancing longingly at my &lt;a href="https://www.goodreads.com/"&gt;GoodReads&lt;/a&gt; account and remembering the good ol' days.&lt;/p&gt;

&lt;p&gt;That's what inspired my React project &lt;a href="https://github.com/rayleighrozier/pageturner"&gt;pageturner&lt;/a&gt;. It's a slimmed-down book tracking app that focuses on your progress, rather than the social networking aspects of similar applications. You can search, add and log books, and sort them into different shelves. It uses &lt;a href="https://developers.google.com/books"&gt;Google Books API&lt;/a&gt; to display information about different books, then tracks your progress using a &lt;a href="https://supabase.com/"&gt;Supabase&lt;/a&gt; database. This was a great way to practice my React and Redux skills, especially because it required MANY more components than I initially planned for.&lt;/p&gt;

&lt;p&gt;If you'd like to check out this project, it's on GitHub &lt;a href="https://github.com/rayleighrozier/pageturner"&gt;here&lt;/a&gt;. &lt;/p&gt;

</description>
    </item>
    <item>
      <title>Getting Moody with Spotify's API</title>
      <dc:creator>Rayleigh Rozier</dc:creator>
      <pubDate>Fri, 25 Feb 2022 06:38:10 +0000</pubDate>
      <link>https://dev.to/rayleighrozier/getting-moody-with-spotifys-api-pfa</link>
      <guid>https://dev.to/rayleighrozier/getting-moody-with-spotifys-api-pfa</guid>
      <description>&lt;p&gt;I  don't know about you, but one of the best parts of my Monday each week is digging into Spotify's &lt;a href="https://medium.com/the-sound-of-ai/spotifys-discover-weekly-explained-breaking-from-your-music-bubble-or-maybe-not-b506da144123"&gt;Discover Weekly&lt;/a&gt; playlist. If you're not familiar, the app delivers a fresh mixtape of 30 songs every single week, specifically tailored to your listening habits. It almost makes getting out of bed little easier. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://i.giphy.com/media/jaf4JwRREzsuGMkkDk/giphy.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://i.giphy.com/media/jaf4JwRREzsuGMkkDk/giphy.gif" width="480" height="360"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Discover Weekly inspired me to create my latest project, a web application called Music Mood Ring. My boot camp was asked to create something that demonstrates our front-end development skills. I used JavaScript, HTML and CSS to build the application, and it fetches from &lt;a href="https://developer.spotify.com/documentation/web-api/"&gt;Spotify's API&lt;/a&gt;.&lt;/p&gt;

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

&lt;p&gt;Music Mood Ring gives you a song recommendation on-demand instead of weekly, and that song is specifically tailored to your current mood. The user inputs how they are feeling (via emojis), and a genre, and the application returns a song to match.&lt;/p&gt;

&lt;p&gt;Here's how it works: when the user selects their mood and genre, the application uses them to narrow down a list of playlist IDs. It then selects a random playlist ID from that list, and uses it to call Spotify's API. Once the playlist is returned, the program then selects a random song from it and displays it for the user to listen to. &lt;/p&gt;

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

&lt;p&gt;Making this app took much longer than I anticipated. &lt;em&gt;Much&lt;/em&gt; longer. I spent the better part of a morning just getting a handle on Spotify's API, and even then, I found my ability to search through their data was more limited than I thought. I originally planned to fetch my library of playlist IDs from the API, but there's not really a search feature that returns what I was looking for. I had to do a lot of the playlist selection by hand on Spotify's web browser, so that was definitely a setback. &lt;/p&gt;

&lt;p&gt;This project also taught me the importance of considering media queries &lt;em&gt;before&lt;/em&gt; you get too involved with CSS. I found myself backtracking a lot when creating my styles, because I did not consider how they would scale up and down. However, I did really enjoy working on the CSS for this one, especially the mood-ring-inspired moving gradient I used for the background.&lt;/p&gt;

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

&lt;p&gt;If you'd like to check it out, the project is on &lt;a href="https://github.com/rayleighrozier/digitalcrafts/tree/main/week7/musicMoodRing"&gt;GitHub&lt;/a&gt;!&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>webdev</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Celebrating Georgia's National Championship with Python</title>
      <dc:creator>Rayleigh Rozier</dc:creator>
      <pubDate>Thu, 27 Jan 2022 20:54:55 +0000</pubDate>
      <link>https://dev.to/rayleighrozier/dawgs-on-top-celebrating-georgias-national-championship-with-python-kod</link>
      <guid>https://dev.to/rayleighrozier/dawgs-on-top-celebrating-georgias-national-championship-with-python-kod</guid>
      <description>&lt;p&gt;If we’ve spoken at any point in the past month, you probably know two things about me:&lt;/p&gt;

&lt;p&gt;I really want to be a web developer, and I love college football.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://i.giphy.com/media/h6ZNmYGIu18RHJulW3/giphy.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://i.giphy.com/media/h6ZNmYGIu18RHJulW3/giphy.gif" width="480" height="270"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Both of those interests were shoved to the forefront of my life on January 10th. I had my first day of coding bootcamp, while the Georgia Bulldogs won their first national championship in 42 years. I’ll let you decide which of those accomplishments is more impressive.&lt;/p&gt;

&lt;p&gt;I’ve been cheering for the Dawgs since I was old enough to hold a pompom, and on most fall Saturdays, you can find the whole Rozier family in the east end zone of Sanford Stadium. It only felt right to pay tribute to my team’s historic season with my very first bootcamp project. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://i.giphy.com/media/StJNsduYaWsWDTrArs/giphy.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://i.giphy.com/media/StJNsduYaWsWDTrArs/giphy.gif" width="480" height="270"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;My class was asked to demonstrate our knowledge of Python by creating a game over the course of a week. We were given the example of a knight fighting a goblin, but naturally, my brain went straight to football. &lt;/p&gt;

&lt;p&gt;I decided to create a game in which you become Georgia’s new head coach, and try to lead the team to another national title. It’s like those PlayStation NCAA games, but entirely text-based, so your cheating younger brother can’t throw Hail Mary’s on every turn. And of course, it’s called “Dawgs on Top.”&lt;/p&gt;

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

&lt;p&gt;My first major challenge was figuring out a scoring system, and that took up most of my first day. In the given example, the knight and goblin were supposed to lose health until one of them dies. Thankfully in football, the players don’t die when they lose, so I had to come up with a different way of declaring a winner. &lt;/p&gt;

&lt;p&gt;I decided scoring would be based on 3 major stats: offense, defense, and experience. The decisions you make as coach impact those stats, and therefore your chances of winning the game. A higher offense stat increases the number of points you can score. Higher defense  allows you to take your opponent’s points off the board. Experience impacts both sides of the ball by improving your probability on offense and defense.&lt;/p&gt;

&lt;p&gt;Once I had that basic structure, I also had to add some conditions to make the game more realistic. I wanted my game’s scores to actually &lt;em&gt;look&lt;/em&gt; like football scores. That meant no team can score only 1 or 4 points, and by the end, your offense can’t be so powerful that you score over 100 points per game. Coming up with those conditions and testing them out took the better part of an afternoon.&lt;/p&gt;

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

&lt;p&gt;Another logistical challenge I had was learning to deal with &lt;em&gt;many&lt;/em&gt; nested loops.&lt;br&gt;
While playtesting, I discovered it was impossible to quit my game if you were too deep into the season. When you asked to return to the main menu, the game would instead cycle through menus for opponents you already played. I used the power of the internet to learn about &lt;a href="https://medium.com/techtofreedom/5-ways-to-break-out-of-nested-loops-in-python-4c505d34ace7"&gt;flag variables&lt;/a&gt;, and they saved me from accidentally creating a never-ending football season.&lt;/p&gt;

&lt;p&gt;Three weeks into my course, I still have a lot to learn about Python, but making this game really helped cement what I’ve learned so far. It led to a lot of repetition and problem-solving, and I definitely feel more comfortable coding now than I did at the beginning of this week.&lt;/p&gt;

&lt;p&gt;I realize this game will only resonate with a very particular set of college football fans (and will be despised Alabama fans). That’s okay!  I had a lot of fun putting this together and winning an infinite number of national titles from the comfort of my terminal.&lt;/p&gt;

&lt;p&gt;If you’d like to give it a try, check out my &lt;a href="https://github.com/rayleighrozier/digitalcrafts/tree/main/dawgsOnTop"&gt;GitHub&lt;/a&gt;. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://i.giphy.com/media/piZ2Tv0WxCdh3JRwWz/giphy.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://i.giphy.com/media/piZ2Tv0WxCdh3JRwWz/giphy.gif" width="480" height="270"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Good luck and Go Dawgs! &lt;/p&gt;

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