<?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: Joseph</title>
    <description>The latest articles on DEV Community by Joseph (@jslee13).</description>
    <link>https://dev.to/jslee13</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%2F1249756%2F232bfe40-7329-4ec2-92e4-3579630af612.png</url>
      <title>DEV Community: Joseph</title>
      <link>https://dev.to/jslee13</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/jslee13"/>
    <language>en</language>
    <item>
      <title>Phase 4 at Flatiron (Flask)</title>
      <dc:creator>Joseph</dc:creator>
      <pubDate>Sun, 10 Mar 2024 03:52:38 +0000</pubDate>
      <link>https://dev.to/jslee13/phase-4-at-flatiron-flask-1217</link>
      <guid>https://dev.to/jslee13/phase-4-at-flatiron-flask-1217</guid>
      <description>&lt;p&gt;&lt;strong&gt;Phase 4 intro (Models, Relationships, &amp;amp; Routing):&lt;/strong&gt;&lt;br&gt;
During Phase 4 at Flatiron, I delved into the intricacies of Flask, a Python web framework known for its simplicity and flexibility. One of the fundamental concepts we explored was the concept of models, which are essentially representations of the data structure within the application. Models serve as blueprints for creating and manipulating data, allowing developers to define attributes and behaviors associated with different entities.&lt;/p&gt;

&lt;p&gt;Additionally, we delved into understanding relationships within Flask applications. These relationships define how different models interact with each other and are crucial for establishing connections between various data entities. Whether it's a one-to-one, one-to-many, or many-to-many relationship, understanding these associations is essential for designing efficient data architectures.&lt;/p&gt;

&lt;p&gt;Furthermore, we delved into the concept of routing, which plays a pivotal role in directing incoming requests to the appropriate handlers or views within the application. Routing in Flask involves mapping URLs to specific functions or methods, enabling the application to respond to client requests effectively.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Building an ORM example:&lt;/strong&gt;&lt;br&gt;
When developing complex applications, especially those involving user interactions and content management, organizing data efficiently becomes paramount. In such scenarios, relational databases shine, and SQLAlchemy, a popular ORM (Object-Relational Mapping) library for Python, offers robust tools for managing these relationships. In this blog post, we'll explore the construction of a multi-entity relationship model using SQLAlchemy, focusing on a gaming platform example.&lt;/p&gt;

&lt;p&gt;Let's consider a scenario where users can rate and review games across different platforms. We'll model this scenario using SQLAlchemy's declarative base and define the following entities: User, Game, Rating, Genre, GameGenre, Platform, and GamePlatform.&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%2Fuploads%2Farticles%2Fcqa2clkmg9sj4mnf2l9k.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%2Fuploads%2Farticles%2Fcqa2clkmg9sj4mnf2l9k.png" alt="Image description" width="800" height="510"&gt;&lt;/a&gt;&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%2Fuploads%2Farticles%2Fai4y0yw8sp7nyz5lhr0i.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%2Fuploads%2Farticles%2Fai4y0yw8sp7nyz5lhr0i.png" alt="Image description" width="800" height="402"&gt;&lt;/a&gt;&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%2Fuploads%2Farticles%2F2onigh6yyslurk84w4jh.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%2Fuploads%2Farticles%2F2onigh6yyslurk84w4jh.png" alt="Image description" width="800" height="1084"&gt;&lt;/a&gt;&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%2Fuploads%2Farticles%2F72xwywibobp1ggxjunns.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%2Fuploads%2Farticles%2F72xwywibobp1ggxjunns.png" alt="Image description" width="800" height="587"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Here's a brief overview of the relationships:&lt;/p&gt;

&lt;p&gt;⦁ User can rate multiple Game instances.&lt;br&gt;
⦁ Game can have multiple ratings from different Users.&lt;br&gt;
⦁ Game can belong to multiple Genres, and each Genre can have multiple associated Games.&lt;br&gt;
⦁ Game can be available on multiple Platforms, and each Platform can host multiple Games.&lt;br&gt;
By utilizing SQLAlchemy's relationship constructs and association proxies, we establish these complex relationships seamlessly. For instance, in the User model, we define a one-to-many relationship with Rating, representing each user's ratings. Similarly, Game has a one-to-many relationship with Rating to capture multiple ratings for each game.&lt;/p&gt;

&lt;p&gt;Moreover, we establish many-to-many relationships between Game and Genre, as well as between Game and Platform, using association tables GameGenre and GamePlatform, respectively. This allows games to belong to multiple genres and platforms, and vice versa.&lt;/p&gt;

&lt;p&gt;Using serialize_rules, we can specify serialization rules for each entity, ensuring that the serialization process handles complex relationships appropriately and avoids circular dependencies.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Wrap-up:&lt;/strong&gt;&lt;br&gt;
In conclusion, SQLAlchemy provides a powerful toolkit for modeling complex relationships in relational databases. My journey with Flask during Phase 4 at Flatiron was not just about learning a web framework; it was about understanding the core concepts that underpin web development. By grasping the concepts of models, relationships, and routing, I gained a solid foundation for building dynamic and scalable web applications using Flask. By leveraging its capabilities, developers can efficiently manage and query data across multiple entities, making it an invaluable tool for building sophisticated applications&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>flask</category>
      <category>beginners</category>
      <category>programming</category>
    </item>
    <item>
      <title>Phase 3 at Flatiron (Python)</title>
      <dc:creator>Joseph</dc:creator>
      <pubDate>Sat, 17 Feb 2024 02:29:04 +0000</pubDate>
      <link>https://dev.to/jslee13/phase-3-at-flatiron-python-jag</link>
      <guid>https://dev.to/jslee13/phase-3-at-flatiron-python-jag</guid>
      <description>&lt;p&gt;&lt;strong&gt;Phase 3 intro:&lt;/strong&gt;&lt;br&gt;
As I embark on Phase 3 of learning journey, Python takes center stage, opening doors to a realm of new possibilities. Exploring Python has been an intriguing endeavor, marked by a notable shift in our approach to code testing compared to our experiences with JavaScript. Unlike the immediate visual feedback of front-end languages like JavaScript, Python's testing process predominantly unfolds within the confines of the terminal, demanding a deeper dive into understanding code execution and behavior.&lt;/p&gt;

&lt;p&gt;Throughout my exploration of Python, I've delved into a plethora of concepts, each offering unique insights and challenges. From grasping the fundamentals of Classes &amp;amp; Instances to unraveling the intricacies of Object Relations and mastering the elegance of List Comprehension, my journey has been rich with discovery and growth. These foundational pillars form the bedrock of Python proficiency, empowering us to architect solutions with clarity and precision.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Diving more into Object Relations &amp;amp; List Comprehension:&lt;/strong&gt;&lt;br&gt;
Python's object-oriented nature empowers developers to create complex systems with ease. Understanding object relations is fundamental for effective programming. In this blog post, we delve into object relations in Python, showcasing the elegance and efficiency of list comprehensions in managing and manipulating object collections.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Understanding Object Relations:&lt;/strong&gt;&lt;br&gt;
Object-oriented programming revolves around the concept of classes and objects. Objects interact with each other through methods and attributes, forming relationships. These relationships can be one-to-one, one-to-many, or many-to-many. Python's simplicity and flexibility make it an ideal language for modeling these relationships.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;List Comprehensions:&lt;/strong&gt;&lt;br&gt;
List comprehensions are a concise and expressive way to create lists in Python. They offer a compact syntax for generating lists from iterables, making code more readable and efficient. Leveraging list comprehensions in conjunction with object relations can streamline operations and enhance code clarity.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Example Scenario:&lt;/strong&gt;&lt;br&gt;
Consider a scenario where we have two classes, Student and Course, representing a student and the courses they are enrolled in, respectively. Each student can be enrolled in multiple courses, and each course can have multiple students. Let's explore how we can manage these object relations using list comprehensions.&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%2Fuploads%2Farticles%2Fpnln28a794r0pqcjd1cc.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%2Fuploads%2Farticles%2Fpnln28a794r0pqcjd1cc.png" alt="Image description" width="800" height="435"&gt;&lt;/a&gt;&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%2Fuploads%2Farticles%2Ftfbvnwu7a651s602rajb.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%2Fuploads%2Farticles%2Ftfbvnwu7a651s602rajb.png" alt="Image description" width="800" height="650"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In this example, we define classes for Student and Course, each with appropriate methods to manage object relations. We use list comprehensions to extract relevant information, such as retrieving all students enrolled in a course or all courses taken by a student.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Benefits of List Comprehensions:&lt;/strong&gt;&lt;br&gt;
List comprehensions offer several benefits when working with object relations:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Conciseness: List comprehensions allow us to perform operations on object collections in a single line of code, reducing verbosity and improving readability.&lt;/li&gt;
&lt;li&gt;Efficiency: By leveraging list comprehensions, we can perform filtering, mapping, and transformation operations efficiently, optimizing code performance.&lt;/li&gt;
&lt;li&gt;Readability: List comprehensions express intent clearly, making it easier for other developers to understand and maintain the codebase.&lt;/li&gt;
&lt;li&gt;Flexibility: List comprehensions support conditional expressions, enabling us to filter and transform data based on specific criteria.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Conclusion:&lt;/strong&gt;&lt;br&gt;
Object relations are essential in object-oriented programming, and Python provides powerful tools like list comprehensions to manage them effectively. By combining object-oriented principles with list comprehensions, developers can write concise, readable code that efficiently handles complex relationships between objects. Mastering these techniques empowers developers to build robust and maintainable applications in Python.&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>python</category>
      <category>programming</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Phase 2 at Flatiron (React)</title>
      <dc:creator>Joseph</dc:creator>
      <pubDate>Fri, 26 Jan 2024 21:42:03 +0000</pubDate>
      <link>https://dev.to/jslee13/phase-2-at-flatiron-react-2n1e</link>
      <guid>https://dev.to/jslee13/phase-2-at-flatiron-react-2n1e</guid>
      <description>&lt;p&gt;&lt;strong&gt;Phase 2 intro:&lt;/strong&gt; &lt;/p&gt;

&lt;p&gt;In the initial stages of phase 2, the curriculum retained a similar structure as phase 1 without the orientation and as we were learning about the intricacies React. The first week proved to be more manageable compared to phase 1, due to a foundational understanding of JavaScript and Flatiron's methodology. The content was easier to grasp, given that React served as a powerful framework/library for JavaScript.&lt;/p&gt;

&lt;p&gt;Weeks 2 &amp;amp; 3 were about the same, using week 2 to practice and apply everything we learned such as: Components, Props, States, and etc. Then we were assigned to make another website for the last week of phase 2, this time utilizing React. Some of the requirements were to include at least 5 components, 3 routes, &amp;amp; fetch from a JSON server with a resting API. This project not only solidified our understanding of React but also presented an opportunity to showcase our skills in building dynamic and interactive web application.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Setting up a Form Component:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;One of the things I found out was the difference of making a form with and without React. Without it, form elements are traditionally set up directly through HTML. Contrastingly, React introduces additional steps into making a form. The process starts with creating a dedicated component that will serve as the form container, exemplified below in an excerpt from my React project.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Handling Form State with useState:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Use the 'useState' hook, which is a fundamental aspect of React that empowers components to manage state. In the Form component below, we utilize the 'useState' to track the form values dynamically. Each input field, such as "name," "genre," and "image", is associated with a state variable within the 'formValues' object. The 'setFormValue' function is then employed to update these values in response to user input.&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%2Fuploads%2Farticles%2F0r5wnxkx4ohnolxeus9c.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%2Fuploads%2Farticles%2F0r5wnxkx4ohnolxeus9c.png" alt="Image description" width="800" height="395"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Input Elements and Controlled Components:&lt;/strong&gt;&lt;br&gt;
In React, form elements are transformed into controlled components. Each input field is associated with a piece of state ('formData') and updates its value based on the state.&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%2Fuploads%2Farticles%2F0f4ckks8fhapa01ka1rc.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%2Fuploads%2Farticles%2F0f4ckks8fhapa01ka1rc.png" alt="Image description" width="800" height="936"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Handling Form Submission:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Upon submitting the form, the 'handleSubmit' function orchestrates multiple tasks. Firstly, we add the 'e.preventDefault()' to prevent the default form submission behavior in order to avoid a page reload. Next, it updates the 'videoGames' state (which is being passed from the parent component) with the new game by spreading the existing array and appending the current 'formValues'. The 'setFormValues' function is then called to reset the form to its initial state.&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%2Fuploads%2Farticles%2Fvd50evuagmk7bj5nm4jy.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%2Fuploads%2Farticles%2Fvd50evuagmk7bj5nm4jy.png" alt="Image description" width="660" height="334"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Integrating with the Backend:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;To ensure the longevity of our game data, we incorporate a fetch request to the backend API (). This POST request includes the serialized JSON representation of 'formValues'. Upon a successful response, the 'updateGames' function (which is also being passed from the parent component) is invoked to synchronize the application state with the latest data that is being fetched.&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%2Fuploads%2Farticles%2F1ra4sgntxi01m9umtrvo.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%2Fuploads%2Farticles%2F1ra4sgntxi01m9umtrvo.png" alt="Image description" width="655" height="298"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Conclusion:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This new form component showcases the seamless integration of React's state management and API communication, providing a robust foundation for handling user input and persisting data. This implementation not only ensures a smooth user experience but also lays the groundwork for scalability for future projects.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>beginners</category>
      <category>react</category>
    </item>
    <item>
      <title>Phase 1 at Flatiron (JavaScript)</title>
      <dc:creator>Joseph</dc:creator>
      <pubDate>Sat, 06 Jan 2024 00:21:04 +0000</pubDate>
      <link>https://dev.to/jslee13/phase-1-at-flatiron-4kop</link>
      <guid>https://dev.to/jslee13/phase-1-at-flatiron-4kop</guid>
      <description>&lt;p&gt;&lt;strong&gt;Phase 1 quick summary:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The start of my first phase at Flatiron School has been quite the experience. The first week was overwhelming to say the least due to the amount of JavaScript that we had to learn in such a short period of time. &lt;/p&gt;

&lt;p&gt;Then during the second week, everything started to click as we were applying the concepts such as arrays, objects, functions, etc. into our practice labs. &lt;/p&gt;

&lt;p&gt;Going into the 3rd week, working on the website project was an exciting challenge that tested me on what I learned with JavaScript and CSS and being able to create a functional website, made it all the worthwhile.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What I learned:&lt;/strong&gt;&lt;br&gt;
Within my phase-1 experience, there were many different concepts that I learned within JavaScript and CSS. Below is one thing I have learned that I felt what was most intriguing and stood out during my journey through JavaScript for phase-1.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;.addEventListener():&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;One of the most useful codes that I have learned has involved using an .addEventListener(). This form of method uses an "event", which will then trigger a callback function or object. When the event is used, then it will perform the action that the developer intended. Some of the events that are used for event listeners are submit, click, etc. As most users would recognize from some of the example events, submit would be the event that is using information a user enters in a form and is submitted. Click occurs when a user clicks an element within the webpage, like clicking a link within the webpage and being sent to the link that has been clicked.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;For example:&lt;/strong&gt;&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%2Fuploads%2Farticles%2Fymbysfsurnto9eu1dze4.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%2Fuploads%2Farticles%2Fymbysfsurnto9eu1dze4.png" alt="Image description" width="634" height="685"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Through the example from my phase-1 project with an event listener, this event listener will submit a new form adding a new character into the array of current characters for our website.&lt;br&gt;
We start with a variable in order to target the form. Then we use that variable and add the .addEventListener(). Within the event listener, we used the "submit" event and added a function that targets "e". The e.preventDefault() is placed for "submit" events in order for the page to not refresh. &lt;/p&gt;

&lt;p&gt;Then we create another variable for the new character that needs to be added an create an array with objects with the information of the character. After, we make a new array by putting the new character before the existing characters from the API with spread syntax. The newCharacter variable is placed into our renderCharacters function, which the function will show the information for our new character in our website.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Wrap-up:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Just from this one example, it shows how important event listeners are for the daily user experience with simple tasks. Such as submitting information for creating an account or clicking on images/links to access more information. &lt;/p&gt;

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