<?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: zipporahmutanu04</title>
    <description>The latest articles on DEV Community by zipporahmutanu04 (@zipporahmutanu04).</description>
    <link>https://dev.to/zipporahmutanu04</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%2F3289757%2Faf1aa658-6afd-4089-aa1a-a6e0c6243e6e.png</url>
      <title>DEV Community: zipporahmutanu04</title>
      <link>https://dev.to/zipporahmutanu04</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/zipporahmutanu04"/>
    <language>en</language>
    <item>
      <title>Day 6: Django Models Made Simple: A Beginner’s Guide With Code Examples</title>
      <dc:creator>zipporahmutanu04</dc:creator>
      <pubDate>Thu, 03 Jul 2025 10:16:38 +0000</pubDate>
      <link>https://dev.to/zipporahmutanu04/day-6-django-models-made-simple-a-beginners-guide-with-code-examples-4njk</link>
      <guid>https://dev.to/zipporahmutanu04/day-6-django-models-made-simple-a-beginners-guide-with-code-examples-4njk</guid>
      <description>&lt;h2&gt;
  
  
  &lt;strong&gt;🎓 What is a Django Model?&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;When you build a web application, you almost always need to store data — like users, posts, products, comments, etc.&lt;br&gt;
This data is stored in a database (e.g., SQLite, PostgreSQL, MySQL).&lt;/p&gt;

&lt;p&gt;Instead of writing SQL queries by hand, Django lets you use models, which are simple Python classes.&lt;/p&gt;

&lt;p&gt;📌 A Django model is just a Python class that describes what your data looks like.&lt;br&gt;
📌 Django then takes that class and creates the actual database table for you.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;📄 How do you write a model?&lt;/strong&gt;&lt;br&gt;
You write models in the models.py file of your Django app.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;from django.db import models&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;class Post(models.Model):
    title = models.CharField(max_length=200)
    body = models.TextField()
    published_at = models.DateTimeField(auto_now_add=True)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;What does this do?&lt;/strong&gt;&lt;br&gt;
✅ Django will create a table named post.&lt;br&gt;
✅ The table will have 3 columns:&lt;/p&gt;

&lt;p&gt;title — a short text (maximum 200 characters)&lt;/p&gt;

&lt;p&gt;body — long text&lt;/p&gt;

&lt;p&gt;published_at — date and time when the post was created&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🔨 How does Django turn models into a database table?&lt;/strong&gt;&lt;br&gt;
After you define the model:&lt;br&gt;
1️⃣ Run:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;python manage.py makemigrations&lt;/code&gt;&lt;br&gt;
This tells Django to create a migration file (a plan for creating the table).&lt;/p&gt;

&lt;p&gt;2️⃣ Run:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;python manage.py migrate&lt;/code&gt;&lt;br&gt;
This actually creates the table in the database.&lt;/p&gt;

&lt;p&gt;🧪 Examples of Fields You Can Use&lt;br&gt;
Here are some common field types:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;name = models.CharField(max_length=100)  # short text
description = models.TextField()         # long text
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Numbers&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;price = models.DecimalField(max_digits=6, decimal_places=2)
quantity = models.IntegerField()
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Dates &amp;amp; Times&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Boolean (True/False)&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;is_published = models.BooleanField(default=False)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Email &amp;amp; Slug&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;email = models.EmailField()
slug = models.SlugField()
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;🔗 How to Link Tables Together?&lt;br&gt;
One-to-Many (ForeignKey)&lt;br&gt;
Example: Many books → One author&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;class Author(models.Model):
    name = models.CharField(max_length=100)

class Book(models.Model):
    title = models.CharField(max_length=100)
    author = models.ForeignKey(Author, on_delete=models.CASCADE)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Many-to-Many&lt;br&gt;
Example: Students and Courses&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;class Student(models.Model):
    name = models.CharField(max_length=100)

class Course(models.Model):
    name = models.CharField(max_length=100)
    students = models.ManyToManyField(Student)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;🧂 Options You Can Add&lt;br&gt;
Make a field required or optional:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;name = models.CharField(max_length=100, blank=True, null=True)
Choices
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Let users choose only from a set of values:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;STATUS_CHOICES = [
    ('draft', 'Draft'),
    ('published', 'Published'),
]

status = models.CharField(max_length=10, choices=STATUS_CHOICES, default='draft')
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Unique&lt;br&gt;
Make sure no duplicates:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;email = models.EmailField(unique=True)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;🏗️ CRUD: How to Use the Model in Code?&lt;br&gt;
Once your model and table are ready, you can use Django’s ORM (Object Relational Mapper) to interact with your data.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;post = Post.objects.create(title="Hello", body="This is my first post!")
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Read&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;all_posts = Post.objects.all()
one_post = Post.objects.get(id=1)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Update&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;post = Post.objects.get(id=1)
post.title = "Updated Title"
post.save()
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Delete&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;post = Post.objects.get(id=1)
post.delete()
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;📐 More Advanced Examples&lt;br&gt;
Automatically generate a slug&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;from django.utils.text import slugify

class Article(models.Model):
    title = models.CharField(max_length=100)
    slug = models.SlugField(blank=True)

    def save(self, *args, **kwargs):
        if not self.slug:
            self.slug = slugify(self.title)
        super().save(*args, **kwargs)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Abstract Base Class&lt;br&gt;
You can create reusable base models:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;class TimeStampedModel(models.Model):
    created_at = models.DateTimeField(auto_now_add=True)
    updated_at = models.DateTimeField(auto_now=True)

    class Meta:
        abstract = True

class Post(TimeStampedModel):
    title = models.CharField(max_length=100)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Custom QuerySet Manager&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;class PublishedManager(models.Manager):
    def get_queryset(self):
        return super().get_queryset().filter(is_published=True)

class Article(models.Model):
    title = models.CharField(max_length=100)
    is_published = models.BooleanField(default=False)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;objects = models.Manager()  # Default manager
published = PublishedManager()  # Custom manager
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;🤔 Why Use Django Models&lt;/strong&gt;?&lt;br&gt;
✅ They save you from writing SQL by hand.&lt;br&gt;
✅ Keep all your data structure in one place.&lt;br&gt;
✅ Automatically create and manage tables.&lt;br&gt;
✅ Allow you to write Python instead of SQL.&lt;/p&gt;

&lt;p&gt;🚀 Summary:&lt;br&gt;
&lt;strong&gt;What you define   What happens&lt;/strong&gt;&lt;br&gt;
Python class    Table&lt;br&gt;
Attributes  Columns&lt;br&gt;
Create  .create()&lt;br&gt;
Read    .all(), .filter()&lt;br&gt;
Update  .save()&lt;br&gt;
Delete  .delete()&lt;/p&gt;

</description>
    </item>
    <item>
      <title>DAY 5: Understanding MVC and MVT Architecture – A Simple Guide for Beginners</title>
      <dc:creator>zipporahmutanu04</dc:creator>
      <pubDate>Wed, 02 Jul 2025 04:34:37 +0000</pubDate>
      <link>https://dev.to/zipporahmutanu04/day-5-understanding-mvc-and-mvt-architecture-a-simple-guide-for-beginners-3aij</link>
      <guid>https://dev.to/zipporahmutanu04/day-5-understanding-mvc-and-mvt-architecture-a-simple-guide-for-beginners-3aij</guid>
      <description>&lt;p&gt;By: Zazima&lt;/p&gt;

&lt;p&gt;📌 Introduction&lt;br&gt;
In the world of software development, especially in building web applications, you’ll often hear terms like MVC or MVT. These are architectural patterns that help developers structure their code in a clean, organized, and efficient way. But what do they really mean? And what’s the difference?&lt;/p&gt;

&lt;p&gt;In this beginner-friendly guide, we’ll explain everything you need to know about MVC and MVT in the simplest terms possible — with real-life examples!&lt;/p&gt;

&lt;p&gt;💡 What is MVC (Model-View-Controller)?&lt;br&gt;
MVC is a popular software design pattern used in building applications — especially in frameworks like Laravel, ASP.NET, and Ruby on Rails.&lt;/p&gt;

&lt;p&gt;It helps to separate the application into three main parts:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Part    Description
Model - Handles the data, logic, and database
View  - What the user sees (HTML/CSS)
Controller   -  Handles the communication between Model and View
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;🧾 Real-Life Example: MVC as a Restaurant&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Model: The kitchen where food (data) is prepared.

View: The menu and table — what the customer sees.

Controller: The waiter who takes the order and delivers the food.

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This separation ensures everyone knows their job and doesn’t interfere with others. It keeps the application clean and easy to manage.&lt;/p&gt;

&lt;p&gt;💡 What is MVT (Model-View-Template)?&lt;br&gt;
MVT is a variation of MVC used by the Django framework in Python. It works similarly with MVT but with a slight twist.&lt;/p&gt;

&lt;p&gt;In MVT, Django handles the controller part for you, which makes development faster and simpler.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Part    Description
Model - Handles data and database
View -  Connects the model with the template (logic)
Template   -    HTML pages that display the data (what users see)

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;🧾 Real-Life Example: MVT as a Restaurant (Again)&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Model: The kitchen prepares the food.

View: The waiter’s brain that decides what to serve.

Template: The menu and table layout (display).

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In this case, Django is the smart waiter who already knows how to connect everything without needing you to write a separate controller.&lt;/p&gt;

&lt;p&gt;🔄 MVC vs MVT – Key Differences&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Feature     MVC                   MVT (Django)
Model        Manages data and logic  Same
View         What the user sees (HTML)   Connects logic to template
Template     Not included in MVC     Used for HTML and design
Controller   You write it manually   Django handles it auto                               automatically
 Used In     Laravel, ASP.NET, Rails, etc. Django (Python)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;✅ Why Use MVC or MVT?&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Makes your project organized&lt;/li&gt;
&lt;li&gt;Separates design from logic&lt;/li&gt;
&lt;li&gt;Easier to maintain and update&lt;/li&gt;
&lt;li&gt;Great for team collaboration &lt;/li&gt;
&lt;li&gt;Improves code readability and reusability&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;🎯 Conclusion&lt;br&gt;
Whether you’re using MVC or MVT, the goal is the same: to build structured, efficient, and maintainable applications.&lt;/p&gt;

&lt;p&gt;Use MVC when your framework or language supports it (like Laravel or Ruby on Rails).&lt;/p&gt;

&lt;p&gt;Use MVT when working with Django — it does a lot of the hard work for you.&lt;/p&gt;

&lt;p&gt;Understanding these patterns will make you a better developer, and you’ll be able to build professional-grade applications with confidence.&lt;/p&gt;

&lt;p&gt;🧾 Want to Remember It Easily?&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;🧠 MVC = Model + View + Controller (you handle everything)
🧠 MVT = Model + View + Template (Django handles the controller for you)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
    </item>
    <item>
      <title>DAY 4: Getting started with Django: Build your first project step by step</title>
      <dc:creator>zipporahmutanu04</dc:creator>
      <pubDate>Mon, 30 Jun 2025 20:03:42 +0000</pubDate>
      <link>https://dev.to/zipporahmutanu04/day-4-getting-started-with-django-build-your-first-project-step-by-step-ani</link>
      <guid>https://dev.to/zipporahmutanu04/day-4-getting-started-with-django-build-your-first-project-step-by-step-ani</guid>
      <description>&lt;p&gt;✍️ By ZeddyEem&lt;/p&gt;

&lt;p&gt;🌱 Introduction&lt;br&gt;
If you're just getting started with Django, welcome! This guide will walk you through everything you need to build your first simple Django project — from installation to creating your own HTML templates and apps.&lt;/p&gt;

&lt;p&gt;We’ll build a simple project called Config, which has two apps:&lt;/p&gt;

&lt;p&gt;✅ tasks – for managing daily to-do items.&lt;/p&gt;

&lt;p&gt;✅ contacts – for saving personal or professional contacts.&lt;/p&gt;

&lt;p&gt;Step 1:Check Versions&lt;br&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%2Fv3gcoq91wohuxo3v3tlc.JPG" 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%2Fv3gcoq91wohuxo3v3tlc.JPG" alt="Image description" width="703" height="89"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;⚙️ Step 2: Install Django&lt;br&gt;
First, make sure you have Python installed. Then install Django using pip:&lt;br&gt;
&lt;code&gt;pip install django&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%2F7p9g8j1dtgm8vv87u1rc.JPG" 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%2F7p9g8j1dtgm8vv87u1rc.JPG" alt="Image description" width="616" height="262"&gt;&lt;/a&gt;&lt;br&gt;
You can also create a virtual environment for better project management:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;python -m venv env
source env/bin/activate    # On Windows: env\Scripts\activate
pip install django
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&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%2Fx313ry1bf7q8c8bs4ki3.JPG" 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%2Fx313ry1bf7q8c8bs4ki3.JPG" alt="Image description" width="800" height="183"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;🚀 Step 3: Start the Django Project&lt;br&gt;
Create the Django project using the command:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;django-admin startproject config&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%2F6uezrhwsgty05js9ppbb.JPG" 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%2F6uezrhwsgty05js9ppbb.JPG" alt="Image description" width="521" height="20"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;🧩 Step 4: Create Two Django Apps&lt;br&gt;
We will build two apps inside the project:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;python manage.py startapp tasks
python manage.py startapp contacts
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&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%2Ftsc3rcapzgglikt46b2u.JPG" 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%2Ftsc3rcapzgglikt46b2u.JPG" alt="Image description" width="508" height="43"&gt;&lt;/a&gt;&lt;br&gt;
Now go to config/settings.py and register the apps:&lt;/p&gt;

&lt;p&gt;INSTALLED_APPS = [&lt;br&gt;
    ...&lt;br&gt;
    'tasks',&lt;br&gt;
    'contacts',&lt;br&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%2Fmu941m8se7vt4flbydhs.JPG" 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%2Fmu941m8se7vt4flbydhs.JPG" alt="Image description" width="373" height="228"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;🌐 Step 5: Set Up URLs&lt;br&gt;
Update config/urls.py of the main to include both 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%2Fi8iaq6mmf6qarw9mylw6.JPG" 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%2Fi8iaq6mmf6qarw9mylw6.JPG" alt="Image description" width="707" height="206"&gt;&lt;/a&gt;&lt;br&gt;
Create urls.py inside both apps.&lt;/p&gt;

&lt;p&gt;📁 tasks/urls.py&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%2Fj8p8vlotcq6g2yj6j6by.JPG" 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%2Fj8p8vlotcq6g2yj6j6by.JPG" alt="Image description" width="800" height="113"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;📁 contacts/urls.py&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%2Fvbgl3kh1zg1xovh62jbn.JPG" 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%2Fvbgl3kh1zg1xovh62jbn.JPG" alt="Image description" width="798" height="163"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;💡 Step 6: Create Simple Views&lt;br&gt;
📄 tasks/views.py&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%2F3noh3727savf5n8v0ra6.JPG" 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%2F3noh3727savf5n8v0ra6.JPG" alt="Image description" width="507" height="87"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;contacts/views.py&lt;br&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%2Fcylmvpbi2hs1sgcj0cn7.JPG" 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%2Fcylmvpbi2hs1sgcj0cn7.JPG" alt="Image description" width="469" height="121"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;🎨 Step 7: Add Templates&lt;br&gt;
Inside each app, create templates folders like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;tasks/
└── templates/
    └── tasks/
        └── index.html

contacts/
└── templates/
    └── contacts/
        └── index.html
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;📄 &lt;code&gt;tasks/templates/tasks/index.html&lt;br&gt;
&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;!DOCTYPE html&amp;gt;
&amp;lt;html&amp;gt;
&amp;lt;head&amp;gt;
    &amp;lt;title&amp;gt;Tasks App&amp;lt;/title&amp;gt;
&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;
    &amp;lt;h1&amp;gt;Welcome to the Tasks App&amp;lt;/h1&amp;gt;
&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;📄 &lt;code&gt;contacts/templates/contacts/index.html&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;!DOCTYPE html&amp;gt;
&amp;lt;html&amp;gt;
&amp;lt;head&amp;gt;
    &amp;lt;title&amp;gt;Contacts App&amp;lt;/title&amp;gt;
&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;
    &amp;lt;h1&amp;gt;Welcome to the Contacts App&amp;lt;/h1&amp;gt;
&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Make sure your settings.py includes:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;TEMPLATES = [
    {
        ...
        'APP_DIRS': True,
    },
]
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;🛠 Step 8: Run the Project&lt;br&gt;
Run the server:&lt;br&gt;
&lt;code&gt;python manage.py runserver&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%2Fk59l7gvbqoosvz7ojuvr.JPG" 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%2Fk59l7gvbqoosvz7ojuvr.JPG" alt="Image description" width="782" height="226"&gt;&lt;/a&gt;&lt;br&gt;
Visit:&lt;/p&gt;

&lt;p&gt;&lt;a href="http://127.0.0.1:8000/tasks/" rel="noopener noreferrer"&gt;http://127.0.0.1:8000/tasks/&lt;/a&gt; – View your tasks app&lt;/p&gt;

&lt;p&gt;&lt;a href="http://127.0.0.1:8000/contacts/" rel="noopener noreferrer"&gt;http://127.0.0.1:8000/contacts/&lt;/a&gt; – View your contacts app&lt;/p&gt;

&lt;p&gt;🎁 Final Thoughts&lt;br&gt;
Django is powerful, but the best way to learn is to start small. With this basic setup, you now have two working apps in a Django project — fully connected with HTML templates and views.&lt;/p&gt;

&lt;p&gt;Next up, you can expand it into a complete productivity tool!&lt;/p&gt;

&lt;p&gt;💬 Let’s Connect!&lt;br&gt;
Got stuck? Have questions? Drop them in the comments or DM me.&lt;br&gt;
Let’s build the future of tech, one line at a time.&lt;/p&gt;

&lt;p&gt;🔗 Useful Commands Summary&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# Create project and apps
django-admin startproject config
python manage.py startapp tasks
python manage.py startapp contacts

# Run server
python manage.py runserver
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
    </item>
    <item>
      <title>🚀Day 2: Git &amp; GitHub Essentials – Forking, Collaboration, PRs &amp; More!</title>
      <dc:creator>zipporahmutanu04</dc:creator>
      <pubDate>Thu, 26 Jun 2025 08:03:24 +0000</pubDate>
      <link>https://dev.to/zipporahmutanu04/day-2-git-github-essentials-forking-collaboration-prs-more-1gd</link>
      <guid>https://dev.to/zipporahmutanu04/day-2-git-github-essentials-forking-collaboration-prs-more-1gd</guid>
      <description>&lt;p&gt;Hey everyone &lt;br&gt;
Welcome back to Day 2 of my dev journey! Yesterday I shared how I set up my development environment. Today, I dove deep into something every developer needs—Git and GitHub. If you’ve ever wondered what’s the difference between a fork and a clone? or how to handle merge conflicts without panicking—this is for you!&lt;/p&gt;
&lt;h4&gt;
  
  
  ✅ 1.Why Git? Why GitHub?
&lt;/h4&gt;

&lt;p&gt;Git helps you track your code history, collaborate easily, and avoid the fear of "what if I break something?".&lt;br&gt;
GitHub is where your Git projects live online so others can contribute, comment, or review.&lt;/p&gt;
&lt;h4&gt;
  
  
  2. Basic Git Commands I Practiced
&lt;/h4&gt;

&lt;p&gt;Use code blocks and explain them simply:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git init
git add .
git commit -m "Initial commit"
git remote add origin &amp;lt;your-repo-url&amp;gt;
git push -u origin main
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;lets get started,&lt;/p&gt;

&lt;p&gt;🔱 &lt;/p&gt;

&lt;h4&gt;
  
  
  Step 1: Forking a Repository
&lt;/h4&gt;

&lt;p&gt;🎯 Goal: Make a personal copy of a project to work on.&lt;/p&gt;

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

&lt;p&gt;Go to the GitHub repo you want to contribute to.&lt;/p&gt;

&lt;p&gt;Click the Fork button at the top-right.&lt;/p&gt;

&lt;p&gt;A new copy appears in your GitHub account.&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%2Fsf4zd55ty0klyzyklr43.jpg" 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%2Fsf4zd55ty0klyzyklr43.jpg" alt="Image description" width="594" height="465"&gt;&lt;/a&gt;&lt;br&gt;
✅ You now have your own copy to work with freely.&lt;/p&gt;
&lt;h4&gt;
  
  
  🤝 Step 2: Cloning &amp;amp; Setting Up Collaboration
&lt;/h4&gt;

&lt;p&gt;🎯 Goal: Download your forked repo to your computer.&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%2F6wvz5hnu6ttdphmdudxw.JPG" 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%2F6wvz5hnu6ttdphmdudxw.JPG" alt="Image description" width="797" height="464"&gt;&lt;/a&gt;&lt;br&gt;
📝 Steps:&lt;/p&gt;
&lt;h4&gt;
  
  
  Copy the repo URL from GitHub
&lt;/h4&gt;

&lt;p&gt;&lt;code&gt;git clone https://github.com/your-username/repo-name.git&lt;/code&gt;&lt;/p&gt;
&lt;h4&gt;
  
  
  Move into the folder
&lt;/h4&gt;

&lt;p&gt;cd repo-name&lt;br&gt;
✅ You’re ready to start working locally.&lt;/p&gt;
&lt;h4&gt;
  
  
  🌱 Step 3: Create a New Branch
&lt;/h4&gt;

&lt;p&gt;🎯 Goal: Work in isolation from the main branch.&lt;/p&gt;

&lt;p&gt;📝 Steps:&lt;br&gt;
&lt;code&gt;git checkout -b feature-branch-name&lt;/code&gt;&lt;/p&gt;
&lt;h4&gt;
  
  
  ✅ Your changes are safe in this new branch.
&lt;/h4&gt;

&lt;p&gt;✍️ Step 4: Make Changes and Commit&lt;br&gt;
🎯 Goal: Save your changes with a message.&lt;/p&gt;

&lt;p&gt;📝 Steps:&lt;/p&gt;
&lt;h4&gt;
  
  
  Stage your changes
&lt;/h4&gt;

&lt;p&gt;&lt;code&gt;git add .&lt;/code&gt;&lt;/p&gt;
&lt;h4&gt;
  
  
  Commit with a message
&lt;/h4&gt;

&lt;p&gt;&lt;code&gt;git commit -m "Add feature or fix"&lt;/code&gt;&lt;br&gt;
✅ Your progress is recorded in Git history.&lt;/p&gt;
&lt;h4&gt;
  
  
  🚀 Step 5: Push Changes to GitHub
&lt;/h4&gt;

&lt;p&gt;🎯 Goal: Upload your changes online.&lt;/p&gt;

&lt;p&gt;📝 Steps:&lt;br&gt;
&lt;code&gt;git push origin feature-branch-name&lt;/code&gt;&lt;br&gt;
✅ Now your changes are visible on your GitHub fork.&lt;/p&gt;
&lt;h4&gt;
  
  
  🔃 Step 6: Create a Pull Request (PR)
&lt;/h4&gt;

&lt;p&gt;🎯 Goal: Request to merge your changes into the original project.&lt;/p&gt;

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

&lt;p&gt;Go to your fork on GitHub.&lt;/p&gt;

&lt;p&gt;Click Compare &amp;amp; pull request.&lt;/p&gt;

&lt;p&gt;Add a descriptive title and summary.&lt;/p&gt;

&lt;p&gt;Click Create pull request.&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%2Fke9ufgrnoohqa7sctvdw.JPG" 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%2Fke9ufgrnoohqa7sctvdw.JPG" alt="Image description" width="800" height="305"&gt;&lt;/a&gt;&lt;br&gt;
✅ You’ve asked the project owner to review and merge your work.&lt;/p&gt;
&lt;h4&gt;
  
  
  👀 Step 7: Code Review
&lt;/h4&gt;

&lt;p&gt;🎯 Goal: Let collaborators check your work.&lt;/p&gt;

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

&lt;p&gt;Reviewers may leave comments.&lt;/p&gt;

&lt;p&gt;If changes are requested:&lt;/p&gt;
&lt;h5&gt;
  
  
  Make the fix
&lt;/h5&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git add .
git commit -m "Fix review suggestions"
git push
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;✅ Code reviews help keep the project clean and consistent.&lt;/p&gt;
&lt;h4&gt;
  
  
  ⚔️ Step 8: Resolve Merge Conflicts
&lt;/h4&gt;

&lt;p&gt;🎯 Goal: Fix code clashes when multiple people edit the same line.&lt;/p&gt;

&lt;p&gt;📝 Steps:&lt;br&gt;
&lt;code&gt;git pull origin main&lt;/code&gt;&lt;br&gt;
If there's a conflict, Git will mark it like this:&lt;/p&gt;

&lt;p&gt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt; HEAD&lt;br&gt;
your version&lt;br&gt;
other version&lt;/p&gt;

&lt;blockquote&gt;
&lt;blockquote&gt;
&lt;blockquote&gt;
&lt;blockquote&gt;
&lt;blockquote&gt;
&lt;blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;main&lt;br&gt;
Fix it manually, then:&lt;br&gt;
&lt;/p&gt;


&lt;/blockquote&gt;
&lt;br&gt;
&lt;/blockquote&gt;
&lt;br&gt;
&lt;/blockquote&gt;
&lt;br&gt;
&lt;/blockquote&gt;
&lt;br&gt;
&lt;/blockquote&gt;
&lt;br&gt;
&lt;/blockquote&gt;
&lt;br&gt;
&lt;/blockquote&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git add .
git commit -m "Resolve merge conflict"
git push
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;✅ Merge conflict resolved.&lt;/p&gt;

&lt;h4&gt;
  
  
  ❗ Step 9: Use GitHub Issues
&lt;/h4&gt;

&lt;p&gt;🎯 Goal: Report bugs or suggest new features.&lt;/p&gt;

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

&lt;p&gt;Go to the repo's Issues tab.&lt;/p&gt;

&lt;p&gt;Click New Issue.&lt;/p&gt;

&lt;p&gt;Describe the problem or idea clearly.&lt;/p&gt;

&lt;p&gt;Submit it.&lt;/p&gt;

&lt;p&gt;✅ A great way to manage and track tasks.&lt;/p&gt;

&lt;h4&gt;
  
  
  🧪 Step 10: Must-Know Git Commands
&lt;/h4&gt;

&lt;p&gt;Command Description&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git clone URL   Copy project from GitHub
git status  See what's changed
git add .   Stage all changes
git commit -m "msg" Save changes
git push    Upload to GitHub
git pull    Fetch latest changes
git checkout -b branch  Create new branch
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;✅ Final Workflow Summary&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;1. Fork the repository 
2. Clone to your computer 
3. Create a new branch 
4. Make and commit changes 
5. Push changes to GitHub 
6. Open a pull request 
7. Collaborate through code reviews 
8. Fix merge conflicts
9. Use issues for collaboration 
10. Repeat as needed 

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;💬 Bonus Tip&lt;br&gt;
💡 Always run git pull before you push to avoid conflicts.&lt;br&gt;
🎯 Use clear commit messages and PR titles to help your teammates.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Day 1 dev setup: Installing Docker, WSL, Python, GitHub SSH (with some challenges &amp; solutions)</title>
      <dc:creator>zipporahmutanu04</dc:creator>
      <pubDate>Tue, 24 Jun 2025 22:21:14 +0000</pubDate>
      <link>https://dev.to/zipporahmutanu04/day-1-dev-setup-installing-docker-wsl-python-github-ssh-with-some-challenges-oo1</link>
      <guid>https://dev.to/zipporahmutanu04/day-1-dev-setup-installing-docker-wsl-python-github-ssh-with-some-challenges-oo1</guid>
      <description>&lt;p&gt;By: Zipporah Mutanu Kimanthi&lt;/p&gt;

&lt;p&gt;Hello  friend &lt;/p&gt;

&lt;p&gt;Today was Day 1 of setting up my development environment as I prepare for serious coding, collaboration, and deployment work. I want to walk you through what I did, the challenges I faced, and how I overcame them — so if you're just getting started, you won't feel alone.&lt;/p&gt;

&lt;p&gt;Tools I Needed to Set Up&lt;br&gt;
Before jumping into code, I had to make sure the following were correctly installed on my Windows laptop:&lt;/p&gt;

&lt;p&gt;✅ Git&lt;/p&gt;

&lt;p&gt;✅ Python 3.10+&lt;/p&gt;

&lt;p&gt;✅ Text Editor (VS Code / PyCharm)&lt;/p&gt;

&lt;p&gt;✅ WSL (Windows Subsystem for Linux)&lt;/p&gt;

&lt;p&gt;✅ Docker&lt;/p&gt;

&lt;p&gt;✅ GitHub SSH Configuration&lt;/p&gt;

&lt;p&gt;I already had the first four set up. The real work started with Docker and SSH configuration — and that’s where most of the challenges came in.&lt;/p&gt;

&lt;p&gt;Installing Docker on Windows with WSL&lt;/p&gt;

&lt;p&gt;Step-by-Step Installation&lt;/p&gt;

&lt;p&gt;Downloaded Docker Desktop from &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;/p&gt;

&lt;p&gt;During the install, I made sure to check “Use WSL 2 instead of Hyper-V”&lt;/p&gt;

&lt;p&gt;Restarted my laptop&lt;/p&gt;

&lt;p&gt;Opened WSL (Ubuntu), then verified installation using:&lt;/p&gt;

&lt;p&gt;docker --version&lt;br&gt;
docker run hey here is zippy&lt;/p&gt;

&lt;p&gt;My First Challenge: Docker Command Not Found&lt;br&gt;
When I ran docker in WSL, I got:&lt;/p&gt;

&lt;p&gt;command not found: docker&lt;/p&gt;

&lt;p&gt;How I Solved It:&lt;/p&gt;

&lt;p&gt;Realized Docker Desktop must be running in the background&lt;/p&gt;

&lt;p&gt;Also went to Docker Desktop → Settings → Resources → WSL Integration and turned on integration for Ubuntu&lt;/p&gt;

&lt;p&gt;After restarting WSL: it worked! &lt;/p&gt;

&lt;p&gt;Setting Up Git + GitHub with SSH (No More Password Prompts!)&lt;br&gt;
This part is key if you want to push code to GitHub without typing your password every time.&lt;/p&gt;

&lt;p&gt;What I Did:&lt;br&gt;
Checked for SSH keys:&lt;/p&gt;

&lt;p&gt;ls -al ~/.ssh&lt;br&gt;
Created a new SSH key:&lt;/p&gt;

&lt;p&gt;ssh-keygen -t ed25519 -C "&lt;a href="mailto:myemailname@example.com"&gt;myemailname@example.com&lt;/a&gt;"&lt;br&gt;
Started the agent and added the key:&lt;/p&gt;

&lt;p&gt;eval "$(ssh-agent -s)"&lt;br&gt;
ssh-add ~/.ssh/id_ed25519&lt;br&gt;
Copied the public key:&lt;/p&gt;

&lt;p&gt;cat ~/.ssh/id_ed25519.pub&lt;br&gt;
Pasted the key on GitHub:&lt;br&gt;
GitHub → Settings → SSH &amp;amp; GPG Keys → New SSH key → Paste → Save&lt;/p&gt;

&lt;p&gt;Tested connection:&lt;/p&gt;

&lt;p&gt;ssh -T &lt;a href="mailto:git@github.com"&gt;git@github.com&lt;/a&gt;&lt;br&gt;
 My SSH Challenge: “Permission denied (publickey)”&lt;br&gt;
When I tried pushing to GitHub, I got:&lt;/p&gt;

&lt;p&gt;vbnet&lt;br&gt;
Permission denied (publickey)&lt;br&gt;
fatal: Could not read from remote repository.&lt;/p&gt;

&lt;p&gt;Fix:&lt;/p&gt;

&lt;p&gt;I had copied the wrong key file (id_ed25519 instead of id_ed25519.pub) &lt;/p&gt;

&lt;p&gt;Re-copied the correct .pub file and updated it on GitHub&lt;/p&gt;

&lt;p&gt;Then it worked!&lt;/p&gt;

&lt;p&gt;What I Learned&lt;br&gt;
Docker is powerful but depends heavily on proper WSL setup on Windows&lt;/p&gt;

&lt;p&gt;Docker Desktop must be running and integrated with WSL&lt;/p&gt;

&lt;p&gt;SSH setup can be frustrating but once done, it's smooth sailing&lt;/p&gt;

&lt;p&gt;Mistakes like copying the wrong file are normal — just retrace your steps&lt;/p&gt;

&lt;p&gt;Always test with docker run hello-world or any word you want to use and ssh -T &lt;a href="mailto:git@github.com"&gt;git@github.com&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Final Tips&lt;br&gt;
Use VS Code with the WSL extension for the best experience&lt;/p&gt;

&lt;p&gt;Use git config to set your identity globally:&lt;/p&gt;

&lt;p&gt;git config --global user.name "Your Name"&lt;br&gt;
git config --global user.email "&lt;a href="mailto:your-emailname@example.com"&gt;your-emailname@example.com&lt;/a&gt;"&lt;br&gt;
Always use the SSH URL when cloning:&lt;/p&gt;

&lt;p&gt;Now that I’ve installed and configured:&lt;/p&gt;

&lt;p&gt;Git ✅&lt;/p&gt;

&lt;p&gt;Python ✅&lt;/p&gt;

&lt;p&gt;Text Editor ✅&lt;/p&gt;

&lt;p&gt;WSL ✅&lt;/p&gt;

&lt;p&gt;Docker ✅&lt;/p&gt;

&lt;p&gt;GitHub SSH ✅&lt;/p&gt;

&lt;p&gt;I'm fully set up to begin building and collaborating like a real developer.&lt;/p&gt;

&lt;p&gt;Connect With Me&lt;br&gt;
I'm Zipporah Mutanu Kimanthi, growing every day in tech, and sharing everything I learn to help others like me.&lt;/p&gt;

&lt;p&gt;Let me know in the comments if you faced similar issues or need help!&lt;/p&gt;

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