<?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: Gladys Barasa</title>
    <description>The latest articles on DEV Community by Gladys Barasa (@gladdoh).</description>
    <link>https://dev.to/gladdoh</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%2F3290971%2F5f2d6b92-7b70-4e2e-bf58-eb5fb1be07e6.png</url>
      <title>DEV Community: Gladys Barasa</title>
      <link>https://dev.to/gladdoh</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/gladdoh"/>
    <language>en</language>
    <item>
      <title>Day 4 of Django</title>
      <dc:creator>Gladys Barasa</dc:creator>
      <pubDate>Mon, 30 Jun 2025 18:56:46 +0000</pubDate>
      <link>https://dev.to/gladdoh/day-4-of-django-2p93</link>
      <guid>https://dev.to/gladdoh/day-4-of-django-2p93</guid>
      <description>&lt;h3&gt;
  
  
  Introduction
&lt;/h3&gt;

&lt;p&gt;Hello, today is my fourth day of the 20 days of Django and I am excited to share what I did. I worked on my project structure. Stay with me..&lt;/p&gt;

&lt;p&gt;Since I already installed django and python, I was set to begin.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 1: Create a Django Project
&lt;/h2&gt;

&lt;p&gt;Open a terminal (or PyCharm terminal) and run:&lt;br&gt;
django-admin startproject ProjectTG&lt;br&gt;
cd ProjectTG&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fq5i88wdrr83mogichn0u.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fq5i88wdrr83mogichn0u.png" alt="Image description" width="321" height="80"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This creates the &lt;code&gt;ProjectTG&lt;/code&gt; folder with the main project files.&lt;/p&gt;




&lt;h2&gt;
  
  
  Step 2: Create Two Django Apps
&lt;/h2&gt;

&lt;p&gt;Let’s name them &lt;code&gt;blog&lt;/code&gt; and &lt;code&gt;store&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;This creates two new folders: &lt;code&gt;blog/&lt;/code&gt; and &lt;code&gt;store/&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8akreleyvsxksu0wjufh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8akreleyvsxksu0wjufh.png" alt="Image description" width="416" height="71"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 3: Register Apps in &lt;code&gt;settings.py&lt;/code&gt;
&lt;/h2&gt;

&lt;p&gt;In &lt;code&gt;ProjectTG/settings.py&lt;/code&gt;, add your apps:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fl2uig33z8l3mvlkp6o2i.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fl2uig33z8l3mvlkp6o2i.png" alt="Image description" width="305" height="134"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 4: Set Up Templates Directory
&lt;/h2&gt;

&lt;p&gt;Still in &lt;code&gt;settings.py&lt;/code&gt;, configure Django to look in a &lt;code&gt;templates&lt;/code&gt; directory:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgvlvqtvb98hb06cs24yk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgvlvqtvb98hb06cs24yk.png" alt="Image description" width="270" height="54"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Then, I created this structure:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fw1msrfjn5hu016rwuybw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fw1msrfjn5hu016rwuybw.png" alt="Image description" width="353" height="94"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Also create &lt;code&gt;templates&lt;/code&gt; folders in each app:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fz23u4th21jc8qcdc4k01.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fz23u4th21jc8qcdc4k01.png" alt="Image description" width="279" height="108"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 5: Define Views for Each App
&lt;/h2&gt;

&lt;p&gt;Each app will have two views.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;code&gt;blog/views.py&lt;/code&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnxyarrivldf6dde4lwfk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnxyarrivldf6dde4lwfk.png" alt="Image description" width="406" height="169"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;code&gt;store/views.py&lt;/code&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpricquj6gsu6008asj2p.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpricquj6gsu6008asj2p.png" alt="Image description" width="472" height="170"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 6: Create URL Configs
&lt;/h2&gt;

&lt;h3&gt;
  
  
  In &lt;code&gt;ProjectTG/urls.py&lt;/code&gt;:
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fk2fuwiub8swe59jhxprr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fk2fuwiub8swe59jhxprr.png" alt="Image description" width="355" height="180"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Create &lt;code&gt;blog/urls.py&lt;/code&gt;:
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fp040rboyipd0i9k970ke.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fp040rboyipd0i9k970ke.png" alt="Image description" width="434" height="156"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Create &lt;code&gt;store/urls.py&lt;/code&gt;:
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbtsa4idfxv5l3rd8pcc6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbtsa4idfxv5l3rd8pcc6.png" alt="Image description" width="539" height="176"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 7: Add Templates
&lt;/h2&gt;

&lt;p&gt;Create these HTML files:&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;code&gt;blog/templates/blog/home.html&lt;/code&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F36ds2z79ii5zrl4dfqft.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F36ds2z79ii5zrl4dfqft.png" alt="Image description" width="301" height="44"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;code&gt;blog/templates/blog/about.html&lt;/code&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fv38mvypy5yj0gmpmeuqp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fv38mvypy5yj0gmpmeuqp.png" alt="Image description" width="224" height="47"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;code&gt;store/templates/store/home.html&lt;/code&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fljuorh23mf14rzjb7exb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fljuorh23mf14rzjb7exb.png" alt="Image description" width="322" height="44"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;code&gt;store/templates/store/products.html&lt;/code&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6n7gwq3ijhh5r4p2vvuf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6n7gwq3ijhh5r4p2vvuf.png" alt="Image description" width="223" height="46"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 9: Run the Server
&lt;/h2&gt;

&lt;p&gt;Start the Django development server:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fphgh4rjt9mi97qwyn96i.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fphgh4rjt9mi97qwyn96i.png" alt="Image description" width="308" height="41"&gt;&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;The process was a little bit challenging but I am glad I managed&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>programming</category>
      <category>javascript</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Day 2 of Django</title>
      <dc:creator>Gladys Barasa</dc:creator>
      <pubDate>Thu, 26 Jun 2025 12:24:02 +0000</pubDate>
      <link>https://dev.to/gladdoh/day-2-of-django-k48</link>
      <guid>https://dev.to/gladdoh/day-2-of-django-k48</guid>
      <description>&lt;h2&gt;
  
  
  Git &amp;amp; GitHub Made Easy: Master Forking, Collaboration, PRs &amp;amp; More in Simple Steps
&lt;/h2&gt;

&lt;p&gt;I carried out research on the above activities and learnt a lot about them. Let's break down 8 essential Git and GitHub skills every developer should know.&lt;/p&gt;

&lt;p&gt;I used the following resources for my research and learning process&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.atlassian.com/git/tutorials/what-is-version-control#:~:text=Version%20control%2C%20also%20known%20as,to%20source%20code%20over%20time." rel="noopener noreferrer"&gt;VERSION CONTROL&lt;/a&gt;  &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;(&lt;a href="https://github.com/resources/articles/software-development/what-is-version-control" rel="noopener noreferrer"&gt;https://github.com/resources/articles/software-development/what-is-version-control&lt;/a&gt;)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;(&lt;a href="https://about.gitlab.com/topics/version-control/" rel="noopener noreferrer"&gt;https://about.gitlab.com/topics/version-control/&lt;/a&gt;)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://skills.github.com" rel="noopener noreferrer"&gt;GITHUB SKILLS&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;(&lt;a href="https://docs.github.com/en/get-started/start-your-journey/git-and-github-learning-resources" rel="noopener noreferrer"&gt;https://docs.github.com/en/get-started/start-your-journey/git-and-github-learning-resources&lt;/a&gt;)&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  1. Forking
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Forking means copying someone else's repository to your own GitHub account.&lt;/li&gt;
&lt;li&gt; You can experiment or contribute without affecting the original project.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  2. Collaboration
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Working on a project with others—sharing changes, assigning tasks, reviewing code, and more.&lt;/li&gt;
&lt;li&gt;Why it's useful: You build together, faster.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  3. Pull Requests (PRs)
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt; A pull request is how you propose changes to someone’s project or branch.&lt;/li&gt;
&lt;li&gt;Why it's useful: Others can review, discuss, and approve your code before merging.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  4. Merge Conflicts
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Happens when Git can’t automatically combine changes from different branches.&lt;/li&gt;
&lt;li&gt;Why it's useful: Teaches you to resolve code disagreements and avoid overwrites.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  5. Code Review
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Reviewing someone else's code changes and suggesting improvements.&lt;/li&gt;
&lt;li&gt;Why it's useful: Improves code quality, catches bugs, and enhances learning.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  6. GitHub Issues
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Track bugs, features, and tasks using GitHub’s built-in issue tracker.&lt;/li&gt;
&lt;li&gt;Why it's useful: Helps manage development tasks in a structured way.&lt;/li&gt;
&lt;/ul&gt;

&lt;ol&gt;
&lt;li&gt;Git Commands
What it is: Terminal commands for tracking, committing, and pushing changes.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Must-Know Commands:
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Foij9ljsgr23218djd8pu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Foij9ljsgr23218djd8pu.png" alt="Image description" width="250" height="191"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  8. Pushing Changes to GitHub
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt; After committing your work locally, you use git push to upload it to GitHub.&lt;/li&gt;
&lt;li&gt;Why it's useful: Keeps your remote repository in sync with your local work.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  My conclusion
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Learning Git and GitHub is like learning the language of collaboration. &lt;/li&gt;
&lt;li&gt;Start small, practice often, and don’t hesitate to contribute to open-source projects. The more you pull, the better you get.&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>webdev</category>
      <category>beginners</category>
      <category>github</category>
    </item>
    <item>
      <title>My First article on Dev Community</title>
      <dc:creator>Gladys Barasa</dc:creator>
      <pubDate>Tue, 24 Jun 2025 20:09:45 +0000</pubDate>
      <link>https://dev.to/gladdoh/setting-up-git-python-wsl-docker-github-ssh-on-windows-1ge7</link>
      <guid>https://dev.to/gladdoh/setting-up-git-python-wsl-docker-github-ssh-on-windows-1ge7</guid>
      <description>&lt;p&gt;&lt;strong&gt;Setting Up Git, Python, WSL, Docker &amp;amp; GitHub SSH on Windows"&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Setting up a modern development environment on Windows can feel like a maze—between Git, Python, WSL, Docker, and SSH keys, it’s easy to get overwhelmed. But hey don't give up &lt;/li&gt;
&lt;li&gt;In this step-by-step guide, I’ll walk you through everything I did to set up a powerful and efficient development workflow on Windows that’s ready for serious coding, DevOps, and cross-platform development.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;** Tools We’ll Set Up:**&lt;br&gt;
-Git&lt;br&gt;
-Python 3.10+&lt;br&gt;
-Text Editor (VS Code or PyCharm)&lt;br&gt;
-WSL (Windows Subsystem for Linux)&lt;br&gt;
-Docker&lt;br&gt;
-GitHub SSH Authentication&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Install Git
&lt;/h2&gt;

&lt;p&gt;Git is essential for version control and working with GitHub.&lt;/p&gt;

&lt;p&gt;Steps:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Download Git from &lt;a href="https://git-scm.com/downloads" rel="noopener noreferrer"&gt;git-scm.com&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Run the installer (use default options)&lt;/li&gt;
&lt;li&gt;Restart your terminal
Verify:&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4i3s50bmfkaip183gizw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4i3s50bmfkaip183gizw.png" alt="Image description" width="97" height="26"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  2.Install Python 3.10+
&lt;/h2&gt;

&lt;p&gt;Steps:&lt;br&gt;
Download Python 3.10+ from: &lt;a href="https://www.python.org/downloads/" rel="noopener noreferrer"&gt;https://www.python.org/downloads/&lt;/a&gt;&lt;br&gt;
During setup:&lt;br&gt;
 Check “Add Python to PATH”&lt;br&gt;
Click Install Now&lt;br&gt;
Verify:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fiiewrodskd8pdrvwuufl.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fiiewrodskd8pdrvwuufl.png" alt="Image description" width="125" height="28"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  3.  Choose a Code Editor
&lt;/h2&gt;

&lt;p&gt;I chose *&lt;em&gt;PyCharm *&lt;/em&gt; for my workflow&lt;br&gt;
-Download: &lt;a href="https://www.jetbrains.com/pycharm/download/" rel="noopener noreferrer"&gt;https://www.jetbrains.com/pycharm/download/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;-Choose Community Edition (Free)&lt;/p&gt;

&lt;p&gt;-Install &lt;/p&gt;

&lt;h2&gt;
  
  
  4.Install WSL (Linux for Windows)
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;WSL lets you run Linux commands and tools directly on Windows.
&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Ensure the PC has virtualization enabled&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Open PowerShell as Administrator&lt;br&gt;
&lt;strong&gt;Run:&lt;/strong&gt;&lt;br&gt;
wsl --install&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;This installs Ubuntu by default&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Restart your PC&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Verify:&lt;br&gt;
wsl --version&lt;/p&gt;

&lt;h2&gt;
  
  
  5. Install Docker
&lt;/h2&gt;

&lt;p&gt;Docker lets you run containers for development and testing.&lt;/p&gt;

&lt;p&gt;Steps:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Download Docker Desktop: &lt;a href="https://www.docker.com/products/docker-desktop/" rel="noopener noreferrer"&gt;https://www.docker.com/products/docker-desktop/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;During installation:&lt;/li&gt;
&lt;li&gt;Enable WSL2 Integration&lt;/li&gt;
&lt;li&gt;Start Docker and log in&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Verify:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fonexp5zakx0l6ygtpdrj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fonexp5zakx0l6ygtpdrj.png" alt="Image description" width="123" height="29"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  6. Configure Git with GitHub via SSH
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Step A: Generate SSH Key&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnv2jlnqprlezf01ugu21.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnv2jlnqprlezf01ugu21.png" alt="Image description" width="352" height="44"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Press Enter to accept the default file location&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step B: Start ssh-agent and add your key&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzt6x45hkcjac80mbuuxp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzt6x45hkcjac80mbuuxp.png" alt="Image description" width="194" height="49"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step C: Add the Key to GitHub&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7ow9e5w3fvmlmwjo1dso.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7ow9e5w3fvmlmwjo1dso.png" alt="Image description" width="187" height="36"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Copy the output&lt;/li&gt;
&lt;li&gt;Go to GitHub → Settings → SSH and GPG Keys → New SSH Key&lt;/li&gt;
&lt;li&gt;Paste and save&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Step D: Test SSH Connection&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fa2dpszu6q47ec6ny56pu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fa2dpszu6q47ec6ny56pu.png" alt="Image description" width="167" height="26"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fs9swvq8a6y0dh8mwrkof.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fs9swvq8a6y0dh8mwrkof.png" alt="Image description" width="339" height="29"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Setting all this up may seem like a lot, but now I’ve built a powerful, environment right on my Windows machine. This setup is ideal for backend development, Python scripting, and DevOps workflows.&lt;/p&gt;

&lt;p&gt;Your thoughts??&lt;/p&gt;

</description>
      <category>python</category>
      <category>git</category>
    </item>
  </channel>
</rss>
