<?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>Forem: Mohamed Fathy</title>
    <description>The latest articles on Forem by Mohamed Fathy (@mohamed_fathy_5fbdd59a420).</description>
    <link>https://forem.com/mohamed_fathy_5fbdd59a420</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%2F3543868%2Fc89771a1-fbc0-4984-8588-be330f6b9160.png</url>
      <title>Forem: Mohamed Fathy</title>
      <link>https://forem.com/mohamed_fathy_5fbdd59a420</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/mohamed_fathy_5fbdd59a420"/>
    <language>en</language>
    <item>
      <title>How I built a professional portfolio using React, Redux, and APIs.</title>
      <dc:creator>Mohamed Fathy</dc:creator>
      <pubDate>Fri, 03 Oct 2025 15:12:26 +0000</pubDate>
      <link>https://forem.com/mohamed_fathy_5fbdd59a420/how-i-built-a-professional-portfolio-using-react-redux-and-apis-2km</link>
      <guid>https://forem.com/mohamed_fathy_5fbdd59a420/how-i-built-a-professional-portfolio-using-react-redux-and-apis-2km</guid>
      <description>&lt;h1&gt;
  
  
  Introduction
&lt;/h1&gt;

&lt;p&gt;In this article, I’ll walk you through how I built my own multi-page portfolio website using React.&lt;br&gt;&lt;br&gt;
The goal was to showcase my projects, technical skills, blog posts, and contact form — all built with modern technologies like React, Redux, and APIs.&lt;/p&gt;




&lt;h1&gt;
  
  
  Project Goals
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;Build a responsive and professional portfolio UI.&lt;/li&gt;
&lt;li&gt;Use React Router for navigation between pages.&lt;/li&gt;
&lt;li&gt;Fetch dynamic content from real-world APIs.&lt;/li&gt;
&lt;li&gt;Use Redux for global state management.&lt;/li&gt;
&lt;li&gt;Create a contact form that actually sends messages.&lt;/li&gt;
&lt;/ul&gt;




&lt;h1&gt;
  
  
  Tech Stack
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt; React (Functional Components + Hooks)&lt;/li&gt;
&lt;li&gt; React Router&lt;/li&gt;
&lt;li&gt; Redux &amp;amp; Redux Thunk&lt;/li&gt;
&lt;li&gt; Axios for API calls&lt;/li&gt;
&lt;li&gt; Quotable API (Random quotes)&lt;/li&gt;
&lt;li&gt; GitHub API (Public repos)&lt;/li&gt;
&lt;li&gt; Dev.to API (Blog posts)&lt;/li&gt;
&lt;li&gt; Formspree (Contact form)&lt;/li&gt;
&lt;/ul&gt;




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

&lt;h2&gt;
  
  
  🏠 Home
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Short personal introduction&lt;/li&gt;
&lt;li&gt;Random motivational quote fetched from &lt;a href="https://api.quotable.io/random" rel="noopener noreferrer"&gt;Quotable API&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Button to load new quotes&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  👤 About
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Bio, education, and skills&lt;/li&gt;
&lt;li&gt;Responsive layout with skill tags and profile picture&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  💻 Projects
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;GitHub repositories displayed dynamically using:&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>portfolio</category>
      <category>tutorial</category>
      <category>react</category>
      <category>api</category>
    </item>
  </channel>
</rss>
