<?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: PRUDENCE KORIR</title>
    <description>The latest articles on DEV Community by PRUDENCE KORIR (@prudence_korir_).</description>
    <link>https://dev.to/prudence_korir_</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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4070937%2F82dcf867-b51f-42ef-aa4d-f1c719ae425d.png</url>
      <title>DEV Community: PRUDENCE KORIR</title>
      <link>https://dev.to/prudence_korir_</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/prudence_korir_"/>
    <language>en</language>
    <item>
      <title>End-to-End Power BI Architecture: Transforming JCars Logistics from Dirty Flat Data to Executive Decision Support</title>
      <dc:creator>PRUDENCE KORIR</dc:creator>
      <pubDate>Sat, 26 Sep 2026 14:17:21 +0000</pubDate>
      <link>https://dev.to/prudence_korir_/end-to-end-power-bi-architecture-transforming-jcars-logistics-from-dirty-flat-data-to-executive-3796</link>
      <guid>https://dev.to/prudence_korir_/end-to-end-power-bi-architecture-transforming-jcars-logistics-from-dirty-flat-data-to-executive-3796</guid>
      <description>&lt;h1&gt;
  
  
  Transforming Dirty Automotive Logistics Data into Executive Decision Support in Power BI
&lt;/h1&gt;

&lt;p&gt;Building business intelligence dashboards for messy, real-world data requires far more than dropping charts onto a canvas. It demands rigorous exploratory auditing, robust Power Query ETL pipelines, structured DAX modeling, and executive-level storytelling.&lt;/p&gt;

&lt;p&gt;In this project, I engineered an end-to-end Power BI reporting solution for &lt;em&gt;JCars&lt;/em&gt;, a multi-branch automotive dealership and logistics network. Here is how I took an uncleaned transactional flat file and transformed it into a decision-support platform tracking &lt;em&gt;KES 1.905B&lt;/em&gt; in revenue across &lt;em&gt;276&lt;/em&gt; customer orders.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. The Challenge: Uncleaned Flat File Data
&lt;/h2&gt;

&lt;p&gt;The source data (&lt;code&gt;Jcars_data.csv&lt;/code&gt;) captured transaction-level vehicle sales, delivery tracking, and financing data. However, the raw data presented major data quality challenges:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Mixed Currencies:&lt;/strong&gt; Monetary columns contained mixed string prefixes (&lt;code&gt;USD&lt;/code&gt;, &lt;code&gt;KES&lt;/code&gt;) alongside bare numbers.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Inconsistent Categorical Text:&lt;/strong&gt; Branch locations, vehicle makes, and delivery statuses suffered from varied casing (&lt;code&gt;toyota&lt;/code&gt;, &lt;code&gt;TOYOTA&lt;/code&gt;) and split synonyms (&lt;code&gt;Delivered&lt;/code&gt;, &lt;code&gt;completed&lt;/code&gt;, &lt;code&gt;Done&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Locale-Sensitive Dates:&lt;/strong&gt; Conflicting &lt;code&gt;DD/MM/YYYY&lt;/code&gt; and &lt;code&gt;MM/DD/YYYY&lt;/code&gt; formats caused parse errors and nulls.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Data Governance Traps:&lt;/strong&gt; Dispatched units showing delivery timestamps prior to order placement dates, and cancelled orders retaining "Paid" settlement statuses.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  2. Power Query ETL &amp;amp; Data Standardization
&lt;/h2&gt;

&lt;p&gt;To ensure the downstream semantic model remained performative and reliable, all cleaning logic was addressed upfront:&lt;/p&gt;

&lt;h3&gt;
  
  
  Currency Normalization
&lt;/h3&gt;

&lt;p&gt;All values were standardized to Kenya Shillings (KES). Text extraction logic stripped currency prefixes, applied an exchange rate baseline of &lt;em&gt;1 USD = 130 KES&lt;/em&gt;, and cast columns to native currency data types:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;Final KES = Raw Numeric Value * Exchange Rate&lt;/code&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Date Engine Resiliency
&lt;/h3&gt;

&lt;p&gt;To resolve locale parsing errors across operating systems, I implemented locale-aware date parsing with conditional fallbacks, preserving chronological continuity across all order and delivery timelines.&lt;/p&gt;

&lt;h3&gt;
  
  
  Categorical Bucketing
&lt;/h3&gt;

&lt;p&gt;Using DAX and M transformations, over a dozen fragmented delivery labels were mapped into four unified operational states:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Delivered (encompassing "Delivered", "Completed", "Done")&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;In Transit (encompassing "On the way", "At the yard", "Dispatched")&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Cancelled&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Returned&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  3. Dimensional Modeling &amp;amp; DAX Architecture
&lt;/h2&gt;

&lt;p&gt;Rather than computing ad-hoc aggregations inside visual fields, I established a dedicated _Measures table housing normalized DAX logic:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;// 1. Top-Line Turnover
Total Orders = DISTINCTCOUNT(Jcars_data[Order ID])
Total Units Sold = SUM(Jcars_data[Units Sold])
Total Revenue = SUMX(Jcars_data, Jcars_data[Units Sold] * Jcars_data[Unit Selling Price])

// 2. Cost &amp;amp; Profitability Mechanics
Total Cost = SUMX(Jcars_data, (Jcars_data[Units Sold] * Jcars_data[Unit Cost]) + Jcars_data[Clean_Logistics_Cost])
Gross Profit = [Total Revenue] - [Total Cost]
Gross Profit Margin = DIVIDE([Gross Profit], [Total Revenue], 0)

// 3. Operational Friction
Return Rate = 
DIVIDE(
    CALCULATE([Total Units Sold], Jcars_data[Clean_Delivery_Status] = "Returned"),
    [Total Units Sold],
    0
)

Cancellation Rate = 
DIVIDE(
    CALCULATE([Total Orders], Jcars_data[Clean_Delivery_Status] = "Cancelled"),
    [Total Orders],
    0
)

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

&lt;/div&gt;



&lt;h3&gt;
  
  
  Core Benchmark Results:
&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;Total Revenue: KES 1,904,596,846.00&lt;/p&gt;

&lt;p&gt;Total Gross Profit: KES 393,327,843.00&lt;/p&gt;

&lt;p&gt;Gross Profit Margin: 20.65%&lt;/p&gt;

&lt;p&gt;Units Sold: 466 Units across 276 Orders&lt;/p&gt;

&lt;p&gt;Return Rate: 31.88%&lt;/p&gt;

&lt;p&gt;Cancellation Rate: 13.41%&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  4. The 3-Page Executive Dashboard
&lt;/h2&gt;

&lt;p&gt;The report was organized into three purpose-built views with persistent button navigation:&lt;br&gt;
 &lt;strong&gt;1. Executive Overview&lt;/strong&gt;: 6 high-level KPI cards, revenue ranking by vehicle make, branch turnover distribution, and monthly sales trends.&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F0yaxxp2d9z4dis7yhf7a.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F0yaxxp2d9z4dis7yhf7a.png" alt=" " width="799" height="426"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Vehicle Performance&lt;/strong&gt;: A hierarchical drill-down matrix (Make, Model), vehicle body type share, and a Margin % vs. Return Rate scatter chart with reference quadrants separating star performers from high-risk liabilities.&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Frk7jtmkmx7howdu40ccd.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Frk7jtmkmx7howdu40ccd.png" alt=" " width="800" height="462"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Operations &amp;amp; Logistics&lt;/strong&gt;: Detailed operational metrics comparing order delivery statuses, branch order volumes, and a clustered column chart evaluating Collected Delivery Fees vs. Actual Logistics Costs.&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fvstfrqy38wv2lmesic0p.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fvstfrqy38wv2lmesic0p.png" alt=" " width="800" height="452"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  5. Key Strategic Takeaways
&lt;/h2&gt;

&lt;p&gt;&lt;em&gt;&lt;strong&gt;The High-End Return Paradox:&lt;/strong&gt;&lt;/em&gt; While luxury brands like BMW drive healthy unit margins, they exhibit an alarming 55.56% return rate. Recommending mandatory pre-delivery mechanical inspections (PDI) before customer dispatch.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Logistics Subsidy Leakage:&lt;/em&gt;&lt;/strong&gt; Upcountry and high-volume branches frequently incur logistical costs that exceed the flat delivery fees billed to customers. Introducing dynamic, distance-based freight pricing will protect operating margins.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Pre-Delivery Churn:&lt;/em&gt;&lt;/strong&gt; Extended fulfillment delays account for a 13.41% cancellation rate, indicating an urgent need to automate inventory release workflows at regional holding yards.&lt;/p&gt;

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

&lt;p&gt;A successful analytics project connects low-level data transformation directly to executive decision-making. By pairing resilient ETL processes with intentional visual design, this dashboard turns fragmented logistics records into actionable operational clarity.&lt;/p&gt;

</description>
      <category>powerfuldevs</category>
      <category>dataengineering</category>
      <category>dax</category>
      <category>businessintelligence</category>
    </item>
    <item>
      <title>Making Sense of Power BI: Data Modelling, Relationships, and Joins</title>
      <dc:creator>PRUDENCE KORIR</dc:creator>
      <pubDate>Mon, 14 Sep 2026 15:25:41 +0000</pubDate>
      <link>https://dev.to/prudence_korir_/making-sense-of-power-bi-data-modelling-relationships-and-joins-31ln</link>
      <guid>https://dev.to/prudence_korir_/making-sense-of-power-bi-data-modelling-relationships-and-joins-31ln</guid>
      <description>&lt;p&gt;When raw data hits Power BI, it’s rarely clean or ready for reporting. Data modeling is the process of structuring and connecting your tables so your reports load fast, your DAX measures calculate accurately, and your visuals actually make sense.&lt;/p&gt;

&lt;p&gt;Getting your data model right early saves hours of DAX troubleshooting down the road. Here is a breakdown of the core concepts you need to build robust Power BI reports.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Data Modeling Architecture
&lt;/h2&gt;

&lt;p&gt;How you arrange your tables determines how efficient your report will be.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Flat Table Approach:&lt;/strong&gt; Combining everything into a single, massive spreadsheet-style table.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Pros&lt;/em&gt;: Quick to set up for a fast sanity check.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Cons&lt;/em&gt;: Tons of redundant data, massive file sizes, and terrible DAX performance.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Star Schema (Best Practice):&lt;/strong&gt; Placing a central fact table (containing numerical metrics) surrounded by descriptive lookup tables.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Pros&lt;/em&gt;: Blazing-fast engine performance, clean DAX, and clear reporting paths.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Cons&lt;/em&gt;: Requires upfront work to break down flat tables.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Snowflake Schema:&lt;/strong&gt; Similar to a Star Schema, but dimension tables branch out into further sub-dimension tables (e.g., a Product table linking to a SubCategory table, which links to a Category table).&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Pros&lt;/em&gt;: Slightly reduces data storage redundancy.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Cons&lt;/em&gt;: Creates a complex model, makes DAX harder to write, and slows down report filtering.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Fact Tables vs. Dimension Tables
&lt;/h2&gt;

&lt;p&gt;Building a Star Schema requires dividing your data into two distinct table types:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Fact Tables&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;What they are:&lt;/em&gt; Log files of business events or transaction records.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Contents:&lt;/em&gt; Numeric measurements, monetary values, timestamps, and foreign keys.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Examples:&lt;/em&gt; FactSales, FactInventoryLogs, FactOrders.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Grain:&lt;/em&gt; Defines what a single row represents (e.g., one row per line item on a customer receipt).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Dimension Tables&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;What they are:&lt;/em&gt; Context tables that provide descriptive details for your metrics.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Contents:&lt;/em&gt; Text, attributes, names, dates, and categories.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Examples:&lt;/em&gt; DimCustomer, DimProduct, DimStore, DimDate.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Example: In an electronics store, FactSales logs that on Friday, CustomerID #402 bought ProductID #88 for $1,200. Power BI uses DimCustomer to see that #402 is Sarah, and DimProduct to look up that #88 is a 4K Monitor.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Relationships &amp;amp; Directionality
&lt;/h2&gt;

&lt;p&gt;Relationships serve as the connectors between tables so filters apply across visuals.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;One-to-Many (1:*):&lt;/strong&gt; The standard relationship pattern. One unique ID in a Dimension table connects to multiple entries in a Fact table.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;One-to-One (1:1):&lt;/strong&gt; Rare. Used mainly when splitting large tables for privacy or optimization.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Many-to-Many (&lt;em&gt;:&lt;/em&gt;):&lt;/strong&gt; Complex and risky. Can cause ambiguous filter behavior and inaccurate total calculations.&lt;/p&gt;

&lt;p&gt;Key Mechanics:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;Keys&lt;/em&gt;: Dimension tables use a Primary Key (strictly unique values). Fact tables use a Foreign Key (repeated values).&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Active vs. Inactive&lt;/em&gt;: Only one active relationship (solid line) can exist between two tables at a time. Alternate dates (like OrderDate vs. ShipDate) require inactive relationships (dotted lines) activated via DAX (USERELATIONSHIP).&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Filter Direction&lt;/em&gt;: Stick to single-direction filtering (Dimension $\rightarrow$ Fact). Avoid bi-directional filtering unless absolutely necessary, as it introduces circular paths and degrades performance.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  4. Power Query Joins vs. Power BI Relationships
&lt;/h2&gt;

&lt;p&gt;It is common to confuse Power Query Merges with Data Model Relationships, but they run at completely different stages:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;strong&gt;Feature&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;Power Query Merges (Joins)&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;Power BI Data Model Relationships&lt;/strong&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;When it runs&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;During data transformation (before load).&lt;/td&gt;
&lt;td&gt;After data is loaded into memory.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;How it works&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Combines columns physically into one wider table.&lt;/td&gt;
&lt;td&gt;Keeps tables separate, connected via virtual relationships.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Best Used For&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Consolidation of messy dimension tables.&lt;/td&gt;
&lt;td&gt;90% of your reporting and metric modeling.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Power Query Join Types:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Inner Join&lt;/strong&gt;: Keeps only matching rows from both tables.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Left Outer Join&lt;/strong&gt;: Keeps all rows from the primary table, adding matching details from the secondary table.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Left Anti Join&lt;/strong&gt;: Keeps only rows from the primary table that have no match in the secondary table (great for identifying unassigned IDs).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;For standard analytics, target a Star Schema with One-to-Many (1:*) relationships and Single Directional filters. Power BI’s engine is engineered specifically for this structure, giving you fast load times, concise DAX, and scalable reports.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>powerfuldevs</category>
      <category>analytics</category>
    </item>
    <item>
      <title>My First GitHub Project: From a Local Folder to GitHub Using Git and SSH</title>
      <dc:creator>PRUDENCE KORIR</dc:creator>
      <pubDate>Sun, 23 Aug 2026 02:50:10 +0000</pubDate>
      <link>https://dev.to/prudence_korir_/my-first-github-project-from-a-local-folder-to-github-using-git-and-ssh-4k5e</link>
      <guid>https://dev.to/prudence_korir_/my-first-github-project-from-a-local-folder-to-github-using-git-and-ssh-4k5e</guid>
      <description>&lt;p&gt;When I first walked through the gates of LuxDevHq, my first thought was "endless possibilities". However, I was intimidated. I did not think I would measure up. But when I attended my first class, I learned that building something great starts with a great foundation and at LuxDevHq, that means mastering all the basics.&lt;/p&gt;

&lt;p&gt;In the last week, I worked on setting up a local project on my desktop which I then pushed to a live repository on GitHub using the command line.&lt;/p&gt;

&lt;p&gt;I was working with a "Kenya_Hospital_Health_Records" csv dataset which was to be stored in a sub-folder called "data" within the main folder on the desktop which is named after the file.&lt;/p&gt;

&lt;p&gt;These are the steps I took:&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Local Project Set Up
&lt;/h2&gt;

&lt;p&gt;Open the bash terminal and navigate to the desktop using the &lt;code&gt;cd&lt;/code&gt; command and create the main folder along with the sub-folder.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;cd &lt;/span&gt;Desktop
&lt;span class="nb"&gt;mkdir&lt;/span&gt; &lt;span class="nt"&gt;-p&lt;/span&gt; Kenya_Hospital_Health_Records_Project/Data
&lt;span class="nb"&gt;cd &lt;/span&gt;Kenya_Hospital_Health_Records_Project
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Copy and paste the file into the sub-folder.&lt;/p&gt;

&lt;h3&gt;
  
  
  Creating the README.md File
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"# KENYA HEALTH RECORDS ANALYSIS"&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; README.md
&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"##Project Overview"&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&amp;gt;&lt;/span&gt; README.md
&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"This is a project analysis for a hospital health records"&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&amp;gt;&lt;/span&gt; README.md
&lt;span class="nb"&gt;cat &lt;/span&gt;README.md
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;&amp;gt;&lt;/code&gt; operator adds new text to the file.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;&amp;gt;&amp;gt;&lt;/code&gt; operator adds text to already written text.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;cat README.md&lt;/code&gt; prints the contents of the file for review.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;nano README.md&lt;/code&gt; edits the file.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  2. Creating a Tracked Git Repository
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;git init&lt;/code&gt; creates and empty repository.&lt;br&gt;
&lt;code&gt;git status&lt;/code&gt; checks the status of the repository.&lt;br&gt;
&lt;code&gt;git add .&lt;/code&gt; adds everything to the current repository.&lt;br&gt;
&lt;code&gt;git commit -m "Kenya Hospital Records Project&lt;/code&gt; the commit message helps to remember whatever it entails. &lt;br&gt;
&lt;code&gt;git remote add origin https://github.com/prudencejeronokorir-code/Git-Commands-Class.git&lt;/code&gt; this is the SSH key that links the local repository to the empty GitHub repository.&lt;br&gt;
&lt;code&gt;ssh -T git@github.com&lt;/code&gt; to confirm that the SSH key works&lt;br&gt;
&lt;code&gt;git push -u origin main&lt;/code&gt; pushes the local main branch to the remote origin on GitHub&lt;br&gt;
   *-u command helps avoid typing out the branch name upon every update.&lt;/p&gt;

&lt;p&gt;And with that you are done!!!&lt;/p&gt;

</description>
      <category>git</category>
      <category>github</category>
      <category>dataengineering</category>
    </item>
  </channel>
</rss>
