<?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: Elvis24-tech</title>
    <description>The latest articles on DEV Community by Elvis24-tech (@elvis24tech).</description>
    <link>https://dev.to/elvis24tech</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%2F2982355%2F504d1da4-82f2-4cf2-b8d1-b3d83f6a1dd1.png</url>
      <title>DEV Community: Elvis24-tech</title>
      <link>https://dev.to/elvis24tech</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/elvis24tech"/>
    <language>en</language>
    <item>
      <title>Building a Personal Diary App with React and Firebase: A Complete Journey.</title>
      <dc:creator>Elvis24-tech</dc:creator>
      <pubDate>Sun, 27 Apr 2025 18:49:20 +0000</pubDate>
      <link>https://dev.to/elvis24tech/building-a-personal-diary-app-with-react-and-firebase-a-complete-journey-2950</link>
      <guid>https://dev.to/elvis24tech/building-a-personal-diary-app-with-react-and-firebase-a-complete-journey-2950</guid>
      <description>&lt;p&gt;Introduction&lt;/p&gt;

&lt;p&gt;In today's digital world, journaling has evolved from pen-and-paper notebooks to secure, cloud-based applications. In this blog post, I'll walk you through my journey of building a Personal Diary App using React.js for the frontend and Firebase for backend services, including authentication and database management.&lt;/p&gt;

&lt;p&gt;Features of the Diary App&lt;/p&gt;

&lt;p&gt;User Authentication&lt;br&gt;
CRUD Operations for Diary Entries&lt;br&gt;
Dark Mode Toggle&lt;br&gt;
Real-Time Data Sync&lt;br&gt;
Responsive Design&lt;/p&gt;

&lt;p&gt;Tech Stack&lt;/p&gt;

&lt;p&gt;Frontend: React.js, CSS&lt;br&gt;
Backend: Firebase (Authentication + Firestore)&lt;br&gt;
Date Handling: date-fns&lt;br&gt;
State Management: React Hooks &lt;/p&gt;

&lt;p&gt;Development Process&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Setting Up Firebase&lt;br&gt;
Before diving into React, I configured Firebase:&lt;br&gt;
Created a Firebase project&lt;br&gt;
Set up Firestore Database with security rules&lt;br&gt;
Enabled Email/Password Authentication&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Building the React App&lt;br&gt;
Authentication Flow&lt;br&gt;
Used createUserWithEmailAndPassword and signInWithEmailAndPassword&lt;br&gt;
Managed user state with onAuthStateChanged&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Challenges &amp;amp; Solutions&lt;br&gt;
Buttons Not Responding on First Click&lt;br&gt;
Entries Not Displaying After Adding&lt;br&gt;
Firebase Permission Errors&lt;/p&gt;

&lt;p&gt;Future Improvements&lt;br&gt;
 Add rich text editing&lt;br&gt;
Implement tags/categories for entries&lt;br&gt;
Enable image uploads with Firebase Storage&lt;br&gt;
Add offline support with Firestore persistence&lt;/p&gt;

&lt;p&gt;Conclusion&lt;/p&gt;

&lt;p&gt;Building this diary app was a fantastic learning experience in React + Firebase integration. It reinforced the importance of proper state management, error handling, and performance optimization.&lt;br&gt;
If you're looking to build a similar project, I highly recommend this stack for its simplicity and scalability.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>MY FAST-FOOD WEBSITE BLOG</title>
      <dc:creator>Elvis24-tech</dc:creator>
      <pubDate>Thu, 27 Mar 2025 15:46:21 +0000</pubDate>
      <link>https://dev.to/elvis24tech/my-fast-food-website-blog-2ipe</link>
      <guid>https://dev.to/elvis24tech/my-fast-food-website-blog-2ipe</guid>
      <description>&lt;p&gt;Dev.to is a great community for developers that can help make any project easier.&lt;/p&gt;

&lt;p&gt;Before diving into the code, it’s important to plan the structure of your fast food website. For mine, I focused on these essential components:&lt;/p&gt;

&lt;p&gt;Menu Section: Display food items, categories &lt;br&gt;
Contact Information: Give customers easy ways to contact the restaurant.&lt;/p&gt;

&lt;p&gt;I decided to use HTML, CSS, and Javascript for the designing of the webpage.&lt;/p&gt;

&lt;p&gt;Once all the features were in place, I deployed the website through GitHub for it to be live.`&lt;/p&gt;

&lt;p&gt;Below is the HTML code &lt;code&gt;&lt;/code&gt;&lt;br&gt;
&amp;lt;!DOCTYPE html&amp;gt;&lt;br&gt;
&lt;br&gt;
&lt;/p&gt;
&lt;br&gt;
    &lt;br&gt;
    &lt;br&gt;
    Fresh Fast-foods Website&lt;br&gt;
    &lt;br&gt;
&lt;br&gt;



    &lt;h1&gt;Fresh-Fast Foods App&lt;/h1&gt;
    &lt;p&gt;Welcome To Our Page&lt;/p&gt;
    
        &lt;ul&gt;
            &lt;li&gt;Home&lt;/li&gt;
            &lt;li&gt;About&lt;/li&gt;
            &lt;li&gt;Menu&lt;/li&gt;
            &lt;li&gt;Contact&lt;/li&gt;

        &lt;/ul&gt;
    

    


    &lt;h2&gt;We Prepare and Deliver our Fresh Meals&lt;/h2&gt;
    
        &lt;p&gt;Have you ever wondered on how you could get fresh,hot,yummy and delicious food at the place of your own comfort?Well,you don't have to worry about that anymore!We prepare all kinds of foods depending on the orders made by our customers and deliver them to their workplaces,homeplaces or wherever they are currently located.&lt;/p&gt;
    



    &lt;h2&gt;About Us&lt;/h2&gt;
    
        &lt;p&gt;We are a group of local chefs that are trying to compete with the restaurant indusry as we believe we have the potential to do better.&lt;/p&gt;
    



    &lt;h2&gt;Our Menu&lt;/h2&gt;
    Select a food category:
    
        Beef
        Chicken
        Vegetarian
        Seafood
        Pasta
    

    

&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;section id="contact"&amp;gt;
    &amp;lt;h2&amp;gt;Contact Us&amp;lt;/h2&amp;gt;
    &amp;lt;p&amp;gt;Place your order here by dialing the number below&amp;lt;/p&amp;gt;
    &amp;lt;h3&amp;gt;0732353764 / 0774506579&amp;lt;/h3&amp;gt;
&amp;lt;/section&amp;gt;
&lt;/code&gt;&lt;/pre&gt;


&lt;p&gt;Thanks For Visiting Our Page!&lt;/p&gt;


    @2025 | FRESH FAST-FOODS | ALL RIGHTS RESERVED






&lt;p&gt;Below is the CSS code`body {&lt;br&gt;
    font-family: Arial, sans-serif;&lt;br&gt;
    margin: 0;&lt;br&gt;
    padding: 0;&lt;br&gt;
    background-color: whitesmoke;&lt;br&gt;
}&lt;/p&gt;

&lt;p&gt;header {&lt;br&gt;
    background-color: chocolate;&lt;br&gt;
    padding: 20px;&lt;br&gt;
    color: white;&lt;br&gt;
    text-align: center;&lt;br&gt;
}&lt;/p&gt;

&lt;p&gt;header nav ul {&lt;br&gt;
    list-style-type: none;&lt;br&gt;
    padding: 0;&lt;br&gt;
}&lt;/p&gt;

&lt;p&gt;header nav ul li {&lt;br&gt;
    display: inline;&lt;br&gt;
    margin-right: 15px;&lt;br&gt;
}&lt;/p&gt;

&lt;p&gt;header nav ul li a {&lt;br&gt;
    color: white;&lt;br&gt;
    text-decoration: none;&lt;br&gt;
    font-weight: bold;&lt;br&gt;
}&lt;/p&gt;

&lt;h1&gt;
  
  
  home {
&lt;/h1&gt;

&lt;pre class="highlight plaintext"&gt;&lt;code&gt;text-align: center;
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;}&lt;/p&gt;

&lt;h1&gt;
  
  
  about {
&lt;/h1&gt;

&lt;pre class="highlight plaintext"&gt;&lt;code&gt;text-align: center;
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;}&lt;/p&gt;

&lt;h1&gt;
  
  
  menu {
&lt;/h1&gt;

&lt;pre class="highlight plaintext"&gt;&lt;code&gt;padding: 20px;
text-align: center;
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;}&lt;/p&gt;

&lt;h1&gt;
  
  
  food-items {
&lt;/h1&gt;

&lt;pre class="highlight plaintext"&gt;&lt;code&gt;display: flex;
justify-content: space-around;
flex-wrap: wrap;
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;}&lt;/p&gt;

&lt;p&gt;.food-item {&lt;br&gt;
    background-color: white;&lt;br&gt;
    border: 1px solid #ddd;&lt;br&gt;
    margin: 10px;&lt;br&gt;
    padding: 15px;&lt;br&gt;
    width: 200px;&lt;br&gt;
    text-align: center;&lt;br&gt;
    border-radius: 8px;&lt;br&gt;
    box-shadow: 0px 4px 6px rgba(0, 0, 0, 0.1);&lt;br&gt;
}&lt;/p&gt;

&lt;p&gt;.food-item img {&lt;br&gt;
    width: 100%;&lt;br&gt;
    border-radius: 8px;&lt;br&gt;
}&lt;/p&gt;

&lt;p&gt;footer {&lt;br&gt;
    background-color: grey;&lt;br&gt;
    color: white;&lt;br&gt;
    text-align: center;&lt;/p&gt;

&lt;p&gt;}&lt;br&gt;
&lt;code&gt;&lt;br&gt;
Below is the Index.js code&lt;/code&gt;const API_URL = '&lt;a href="http://localhost:3000/foods" rel="noopener noreferrer"&gt;http://localhost:3000/foods&lt;/a&gt;'; &lt;/p&gt;

&lt;p&gt;function fetchFoodItems() {&lt;br&gt;
    const category = document.getElementById('category').value;&lt;br&gt;
    console.log(&lt;code&gt;Fetching food items for category: ${category}&lt;/code&gt;);&lt;/p&gt;

&lt;pre class="highlight plaintext"&gt;&lt;code&gt;fetch(`${API_URL}?category=${category}`)
    .then(response =&amp;gt; response.json())
    .then(data =&amp;gt; {
        console.log('Fetched food data:', data);  
        const foodItemsContainer = document.getElementById('food-items');
        foodItemsContainer.innerHTML = '';
        if (data.length === 0) {
            foodItemsContainer.innerHTML = `&amp;lt;p&amp;gt;No items found for this category.&amp;lt;/p&amp;gt;`;
        } else {
            data.forEach(food =&amp;gt; {
                const foodItemDiv = document.createElement('div');
                foodItemDiv.classList.add('food-item');
                foodItemDiv.innerHTML = `
                    &amp;lt;img src="${food.image}" alt="${food.name}"&amp;gt;
                    &amp;lt;h3&amp;gt;${food.name}&amp;lt;/h3&amp;gt;
                `;
                foodItemsContainer.appendChild(foodItemDiv);
            });
        }
    })
    .catch(error =&amp;gt; {
        console.error('Error fetching food items:', error);
    });
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;}&lt;/p&gt;

&lt;p&gt;document.getElementById('category').addEventListener('change', fetchFoodItems);&lt;/p&gt;

&lt;p&gt;`&lt;/p&gt;

&lt;p&gt;Below is the db.json code`{&lt;br&gt;
  "foods": [&lt;br&gt;
    {&lt;br&gt;
      "id": 1,&lt;br&gt;
      "name": "Beef Burger",&lt;br&gt;
      "category": "Beef",&lt;br&gt;
      "image": "&lt;a href="https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSyaMhdk3xX5HR_uLh5LY6FzKhaE138Xow6oA&amp;amp;s" rel="noopener noreferrer"&gt;https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSyaMhdk3xX5HR_uLh5LY6FzKhaE138Xow6oA&amp;amp;s&lt;/a&gt;",&lt;br&gt;
      "description": "A delicious beef burger."&lt;br&gt;
    },&lt;br&gt;
    {&lt;br&gt;
      "id": 2,&lt;br&gt;
      "name": "Chicken Sandwich",&lt;br&gt;
      "category": "Chicken",&lt;br&gt;
      "image": "&lt;a href="https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcQWHx2BO0NsPumEnOmQoJba0hSbKS4PdSYe-w&amp;amp;s" rel="noopener noreferrer"&gt;https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcQWHx2BO0NsPumEnOmQoJba0hSbKS4PdSYe-w&amp;amp;s&lt;/a&gt;",&lt;br&gt;
      "description": "A tasty chicken sandwich."&lt;br&gt;
    },&lt;br&gt;
    {&lt;br&gt;
      "id": 3,&lt;br&gt;
      "name": "Vegetarian Pizza",&lt;br&gt;
      "category": "Vegetarian",&lt;br&gt;
      "image": "&lt;a href="https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcRzDXUJ38GqbEnLh0wJbXfEz2tV6thEpGHCdw&amp;amp;s" rel="noopener noreferrer"&gt;https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcRzDXUJ38GqbEnLh0wJbXfEz2tV6thEpGHCdw&amp;amp;s&lt;/a&gt;",&lt;br&gt;
      "description": "A fresh vegetarian pizza."&lt;br&gt;
    },&lt;/p&gt;

&lt;pre class="highlight plaintext"&gt;&lt;code&gt;{
  "id": 4,
  "name": "Shrimp Pasta",
  "category": "Seafood",
  "image": "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcTTSWNdWIH2seFK8YJhwggcsCHkNGpYOMKuVw&amp;amp;s",
  "description": "A creamy shrimp pasta."
},
{
  "id": 5,
  "name": "Grilled Salmon",
  "category": "Seafood",
  "image": "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcR1EMVBqSZJkKeVkyNP6vEXwYDTp_bhGsjRzA&amp;amp;s",
  "description": "Grilled salmon with fresh herbs."
},
{
  "id": 6,
  "name": "Penne Arrabbiata",
  "category": "Pasta",
  "image": "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcT25Trkh6444t3HiaaoDfJrxEh2kMncLXq5sA&amp;amp;s",
  "description": "Penne pasta in a spicy tomato sauce."
},
{
  "id": 7,
  "name": "Lasagna",
  "category": "Pasta",
  "image": "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcRJblMsAcqpr1tf8JYIwiRVoJwx1L_GwnZqVw&amp;amp;s",
  "description": "Classic Italian lasagna."
}
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;]&lt;br&gt;
}&lt;br&gt;
`&lt;/p&gt;

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