<?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: Wairimu Becky</title>
    <description>The latest articles on DEV Community by Wairimu Becky (@wairimu_becky).</description>
    <link>https://dev.to/wairimu_becky</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%2F4071736%2F5bdc4363-f768-4343-ba9e-c76338d31d5b.png</url>
      <title>DEV Community: Wairimu Becky</title>
      <link>https://dev.to/wairimu_becky</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/wairimu_becky"/>
    <language>en</language>
    <item>
      <title>Data Modelling with Power BI</title>
      <dc:creator>Wairimu Becky</dc:creator>
      <pubDate>Thu, 17 Sep 2026 14:17:01 +0000</pubDate>
      <link>https://dev.to/wairimu_becky/data-modelling-with-power-bi-3g4f</link>
      <guid>https://dev.to/wairimu_becky/data-modelling-with-power-bi-3g4f</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;Welcome to Power BI, which in my opinion is Excel’s slightly cooler cousin. Once you’re up to speed with Excel, Power BI becomes a breeze and, in this article, I shall take you through data modelling in Power BI, as well as other concepts such as schemas and relationships.&lt;br&gt;
Once you’ve transformed your data by cleaning it, you can load it. Let’s begin with data modelling.&lt;/p&gt;

&lt;h2&gt;
  
  
  Data Modelling
&lt;/h2&gt;

&lt;p&gt;This is the process of structuring and organizing data to create meaningful relationships, hierarchies and calculations. Data modelling transforms raw data from different source into structured format that supports analysis and reporting. &lt;br&gt;
There are three types of data modelling;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; Conceptual data modelling&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This uses the overall structure of data that can e used to organize business processes or objectives into entities. Entities are groupings such as clients, products and they can have relationships with other entities.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; Logical data modelling&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;It is built on top of the conceptual data model and is one level down from it. This means that it captures the attributes within each entity and the logical relationship between them.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; Physical data modelling&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;It’s a specific implementation of the logical data model.&lt;/p&gt;

&lt;p&gt;Data modelling has a number of benefits. One is that it improves data integrity and reduces errors. It also optimizes performance and speed of analysis. Data modelling defines data needs and users thus improving business processes.&lt;/p&gt;

&lt;p&gt;Let's begin with relationships.&lt;/p&gt;

&lt;h3&gt;
  
  
  Relationships
&lt;/h3&gt;

&lt;p&gt;Relationships are just as the word suggests; connections between different tables. Relationships support measures and calculated columns that reference multiple tables.&lt;/p&gt;

&lt;p&gt;They enable cross-table analysis without merging.&lt;/p&gt;

&lt;p&gt;Cardinality refers to the type of relationship of which there are a number:&lt;br&gt;
a.  One-to-many (1: &lt;em&gt;) – One record in one table relates to many records in another table.&lt;br&gt;
b.  Many-to-One (&lt;/em&gt; :1) – Many records in one table relate to one record in another.&lt;br&gt;
c.  Many-to-Many (:) – Both tables have many matching values&lt;br&gt;
d.  One-to-One (1:1) – Each row in 1 table matches exactly one row in another.&lt;/p&gt;

&lt;p&gt;Cross-filter direction helps you determine whether the filters flow in either a single direction or both directions.&lt;/p&gt;

&lt;p&gt;Relationships are established by matching primary keys in dimension tables with corresponding foreign keys in the fact table.&lt;/p&gt;

&lt;p&gt;And that brings us to the next section, Schemas.&lt;/p&gt;

&lt;h2&gt;
  
  
  Schemas
&lt;/h2&gt;

&lt;p&gt;Now we know relationships, so let’s move ahead to find out about schemas. A schema is a specific arrangement or pattern that you choose to help you organize your data tables and relationships. &lt;/p&gt;

&lt;p&gt;When creating a schema, it is important to ask yourself what exactly is being measured and how do you want to compare the results. &lt;/p&gt;

&lt;p&gt;A schema has two kinds of tables – a fact table, and a dimension table.&lt;/p&gt;

&lt;h3&gt;
  
  
  Fact Table
&lt;/h3&gt;

&lt;p&gt;A fact table has measurable data and contains records of transactions or events. It usually contains numeric values and grows continuously.&lt;br&gt;
Examples include payment transactions and ID’s.&lt;/p&gt;

&lt;p&gt;What’s important to note about fact tables is that they contain the grain of the data.&lt;br&gt;
A grain is the detailing of what unique dimension values each row represents. &lt;br&gt;
The facts table also has both primary and foreign keys (which I will explain in a bit).&lt;/p&gt;

&lt;h3&gt;
  
  
  Dimension Table
&lt;/h3&gt;

&lt;p&gt;A dim table gives meaning to the facts table.&lt;br&gt;
It is descriptive in nature, answering the who, where, what questions.&lt;br&gt;
Examples are customer, product, location information.&lt;br&gt;
They have primary keys.&lt;/p&gt;

&lt;h3&gt;
  
  
  Keys
&lt;/h3&gt;

&lt;p&gt;Primary Key - This is a unique identifier and cannot have duplicates i.e ID’s&lt;br&gt;
Foreign Key – This is a key in a table that refers to the primary key in a related table. Mostly found in fact tables.&lt;/p&gt;

&lt;h2&gt;
  
  
  Types of Schemas
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1.  Star Schema
&lt;/h3&gt;

&lt;p&gt;This is an arrangement whereby there is a central fact table that is directly connected to multiple dimension tables. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fysumw6mqlqbitlvg3vnk.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fysumw6mqlqbitlvg3vnk.webp" alt="star schema" width="768" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Advantages&lt;br&gt;
• Easy to understand&lt;br&gt;
• Faster query performance&lt;br&gt;
• Simplifies DAX calculations&lt;br&gt;
Disadvantages&lt;br&gt;
• Takes up more storage space&lt;br&gt;
• Data redundancy in dimension tables&lt;br&gt;
• Less suitable for normalized data&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Snowflake Schema
&lt;/h3&gt;

&lt;p&gt;This schema resembles the star schema except that it has more normalized dimension tables.&lt;br&gt;
Normalized tables are tables that have been broken down into separate tables that are related to each other. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fpyq82ibt2wg2we6zawxk.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fpyq82ibt2wg2we6zawxk.webp" alt="Snowflake schema" width="660" height="446"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Joins
&lt;/h2&gt;

&lt;p&gt;Finally, we have joins which we perform in power query. Joins combine two tables based on matching values&lt;br&gt;
a.  Inner Join – keeps only rows where records exist in both tables i.e below finding customers who placed orders&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%2F6u9o87lzbkyyxmgrb2u3.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%2F6u9o87lzbkyyxmgrb2u3.png" alt="Inner Join" width="800" height="704"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;b.  Left Outer Join – keeps all rows from the left table (1st), and matches from the right table, 2nd.&lt;/p&gt;

&lt;p&gt;c.  Right Outer Join – keeps matches from 1st table and all rows from 2nd&lt;/p&gt;

&lt;p&gt;d.  Full Outer Join – keeps all rows from all tables&lt;/p&gt;

&lt;p&gt;e.  Left Anti-join – keeps rows from 1st tables with no matches in 2nd table i.e below, I fetched customers with no orders&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fmh8y9tjfpv7rlizthess.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%2Fmh8y9tjfpv7rlizthess.png" alt="left anti join" width="800" height="693"&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fmorwo65o5czeqx3hq5a2.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%2Fmorwo65o5czeqx3hq5a2.png" alt="retrieval of left antijoin" width="800" height="190"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;f.  Right Anti-join – keeps rows from 2nd table with no matches in 1st i.e orders with no customers.&lt;/p&gt;

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

&lt;p&gt;Learning about data modelling has been quite the interesting journey, and yet it is not over.&lt;br&gt;
I'm excited to be using the insights I've drawn from this into my work as a data analyst and scientist. &lt;/p&gt;

</description>
      <category>powerfuldevs</category>
      <category>datamodelling</category>
      <category>schemas</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Building an Interactive Excel Dashboard for E-commerce Product Analysis: A Case Study of Jumia Products</title>
      <dc:creator>Wairimu Becky</dc:creator>
      <pubDate>Tue, 08 Sep 2026 15:55:23 +0000</pubDate>
      <link>https://dev.to/wairimu_becky/building-an-interactive-excel-dashboard-for-e-commerce-product-analysis-a-case-study-of-jumia-2c3a</link>
      <guid>https://dev.to/wairimu_becky/building-an-interactive-excel-dashboard-for-e-commerce-product-analysis-a-case-study-of-jumia-2c3a</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;This is my first major data analysis project, so this process has been heavily about learning how to work with real world data.&amp;nbsp;&lt;br&gt;
For this project, I used Microsoft Excel to analyse product data from Jumia, focusing on pricing, discounts, ratings, and customer reviews. The goal was to take a raw dataset, clean and prepare it, analyse the information, and turn the results into an interactive dashboard that could communicate the findings clearly.&lt;/p&gt;

&lt;h2&gt;
  
  
  Questions of the day
&lt;/h2&gt;

&lt;p&gt;I wanted the analysis to answer questions that could tell us something about product performance.&lt;br&gt;
The main questions were:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Do higher discounts result in greater customer engagement?&lt;/li&gt;
&lt;li&gt;Do products with more reviews also receive higher ratings?&lt;/li&gt;
&lt;li&gt;Is there a relationship between product price and rating?&lt;/li&gt;
&lt;li&gt;Which products stand out based on customer reviews and ratings?&lt;/li&gt;
&lt;li&gt;How much can we actually conclude when some products have missing customer feedback?
One important consideration was that the dataset did not contain sales or revenue figures. Because of this, I used review count as a proxy for customer engagement &lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Raw_Data
&lt;/h2&gt;

&lt;p&gt;The original dataset contained product information including:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Product name&lt;/li&gt;
&lt;li&gt;Current price&lt;/li&gt;
&lt;li&gt;Old price&lt;/li&gt;
&lt;li&gt;Discount percentage&lt;/li&gt;
&lt;li&gt;Number of customer reviews&lt;/li&gt;
&lt;li&gt;Product rating
The original data contained several issues that needed to be addressed before analysis could be done.
### Some of the problems I encountered included:&lt;/li&gt;
&lt;li&gt;Duplicate product records&lt;/li&gt;
&lt;li&gt;Incorrect or inconsistent data types&lt;/li&gt;
&lt;li&gt;Negative values in the review column&lt;/li&gt;
&lt;li&gt;Missing ratings and review information&lt;/li&gt;
&lt;li&gt;Price formatting issues&lt;/li&gt;
&lt;li&gt;A misspelled rating column&lt;/li&gt;
&lt;li&gt;Discount values that needed to be checked against the listed prices
This was probably one of the biggest lessons from the project, having to understand the data and what it represents before analysing it.&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fxrqt3sm6xy0jgqbuydr7.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%2Fxrqt3sm6xy0jgqbuydr7.png" alt="Raw Data" width="800" height="612"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Cleaning the Data
&lt;/h2&gt;

&lt;p&gt;I kept the original data separate in a Raw_Data worksheet.&amp;nbsp;I then created a Cleaned_Data worksheet where the data could be standardized and prepared for analysis.&lt;/p&gt;

&lt;h3&gt;
  
  
  Removing duplicates
&lt;/h3&gt;

&lt;p&gt;I identified and removed 3 duplicate records.&lt;/p&gt;

&lt;h3&gt;
  
  
  Correcting data types
&lt;/h3&gt;

&lt;p&gt;Prices, discounts, ratings, and review counts needed to be stored as numerical values.&lt;/p&gt;

&lt;h3&gt;
  
  
  Handling negative reviews
&lt;/h3&gt;

&lt;p&gt;The review column contained negative values.&amp;nbsp;Since a product cannot logically have a negative number of customer reviews, I treated the negative signs as a data-formatting or scraping issue and converted those values to positive numbers.&lt;/p&gt;

&lt;h3&gt;
  
  
  Handling missing values
&lt;/h3&gt;

&lt;p&gt;Not every product had rating or review information. Instead of&amp;nbsp;replacing missing values with zeros or averages, I left the information&amp;nbsp;missing and categorized it as "Not Provided" where appropriate. This is important because no recorded review is not the same thing as zero reviews.&amp;nbsp;Replacing missing information with zero can create a misleading picture of customer engagement.&lt;/p&gt;

&lt;h3&gt;
  
  
  Checking discounts
&lt;/h3&gt;

&lt;p&gt;I also compared the discount information against the listed and current prices to make sure the data was consistent.&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%2Feudca21fsrl5ayvr7neo.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%2Feudca21fsrl5ayvr7neo.png" alt="cleaned data" width="800" height="517"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Creating Categories for Analysis
&lt;/h2&gt;

&lt;p&gt;Once the basic cleaning was complete, I created additional fields to make it easier to analyze the products.&amp;nbsp;These included categories for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Rating&lt;/li&gt;
&lt;li&gt;Discount&lt;/li&gt;
&lt;li&gt;Price
This made it possible to use PivotTables and slicers to look at the dataset from different perspectives rather than relying only on the original numerical values.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Key Figures
&lt;/h2&gt;

&lt;p&gt;After cleaning the dataset, I calculated several key metrics.&lt;/p&gt;

&lt;p&gt;Total products        -         113 &lt;br&gt;
Average current price - KES 1,181.37 &lt;br&gt;
Average discount      -          37% &lt;br&gt;
Average rating        -      3.9 / 5 &lt;br&gt;
Total reviews         -          723 &lt;br&gt;
Highest current price -    KES 3,750 &lt;br&gt;
Lowest current price  -       KES 38 &lt;/p&gt;

&lt;p&gt;These figures are what I use for the KPI section of my dashboard.&lt;/p&gt;

&lt;h2&gt;
  
  
  Questions to Analysis
&lt;/h2&gt;

&lt;p&gt;With the data cleaned, I could finally start testing the questions I had at the beginning.&amp;nbsp;One of the most interesting parts was looking at the relationships between discounts, reviews, ratings, and prices.&lt;br&gt;
I calculated the correlation values for three relationships:&lt;br&gt;
Discount vs Reviews     -       -0.14 &lt;br&gt;
Rating vs Reviews       -        0.06 &lt;br&gt;
Current Price vs Rating -        0.10 &lt;br&gt;
The values show weak relationships between the variables.&lt;/p&gt;

&lt;h3&gt;
  
  
  Discount vs Reviews: -0.14
&lt;/h3&gt;

&lt;p&gt;The relationship between discount and reviews was slightly negative, but very weak.&amp;nbsp;This means that in this dataset, products with larger discounts did not consistently have more customer reviews.&lt;/p&gt;

&lt;h3&gt;
  
  
  Rating vs Reviews: 0.06
&lt;/h3&gt;

&lt;p&gt;The relationship between ratings and review counts was almost zero.&amp;nbsp;This can suggest that having more customer reviews did not automatically mean that a product had a higher rating.&amp;nbsp;A product can be popular enough to receive many reviews without being among the highest-rated products.&lt;/p&gt;

&lt;h3&gt;
  
  
  Current Price vs Rating: 0.10
&lt;/h3&gt;

&lt;p&gt;The relationship between current price and rating was also very weak.&amp;nbsp;More expensive products did not consistently receive better ratings.&amp;nbsp;This may mean that within this dataset, price alone was not a strong indicator of perceived product quality.&lt;/p&gt;

&lt;h2&gt;
  
  
  Creating PivotTables
&lt;/h2&gt;

&lt;p&gt;After completing the basic analysis, I used PivotTables to summarize the dataset and identify patterns that would be difficult to see from the raw rows alone.&lt;br&gt;
The PivotTables helped me examine areas such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Rating categories&lt;/li&gt;
&lt;li&gt;Discount categories&lt;/li&gt;
&lt;li&gt;Price categories&lt;/li&gt;
&lt;li&gt;Customer review counts&lt;/li&gt;
&lt;li&gt;Top-rated products&lt;/li&gt;
&lt;li&gt;Most-reviewed products&lt;/li&gt;
&lt;li&gt;Highly discounted products&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F9jk300njhopwm5o8i3az.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%2F9jk300njhopwm5o8i3az.png" alt="Highly Rated Products" width="800" height="705"&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F4fhup0qob8tnxd017z3g.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%2F4fhup0qob8tnxd017z3g.png" alt="rating categories vs price" width="799" height="425"&gt;&lt;/a&gt;&lt;br&gt;
These summaries then became the basis for the charts used in the dashboard.&lt;/p&gt;

&lt;h2&gt;
  
  
  Designing the Dashboard
&lt;/h2&gt;

&lt;p&gt;I designed the dashboard around the following:&lt;/p&gt;

&lt;h3&gt;
  
  
  KPI Cards
&lt;/h3&gt;

&lt;p&gt;The main KPIs provide a quick overview of the dataset:&lt;br&gt;
-Total products&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Average current price&lt;/li&gt;
&lt;li&gt;Average discount&lt;/li&gt;
&lt;li&gt;Average rating&lt;/li&gt;
&lt;li&gt;Total reviews&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fy5970uwrwbq6vihfipfo.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%2Fy5970uwrwbq6vihfipfo.png" alt="KPI's" width="800" height="73"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Product Performance
&lt;/h3&gt;

&lt;p&gt;I included visualizations that highlight products based on measures such as ratings, reviews, and discounts.&lt;/p&gt;

&lt;h3&gt;
  
  
  Relationship Analysis
&lt;/h3&gt;

&lt;p&gt;The dashboard also includes visualizations exploring the relationships between:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Discounts and reviews&lt;/li&gt;
&lt;li&gt;Ratings and reviews&lt;/li&gt;
&lt;li&gt;Current prices and ratings
### Category Analysis
I used charts to compare products across rating, discount, and price categories.
### Slicers
To make the dashboard interactive, I added slicers for:&lt;/li&gt;
&lt;li&gt;Rating Category&lt;/li&gt;
&lt;li&gt;Discount Category&lt;/li&gt;
&lt;li&gt;Price Category
These allow the user to filter the dashboard and explore specific groups of products. So one can filter for a particular discount or rating category and see how the other dashboard elements respond.&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fo79kyll5ny21zf9jab1x.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%2Fo79kyll5ny21zf9jab1x.png" alt="dashboard" width="800" height="316"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Key Insights
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. Discounts do not equal engagement
&lt;/h3&gt;

&lt;p&gt;The discount-versus-review correlation was -0.14, showing a very weak negative relationship.&amp;nbsp;This suggests that simply offering a larger discount does not guarantee greater customer engagement.&lt;br&gt;
For sellers, this could mean that other factors&amp;nbsp; such as product visibility, quality, brand reputation, listing information, or customer experience may matter more than discount alone.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Popularity and rating are not the same&amp;nbsp;
&lt;/h3&gt;

&lt;p&gt;The correlation between rating and reviews was 0.06. This means that a&amp;nbsp;product can attract many reviews without having an exceptionally high rating.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Price does not appear to determine rating
&lt;/h3&gt;

&lt;p&gt;The correlation between current price and rating was 0.10.&amp;nbsp;The relationship is weak enough that I can conclude that customers do not appear to be rewarding more expensive products with consistently higher ratings.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Some products do stand out
&lt;/h3&gt;

&lt;p&gt;Although the overall relationships were weak, individual products still stood out.&amp;nbsp;Some highly reviewed products also maintained strong ratings, making them interesting examples of products that combine customer engagement with positive feedback.&amp;nbsp;These products may be worth examining more closely to understand what is working for them.&lt;/p&gt;

&lt;h3&gt;
  
  
  5. Missing feedback creates a blind spot
&lt;/h3&gt;

&lt;p&gt;A significant portion of the listings did not have recorded rating or review information.&amp;nbsp;That makes it harder to draw conclusions about customer satisfaction and engagement across the entire dataset.&lt;/p&gt;

&lt;h2&gt;
  
  
  Recommendations
&lt;/h2&gt;

&lt;p&gt;Based on the analysis, I would recommend the following:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Large discounts should not automatically be treated as a strategy for increasing customer engagement.Sellers could instead test discounts alongside other factors such as product presentation, visibility, and customer experience.&lt;/li&gt;
&lt;li&gt;Because review counts provide a useful engagement signal, encouraging customers to leave ratings and reviews could provide sellers with more useful feedback while also improving the amount of information available to future customers.&lt;/li&gt;
&lt;li&gt;A product with many reviews but an average or low rating deserves attention. High engagement combined with weaker customer satisfaction could mean there are issues with product quality, expectations, delivery, or the overall customer experience.&lt;/li&gt;
&lt;li&gt;Products that combine high review counts with strong ratings are worth studying further. Understanding what these products have in common could help identify practices that could be applied to other listings.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  What I Personally Learnt
&lt;/h2&gt;

&lt;p&gt;This project taught me a lot.&amp;nbsp;I learned how easily a small issue in raw data can affect the results of an entire analysis.&amp;nbsp;&lt;br&gt;
I also became more comfortable with:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Cleaning real-world datasets&lt;/li&gt;
&lt;li&gt;Working with Excel tables&lt;/li&gt;
&lt;li&gt;Using formulas to create calculated fields&lt;/li&gt;
&lt;li&gt;Building PivotTables&lt;/li&gt;
&lt;li&gt;Creating PivotCharts&lt;/li&gt;
&lt;li&gt;Using slicers for interactive filtering&lt;/li&gt;
&lt;li&gt;Designing dashboards&lt;/li&gt;
&lt;li&gt;Interpreting basic correlations&lt;/li&gt;
&lt;li&gt;Turning analytical findings into practical recommendations
This project gave me a foundation for working with larger and more complex datasets in future projects.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Limitations
&lt;/h2&gt;

&lt;p&gt;There are several limitations to this analysis.&lt;br&gt;
First, the dataset represents a snapshot of product information. Prices, discounts, ratings, and review counts can change over time.&lt;br&gt;
Second, the dataset does not contain sales, revenue, product visibility, or listing-age information. Because of this, review count can only be used as a proxy for engagement and cannot be treated as a direct measure of sales.&lt;br&gt;
Third, missing rating and review information reduces the amount of customer-feedback data available for analysis.&lt;br&gt;
Finally, correlation does not establish causation. The relationships observed in this dataset should therefore be interpreted as patterns rather than proof that one variable causes another.&lt;/p&gt;

&lt;h2&gt;
  
  
  And finally
&lt;/h2&gt;

&lt;p&gt;This project  gave me practical experience with the full data-analysis process. From figuring out what needed cleaning, to deciding how missing information should be handled, to building visualizations and communicating what the results actually mean.&lt;br&gt;
And for a first Excel data-analysis project, I'm calling that a win.&lt;/p&gt;

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

&lt;p&gt;The Jumia Product Performance Dashboard demonstrates how Excel can be used to take raw e-commerce data through the full analysis process including cleaning, preparation, exploration, visualisation, and communication.&lt;br&gt;
While the analysis did not find strong relationships between discounts, prices, ratings, and reviews, that result is itself useful.&amp;nbsp;Sometimes the most valuable finding is discovering that the assumption you started with does not hold up in the data.&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>datascience</category>
      <category>microsoftexcel</category>
    </item>
    <item>
      <title>Getting Started With Excel For Data Analytics: From Basics To Data Cleaning</title>
      <dc:creator>Wairimu Becky</dc:creator>
      <pubDate>Sun, 30 Aug 2026 11:01:28 +0000</pubDate>
      <link>https://dev.to/wairimu_becky/getting-started-with-excel-for-data-analytics-from-basics-to-data-cleaning-5hj5</link>
      <guid>https://dev.to/wairimu_becky/getting-started-with-excel-for-data-analytics-from-basics-to-data-cleaning-5hj5</guid>
      <description>&lt;p&gt;It’s week 3 in my Data Analytics class. We’ve finally finished installing our essentials, learnt how to successfully push projects to GitHub, and now we’re ready for Excel. We began with the basics of Excel, that is rows and columns, the ribbon and some of the functions of the tabs and commands. The next bit was data cleaning, and this is where it begins to get interesting, so let me take you with me step by step.&lt;br&gt;
To make it simple, we will use a dataset to help explain how to clean data. Data is information, and the clearer and cleaner the data, the better the insights derived. The dataset, Dirty Café Sales, that we will use through this journey, has been obtained from Kraggle, by Ahmed Mohamed. &lt;br&gt;
This is a copy of the original data set;&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fu957bqyk9kd1mmwehxsw.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%2Fu957bqyk9kd1mmwehxsw.png" alt="original dataset" width="800" height="589"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The first step is to save the file as an Excel Workbook file, and then create a copy of the raw data in the new sheet to work from;&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%2Fi1exnj2rgmti0foxzr86.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%2Fi1exnj2rgmti0foxzr86.png" alt="worksheets" width="800" height="800"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now we can begin to work on the cells themselves. The cells are the rectangular boxes you see on the workbook, intersections of rows and columns. It is represented/referenced by a column name and row number such as A2, F8.&lt;br&gt;
We’ll autofit the column widths, freeze the top row pane, and edit the top row with headers so as to help us easily see what we’re working with. &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%2Foqkam9zpado8fkjnzg6p.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%2Foqkam9zpado8fkjnzg6p.png" alt="autofit column width" width="799" height="430"&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F1x4ff3gvt9ghepecnw3g.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%2F1x4ff3gvt9ghepecnw3g.png" alt="freeze pane" width="800" height="251"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This is what we’re now working with. &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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fmg8oxrfgym5ebej6uku5.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%2Fmg8oxrfgym5ebej6uku5.png" alt="edited headers" width="800" height="396"&gt;&lt;/a&gt;&lt;br&gt;
Let’s now work on the data itself. We begin by removing duplicates;&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%2Flubttlplaw6xqdka01hx.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%2Flubttlplaw6xqdka01hx.png" alt="remove duplicates" width="800" height="638"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Next, we reset any inconsistent data types. We start by turning on the filters on the headers so that we can know what we’re working with in each column. There are columns with text values, other numerical values, others both. We will work methodically through the sheet from beginning to end.&lt;/p&gt;

&lt;p&gt;We change all ‘ERROR’, ‘UNKNOWN’ or blank values to ‘Unknown’, and format the numerical cells to reflect the data they represent i.e currency;&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F7su8lw7nkr2xy31hk080.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%2F7su8lw7nkr2xy31hk080.png" alt="find and replace" width="800" height="292"&gt;&lt;/a&gt;&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fmzh3l1y7eaar17ot35dh.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%2Fmzh3l1y7eaar17ot35dh.png" alt="format cells" width="800" height="367"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;We do this across the sheet.&lt;br&gt;
Next, we learnt about conditional formatting. This is a kind of formatting that changes the appearance of cells. &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%2F8524i8lw3nivbz7u9uub.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%2F8524i8lw3nivbz7u9uub.png" alt="conditional formatting" width="800" height="355"&gt;&lt;/a&gt;&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fpab3wfs10jmd3p9cj6h3.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%2Fpab3wfs10jmd3p9cj6h3.png" alt="conditional formatting" width="799" height="304"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;At this point we got introduced to Text Functions, which are used to standardize text value, i.e if you want text in Proper case or UPPER case or all lower case, where you use the functions Proper(), UPPER() and lower() respectively. There are other like Trim() which you use to remove extra spaces, Len() which gives you the length of text among others. An interesting one is CONCAT() which you use to combine text in two cells, for example if you’re generating an email using first name and last name which are in different cells. &lt;/p&gt;

&lt;p&gt;Our most recent class has been on sorting and filtering. You can sort data depending on the type i.e for text values, sort A-Z/Z-A, for numeric values, sort smallest-largest/largest-smallest, for dates, sort oldest-newest/newest-oldest. &lt;br&gt;
You can also do a multi-level sort where you sort across different criteria. For example, below, I decided to sort according to the following selections;&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%2F3a7z6y2yhvg5lvl958z6.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%2F3a7z6y2yhvg5lvl958z6.png" alt="multi-level sort" width="800" height="337"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Next comes the math part. I was surprised by how easy Excel made mathematical functions.  We’ll begin with aggregate functions that process a range of rows and give a single summarized value. I’ll list them below along with their functions;&lt;br&gt;
Power()- exponent, raises to a specified power&lt;br&gt;
Product()- multiplication of values in a range&lt;br&gt;
Sum()- Sum of values in range&lt;br&gt;
Average()- average of values in range&lt;br&gt;
Median()- value at the center of all values in range&lt;br&gt;
Mode()- most repetitive of values in range&lt;br&gt;
Min()- lowest value&lt;br&gt;
Max()- highest value&lt;br&gt;
SQRT()- square root&lt;/p&gt;

&lt;p&gt;Then we have statistical functions;&lt;br&gt;
Count()- counts only cells with numeric values&lt;br&gt;
Counta()- count all non-blank cells&lt;br&gt;
Countblank()- counts only blanks&lt;/p&gt;

&lt;p&gt;We also have conditional aggregation that applies aggregate functions to only cells that meet specified criteria e.g Countif();&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%2Fahu3nkf04wufusd20vv1.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%2Fahu3nkf04wufusd20vv1.png" alt="COUNTIF function" width="794" height="40"&gt;&lt;/a&gt;&lt;br&gt;
Finally, we learnt about the functions used to retrieve date values i.e;&lt;br&gt;
Today()- brings you today’s date&lt;br&gt;
Now()- today’s date + current time&lt;br&gt;
Year()&lt;br&gt;
Month()&lt;br&gt;
Day()&lt;br&gt;
Datedif()- gives the difference between two dates&lt;br&gt;
Networkdays()- gives the difference between 2 dates excluding weekends&lt;/p&gt;

&lt;p&gt;That’s all for today in Excel world folks. Till next time…&lt;/p&gt;

</description>
    </item>
    <item>
      <title>My-First-Github-Project: From Installation To Execution</title>
      <dc:creator>Wairimu Becky</dc:creator>
      <pubDate>Sun, 23 Aug 2026 17:37:30 +0000</pubDate>
      <link>https://dev.to/wairimu_becky/my-first-github-project-from-installation-to-execution-3oe1</link>
      <guid>https://dev.to/wairimu_becky/my-first-github-project-from-installation-to-execution-3oe1</guid>
      <description>&lt;h1&gt;
  
  
  Introduction
&lt;/h1&gt;

&lt;p&gt;My first week studying Data Science and Analytics involved an initiation to Git. Before then, I had only encountered GitHub as a place where developers stored code, but I had not really understood what was actually happening.&lt;br&gt;
In this article, I take you on the journey of my first experience with Git, taking a project from a folder on my pc, and pushing it to a GitHub repository using Git and SSH. We will cover installation and configuration, how Git works, the creation and authentication of an SSH key, creation of a GitHub repository, and finally, pushing a project to GitHub.&lt;/p&gt;

&lt;h1&gt;
  
  
  Git, GitHub and SSH
&lt;/h1&gt;

&lt;h2&gt;
  
  
  Git
&lt;/h2&gt;

&lt;p&gt;Git is a version control system. This means that it helps you keep track of your ongoing projects in a variety of ways. You can save versions of your project, retrieve older versions, create separate branches of your work, and even merge different people's work together. It's saved in your pc so you can also work offline. &lt;/p&gt;

&lt;h2&gt;
  
  
  GitHub
&lt;/h2&gt;

&lt;p&gt;GitHub is a platform that lets you store and collaborate on Git projects online. As Git manages the version history of a project, GitHub provides an online location where that repository can be stored and shared.  &lt;/p&gt;

&lt;h2&gt;
  
  
  SSH Keys
&lt;/h2&gt;

&lt;p&gt;The word SSH in full stands for secure shell. This is a protocol that is used to establish secure communication between computers over a network. Instead of having to enter your username and password constantly, the key provides a secure method of authenticating your computer with GitHub. &lt;br&gt;
The key itself is comprised of a pair that is the private and public key. The private key is private, as the name suggests, stays on your pc and should never be shared with anyone. The public corresponding key is what goes in your GitHub account. &lt;/p&gt;

&lt;h1&gt;
  
  
  Installation
&lt;/h1&gt;

&lt;p&gt;The first step was to create a GitHub account and install Git Bash on my computer. Git Bash is a command-line environment on Windows which executes Git commands. This was my first introduction to the fact that development tasks can be performed directly through a terminal. &lt;/p&gt;

&lt;h1&gt;
  
  
  Configuring Git
&lt;/h1&gt;

&lt;p&gt;The next step was configuration. Git needs to know who is using it, so I configured my username and email address using;&lt;br&gt;
&lt;code&gt;git config --global user.name "Wairimu Becky"&lt;/code&gt;&lt;br&gt;
&lt;code&gt;git config --global user.email "beckywairimu@gmail.com"&lt;/code&gt;&lt;br&gt;
I checked whether the configuration was successful using:&lt;br&gt;
&lt;code&gt;git config --list&lt;/code&gt;&lt;br&gt;
I also configured the default branch name to "main";&lt;br&gt;
&lt;code&gt;git config --global init.defaultBranch main&lt;/code&gt;&lt;br&gt;
 A branch is a line of development inside a repository. &lt;/p&gt;

&lt;h3&gt;
  
  
  Generating an SSH Key
&lt;/h3&gt;

&lt;p&gt;I generated the key using:&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F72647ykfilour3kqpls6.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%2F72647ykfilour3kqpls6.png" alt="generating a ssh key" width="607" height="52"&gt;&lt;/a&gt;&lt;br&gt;
The terminal then prompted me to choose where to save the key and whether to create a passphrase. The file ending in .pub is the public key, while the corresponding file without .pub is the private key.&lt;br&gt;
After generating, I copied the public key to my GitHub account, under the SSH and GPG key section.&lt;/p&gt;

&lt;h3&gt;
  
  
  Authentication
&lt;/h3&gt;

&lt;p&gt;After adding the public key and verifying using email, the next step was to test whether the SSH connection was successful using;&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fyiejuj3s81bd35n7410t.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%2Fyiejuj3s81bd35n7410t.png" alt="authenticating successful connection" width="800" height="52"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  How Git works
&lt;/h1&gt;

&lt;p&gt;There are some different processes involved when using Git;&lt;/p&gt;

&lt;h2&gt;
  
  
  Working directory
&lt;/h2&gt;

&lt;p&gt;This is the project folder where I create and edit files. When I make a change, Git detects that the file has been changed, but the change has not yet been prepared for a commit.&lt;br&gt;
After making sure I was in the right folder using;&lt;br&gt;
&lt;code&gt;cd Desktop&lt;/code&gt;,&lt;br&gt;
I began by creating these folders using;&lt;br&gt;
&lt;code&gt;mkdir my-first-GitHub-project&lt;/code&gt;&lt;br&gt;
&lt;code&gt;mkdir data&lt;/code&gt;&lt;br&gt;
&lt;code&gt;mkdir notebooks&lt;/code&gt;&lt;br&gt;
&lt;code&gt;mkdir scripts&lt;/code&gt;&lt;br&gt;
&lt;code&gt;touch README.md&lt;/code&gt;&lt;br&gt;
&lt;code&gt;touch analysis.py&lt;/code&gt;&lt;br&gt;
Then, I input some text into the readme file using;&lt;br&gt;
&lt;code&gt;nano README.md&lt;/code&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Staging
&lt;/h2&gt;

&lt;p&gt;This is the process of selecting the changes I want to include in the next commit using:&lt;br&gt;
&lt;code&gt;git add .&lt;/code&gt; (&lt;em&gt;The dot represents the current directory&lt;/em&gt;)&lt;br&gt;
You can check which files have not yet been tracked, or have been modified, or staged using:&lt;br&gt;
&lt;code&gt;git status&lt;/code&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Commits
&lt;/h2&gt;

&lt;p&gt;A commit is a record of a checkpoint in the project's history. It should clearly describe what has been added/changed.&lt;br&gt;
Once the files I have chosen are staged, they can be recorded in a commit:&lt;br&gt;
&lt;code&gt;git commit -m "Add Analysis Project"&lt;/code&gt;&lt;br&gt;
Now the project is a Git repository on my computer. We've still not yet uploaded to GitHub.&lt;/p&gt;

&lt;h2&gt;
  
  
  GitHub Repository
&lt;/h2&gt;

&lt;p&gt;The purpose of this repository is to become the remote location connected to my existing local repository. Next, is to tell Git the location of the remote repository. Once I created a GitHub repository, I used the link provided under SSH connection in Git;&lt;br&gt;
&lt;code&gt;git remote add origin (paste the link here)&lt;/code&gt;&lt;br&gt;
The connection can be checked using;&lt;br&gt;
&lt;code&gt;git remote -v&lt;/code&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Push
&lt;/h2&gt;

&lt;p&gt;Now, it's time to push the project existing locally to GitHub using;&lt;br&gt;
&lt;code&gt;git push -u origin main&lt;/code&gt;&lt;br&gt;
After running the command successfully, I refreshed the GitHub repository page and saw the project files that I had created on my pc.&lt;/p&gt;

&lt;h1&gt;
  
  
  In Conclusion
&lt;/h1&gt;

&lt;p&gt;What I learned from this process, is that Git is what tracks and manages the history of a project, while GitHub is the online platform for hosting and collaborating on that project. SSH provides secure authentication between my pc and GitHub. &lt;br&gt;
As someone beginning a journey in Data Science and Analytics, learning Git is clearly a very useful technical skill. While my first GitHub push may have been a relatively small achievement, it introduced me to a space that will evolve far beyond this first project. &lt;/p&gt;

</description>
      <category>beginners</category>
      <category>git</category>
      <category>github</category>
      <category>ssh</category>
    </item>
    <item>
      <title>Dipping My Toe In The Cold, Blue TechWorld...</title>
      <dc:creator>Wairimu Becky</dc:creator>
      <pubDate>Sun, 16 Aug 2026 18:04:55 +0000</pubDate>
      <link>https://dev.to/wairimu_becky/dipping-my-toe-in-the-cold-blue-techworld-lio</link>
      <guid>https://dev.to/wairimu_becky/dipping-my-toe-in-the-cold-blue-techworld-lio</guid>
      <description>&lt;h1&gt;
  
  
  Hello World
&lt;/h1&gt;

&lt;p&gt;I've been interested in the world of technology for a very long time. Although I have to admit, like many others, I was also a little scared. It all seems like a different dimension of 0's and 1's. In this short review, I will tell you about my first week at LuxDevHq Academy, studying Data Engineering and Data Analysis. &lt;/p&gt;

&lt;h1&gt;
  
  
  On-Boarding at Lux
&lt;/h1&gt;

&lt;p&gt;Day one started with a short class on markdown lingo, for the very purpose of writing this article, as I am now. It was relatively easy to comprehend, and practicing with it has been kind of fun. &lt;/p&gt;

&lt;h1&gt;
  
  
  And then we began the journey downhill
&lt;/h1&gt;

&lt;p&gt;If I left day 1 feeling good and mildly confident, day 2,3 and 4 just smashed me. We were being guided to install some of the apps we will be using for the duration of our course. These include postgresql, dbeaver, gitbash, Power BI, just to name a few. Although setting up connections to the online servers was abit hectic, it was still do-able. I started seeing stars when it was time to connect my github and gitbash accounts. Creating an SSH Key?&lt;br&gt;
This was me the entire time...&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ftqw8lxatyfq8phlvxeum.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ftqw8lxatyfq8phlvxeum.jpg" alt="A lady looking confused" width="800" height="721"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Eventually, the Sun shone again
&lt;/h1&gt;

&lt;p&gt;Despite the heavy challenges (and believe me they were heavy) that were associated with this process, we persevered and emerged victorious in the end. Along that brief journey I discovered that my course mates are hilarious, and that we all have what it takes to see it through to the end. &lt;br&gt;
Yes, I was finally able to create a ssh key. We also have incredible instructors. And it doesn't seem so hard now but then!&lt;/p&gt;

&lt;p&gt;Dear Tech World, to me you seem a huge, formidable ocean. And I plan to swim your entirety. So, this is me, buckling up for the ride. &lt;br&gt;
How was your first experience in the tech world like?&lt;/p&gt;

</description>
      <category>beginners</category>
    </item>
  </channel>
</rss>
