<?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: Makori Nyachaki</title>
    <description>The latest articles on DEV Community by Makori Nyachaki (@makorinyachaki).</description>
    <link>https://dev.to/makorinyachaki</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%2F930536%2F9502c910-1809-4df6-9150-73fd2ff4250c.jpg</url>
      <title>DEV Community: Makori Nyachaki</title>
      <link>https://dev.to/makorinyachaki</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/makorinyachaki"/>
    <language>en</language>
    <item>
      <title>Building a Jumia Product Performance Dashboard in Excel.</title>
      <dc:creator>Makori Nyachaki</dc:creator>
      <pubDate>Sat, 05 Sep 2026 12:31:13 +0000</pubDate>
      <link>https://dev.to/makorinyachaki/building-a-jumia-product-performance-dashboard-in-excel-3l6l</link>
      <guid>https://dev.to/makorinyachaki/building-a-jumia-product-performance-dashboard-in-excel-3l6l</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;Building a professional dashboard is rarely a simple task; it requires careful planning and a series of strategic decisions. A clean, well-structured build ensures that complex business contexts are easy to understand, providing stakeholders with an immediate overview of the problem at hand, key findings, and actionable solutions. Clarity is the hallmark of an effective dashboard.&lt;/p&gt;

&lt;p&gt;In this post, we will analyze Jumia's product performance to translate raw data into meaningful insights that drive business growth and improve service delivery. By examining customer engagement, pricing models, and promotional effectiveness, we can better understand the specific factors influencing product success.&lt;/p&gt;

&lt;h2&gt;
  
  
  Business Questions
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Are larger discounts correlated with a higher volume of reviews?&lt;/li&gt;
&lt;li&gt;Do highly-rated products naturally attract stronger customer engagement?&lt;/li&gt;
&lt;li&gt;What is the relationship between product pricing and customer ratings?&lt;/li&gt;
&lt;li&gt;Which products represent the top performers based on ratings and review volume?&lt;/li&gt;
&lt;li&gt;Which products require a pivot in their current pricing or marketing strategy?&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Data Methodology
&lt;/h2&gt;

&lt;h2&gt;
  
  
  Data Quality Audit
&lt;/h2&gt;

&lt;p&gt;After receiving the dataset, find any errors that may exist within the dataset. We checked whether the dataset had headers, checked for formatting, duplicates, missing values, data types, and any inconsistencies. We used filters and conditional formatting to find out where these errors were. This was very helpful in identifying the errors during the data cleaning process.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Note:&lt;/em&gt; Copy your dataset and retain the original. Work on the copied dataset.&lt;/p&gt;

&lt;p&gt;We found the following errors and inconsistencies in the dataset:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Mispelt headings &lt;em&gt;Ratingd&lt;/em&gt; instead of &lt;em&gt;Rating&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;Mismatching Header cases &lt;em&gt;old prices&lt;/em&gt; and &lt;em&gt;Current prices&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;Trailing white spaces and extra spaces in column 1&lt;/li&gt;
&lt;li&gt;Duplicates: we found 3  duplicates with an exact match in all fields.&lt;/li&gt;
&lt;li&gt;Negative review values in the reviews column&lt;/li&gt;
&lt;li&gt;One price range in both the &lt;em&gt;Current Price&lt;/em&gt; and &lt;em&gt;Old Prices&lt;/em&gt; columns instead of a price value.&lt;/li&gt;
&lt;li&gt;Improper data types in the &lt;em&gt;Rating&lt;/em&gt; and &lt;em&gt;Prices&lt;/em&gt; columns.&lt;/li&gt;
&lt;li&gt;Missing values in the &lt;code&gt;Rating&lt;/code&gt; and &lt;code&gt;Review&lt;/code&gt; columns.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So, after copying our dataset into the new sheet to retain the original dataset, create a data table. Select all the data, go to &lt;em&gt;Insert &amp;gt; Table&lt;/em&gt; from the &lt;em&gt;Tables group section.&lt;/em&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%2Ff7jtk944o8quyxu28ll4.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%2Ff7jtk944o8quyxu28ll4.png" alt="An image of Raw Data" width="800" height="388"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Fig 1: An image of Raw Data&lt;/em&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Data Cleaning
&lt;/h2&gt;

&lt;p&gt;Now that we have understood the structure and where the underlying issues are in our data, it is time to get rid of the messy details from our dataset in readiness for analysis.&lt;/p&gt;

&lt;p&gt;The following are the steps and decisions that we made through the cleaning process.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;For the headings, we had to change to correct spellings for &lt;em&gt;Rating&lt;/em&gt; from &lt;em&gt;Ratingd&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;For the price columns, we had to convert headers using the &lt;code&gt;PROPER()&lt;/code&gt; function to convert them to proper case. That is, the first letter of each word is capitalized.&lt;br&gt;
&lt;code&gt;&lt;br&gt;
=PROPER(B1)&lt;br&gt;
=PROPER(C1)&lt;br&gt;
&lt;/code&gt;&lt;br&gt;
&lt;em&gt;B1&lt;/em&gt; and &lt;em&gt;C1&lt;/em&gt;: is the address to the &lt;em&gt;Current Price&lt;/em&gt; and &lt;em&gt;Old Price&lt;/em&gt; headers in the sheet. The function returns the new text formatted to proper case. &lt;br&gt;
Then we used copy and paste special(Paste as Values), where we copied and pasted the new text to the header, replacing the old one.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Removed all trailing whitespace and extra spaces using the &lt;code&gt;TRIM()&lt;/code&gt; function. &lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;em&gt;Steps&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Insert a new column to the right of the &lt;em&gt;Product&lt;/em&gt; column&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;In Cell B2, type the function below:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;=TRIM(A2)&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Press &lt;em&gt;Enter&lt;/em&gt; to return the new text value&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The column is auto-filled.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;_Copy and Paste Special _&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Select all the values in the B column, i.e., from B2:B116&lt;/li&gt;
&lt;li&gt;Copy the values using the Shortcut &lt;code&gt;CTRL + C&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Then, select cell A2, and right- click on it&lt;/li&gt;
&lt;li&gt;Then from the dialog box choose, &lt;em&gt;Paste as Values&lt;/em&gt; instead of &lt;em&gt;Paste&lt;/em&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Use the &lt;code&gt;CLEAN()&lt;/code&gt; function to also remove non-printable characters from the &lt;em&gt;Product&lt;/em&gt; column.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Steps&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Clear the column we used for trimming&lt;/li&gt;
&lt;li&gt;In &lt;em&gt;B2&lt;/em&gt; enter the following function
&lt;code&gt;=CLEAN(A2)&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Copy the values in &lt;em&gt;B2:B116&lt;/em&gt;, paste special in in cell A2.&lt;/li&gt;
&lt;/ul&gt;

&lt;ol&gt;
&lt;li&gt;Duplicates&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Three duplicates were found; they were an exact match in every field. Remove them to avoid redundancy and incorrect results of analysis due to redundancy.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Steps&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Select all the data&lt;/li&gt;
&lt;li&gt;On Data Tab click on &lt;em&gt;Remove Duplicates&lt;/em&gt; in the &lt;em&gt;Data Tools&lt;/em&gt; group section&lt;/li&gt;
&lt;li&gt;Select all the fields, and then click &lt;em&gt;OK&lt;/em&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A confirmation pop-up message will show you the number of duplicates removed.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Negative Reviews&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;For the negative values in the &lt;em&gt;Reviews&lt;/em&gt; column, convert them to absolute values using the &lt;code&gt;ABS()&lt;/code&gt; function.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Steps&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Insert a new column to the right of the &lt;em&gt;review&lt;/em&gt; column&lt;/li&gt;
&lt;li&gt;On the new column, F, enter the following function in cell &lt;em&gt;F2&lt;/em&gt;:
&lt;code&gt;=ABS(E2)&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;E2 is the address of the first review negative value&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Press Enter&lt;/li&gt;
&lt;li&gt;Copy and Paste Special the values to replace those in the &lt;em&gt;review&lt;/em&gt; column.&lt;/li&gt;
&lt;/ul&gt;

&lt;ol&gt;
&lt;li&gt;Price Ranges&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Used the midpoint of the price range to get the value for the particular products. We found the midpoint using the formula:&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;`Price = (Lower Range Limit + Upper Range Limit) / 2`
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;ol&gt;
&lt;li&gt;Data Types&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;em&gt;Current Price and Old Price Columns&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Used Find and Replace to replace &lt;em&gt;KSh&lt;/em&gt; with Blanks&lt;/li&gt;
&lt;li&gt;Converted the remaining values to &lt;em&gt;Number&lt;/em&gt; type, then to &lt;em&gt;Currency&lt;/em&gt; type to 2 decimal places with the symbol &lt;em&gt;KSh&lt;/em&gt;, and used the &lt;em&gt;,&lt;/em&gt; 1000 separator &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;Rating&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Converted Rating to &lt;em&gt;Number&lt;/em&gt; type, formatted to one decimal place.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Review&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Converted &lt;em&gt;Review&lt;/em&gt; column to &lt;em&gt;Number&lt;/em&gt; type, a whole number.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Steps to Change to Number Type&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Select the Column with the data&lt;/li&gt;
&lt;li&gt;Go to the Home tab; in the Number group section, from the drop-down, select &lt;em&gt;More Number formats&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;On the left side of the pop-up window, select &lt;em&gt;Number&lt;/em&gt; or &lt;em&gt;Currency&lt;/em&gt; and specify the other options.&lt;/li&gt;
&lt;li&gt;Then click &lt;em&gt;OK&lt;/em&gt; to apply the changes.&lt;/li&gt;
&lt;/ul&gt;

&lt;ol&gt;
&lt;li&gt;Missing Values&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;For missing values and blanks, never assume anything. Leave them blank as they are. Note that a &lt;em&gt;Blank&lt;/em&gt; does not mean zero.&lt;/p&gt;

&lt;p&gt;Exclude blanks from metrics that require the missing field.&lt;/p&gt;

&lt;p&gt;Add a data status field (for example, &lt;em&gt;Complete&lt;/em&gt;, &lt;em&gt;Missing Rating&lt;/em&gt;) if it can help users understand better.&lt;/p&gt;
&lt;h2&gt;
  
  
  Enriching Fields and Excel Formulas
&lt;/h2&gt;

&lt;p&gt;We added the following columns to our cleaned data.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;1. Discount Amount&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Use the following formula to get the values for the column:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;=@[Old Price]-@[Current Price]&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Optionally, compare the advertised discount with the calculated discount:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;=IFERROR(([@[Old Price]]-[@[Current Price]])/[@[Old Price]],"")&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Flag any difference instead of overwriting the advertised value.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;2. Rating Category&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Rating values are classified as follows:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Poor&lt;/em&gt; &amp;lt; 3&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Average&lt;/em&gt; Between 3 and 4&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Excellent&lt;/em&gt; &amp;gt; 4.5&lt;/p&gt;

&lt;p&gt;&lt;code&gt;=IF([@Discount]="", "Missing", IF([@Discount]&amp;lt;20%, "Low Discount", IF([@Discount]&amp;lt;=40%, "Medium Discount", "High Discount"))).&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;4.1-4.5 are not classified; if the original boundaries must be followed literally, label 4.1-4.5 as &lt;code&gt;Unclassified&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;3. Discount Category&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Classify your &lt;em&gt;Discount&lt;/em&gt; into the following categories:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Low Discount&lt;/em&gt; &amp;lt; 20%&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Medium Discount&lt;/em&gt; 20%-40%&lt;/p&gt;

&lt;p&gt;&lt;em&gt;High Discount&lt;/em&gt; &amp;gt; 40%&lt;/p&gt;

&lt;p&gt;&lt;code&gt;=IF([@Discount]="", "Missing", IF([@Discount]&amp;lt;20%, "Low Discount", IF([@Discount]&amp;lt;=40%, "Medium Discount", "High Discount")))&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;4. Price Category&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;On the &lt;code&gt;Analysis&lt;/code&gt; worksheet, define thresholds rather than arbitrary values. A preferred approach uses the first and third quartiles&lt;/p&gt;

&lt;p&gt;&lt;code&gt;&lt;br&gt;
    =QUARTILE.INC(tblProducts[Current Price],1)&lt;br&gt;
    =QUARTILE.INC(tblProducts[Current Price],3)&lt;br&gt;
&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Name those sales as &lt;code&gt;Price_Q1&lt;/code&gt; and &lt;code&gt;Price_Q3,&lt;/code&gt; respectively.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Use the following classifications&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;code&gt;=IF([@[Current Price]]="", "Missing", IF([@[Current Price]]&amp;lt;=Price_Q1, "Low Price", IF([@[Current Price]]&amp;lt;=Price_Q3, "Medium Price", "High Price")))&lt;/code&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Remember to record the final KSH thresholds in the &lt;code&gt;Data Dictionary&lt;/code&gt; for ease of interpretation by other users.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;5. Engagement and Performance Flag&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;For strong 'Customer Engagement,'  define a measurable rule such as review count at or above the 75th Percentile. You may also create flags for:&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;high discount and low rating;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;high discount and low engagement;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;many reviews and average rating; and&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;strong engagement and excellent rating&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;State the exact thresholds.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;Note:&lt;/em&gt; Do not select the products subjectively.&lt;/p&gt;
&lt;h2&gt;
  
  
  Pivot Tables and Analysis
&lt;/h2&gt;

&lt;p&gt;Calculate:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Metric&lt;/th&gt;
&lt;th&gt;Example Excel formula&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Total products&lt;/td&gt;
&lt;td&gt;&lt;code&gt;=ROWS(tblProducts[Product])&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Average current price&lt;/td&gt;
&lt;td&gt;&lt;code&gt;=AVERAGE(tblProducts[Current Price])&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Average old price&lt;/td&gt;
&lt;td&gt;&lt;code&gt;=AVERAGE(tblProducts[Old Price])&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Average discount&lt;/td&gt;
&lt;td&gt;&lt;code&gt;=AVERAGE(tblProducts[Discount])&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Average rating&lt;/td&gt;
&lt;td&gt;&lt;code&gt;=AVERAGE(tblProducts[Rating])&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Total reviews&lt;/td&gt;
&lt;td&gt;&lt;code&gt;=SUM(tblProducts[Review])&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Most expensive price&lt;/td&gt;
&lt;td&gt;&lt;code&gt;=MAX(tblProducts[Current Price])&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Least expensive price&lt;/td&gt;
&lt;td&gt;&lt;code&gt;=MIN(tblProducts[Current Price])&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Then find and return the product names with the least and most expensive prices:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;=XLOOKUP(MAX(tblProducts[Current Price]),tblProducts[Current Price],tblProducts[Product])
=XLOOKUP(MIN(tblProducts[Current Price]),tblProducts[Current Price],tblProducts[Product])
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Report all ties using &lt;code&gt;FILTER,&lt;/code&gt;, not only the first match.&lt;/p&gt;

&lt;h3&gt;
  
  
  Scatter Plots
&lt;/h3&gt;

&lt;p&gt;To establish relationships between variables, create scatter plots, using one product per point:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Discount (x) versus reviews (y);&lt;/li&gt;
&lt;li&gt;Rating (x) versus reviews (y); and&lt;/li&gt;
&lt;li&gt;Current price (x) versus rating (y).&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Add a linear trendline, display the equation and R-squared value, and calculate the Pearson Correlation:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;=CORREL(tblProducts[Discount],tblProducts[Review])
=CORREL(tblProducts[Rating],tblProducts[Review])
=CORREL(tblProducts[Current Price],tblProducts[Rating])
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;A PivotTable or Filter helper range containing only complete pairs may be required because blanks can cause errors in some versions of Excel.&lt;/li&gt;
&lt;li&gt;Interpret direction carefully.&lt;/li&gt;
&lt;li&gt;Note that correlation does not establish causation.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Ranked Tables
&lt;/h3&gt;

&lt;p&gt;Create ranked tables for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;top 5 and bottom 5 products by rating;&lt;/li&gt;
&lt;li&gt;top 10 products by discount;&lt;/li&gt;
&lt;li&gt;top 10 products by reviews;&lt;/li&gt;
&lt;li&gt;top 10 products by rating;&lt;/li&gt;
&lt;li&gt;products with high discounts but low ratings;&lt;/li&gt;
&lt;li&gt;products with high discounts but low engagement; and&lt;/li&gt;
&lt;li&gt;products with many reviews but average ratings.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Use a PivotTable(&lt;em&gt;Rows:&lt;/em&gt; Product; &lt;em&gt;Values:&lt;/em&gt; relevant measure; sort in ascending/descending order, and apply &lt;em&gt;Value Filters &amp;gt; Top 10&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;Use review count as a tiebreaker for rating ranks and rating as a tiebreaker for review ranks. Exclude ratings from rating lists and show how you handle ties.&lt;/p&gt;

&lt;h3&gt;
  
  
  Seller Performance Questions
&lt;/h3&gt;

&lt;p&gt;Translate ranked tables into evidence-based answers:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Strong Demand&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Which products have review counts above the engagement threshold?&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Pricing/Marketing Attention&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Which products combine weak engagement or weak ratings with high price/high discount?&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Many Reviews and Average Experience&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Which products have high engagement but fall in the Average rating category?&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Promotion Inefficiency&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Which high-discount products remain below the engagement threshold?&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%2Fq5l7eqwvk5ccube575zm.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%2Fq5l7eqwvk5ccube575zm.png" alt="Cleaned Data" width="800" height="403"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Fig 2: Cleaned Data&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Pivot Tables
&lt;/h3&gt;

&lt;p&gt;These are the suggested PivotTables:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;PivotTable&lt;/th&gt;
&lt;th&gt;Rows&lt;/th&gt;
&lt;th&gt;Values&lt;/th&gt;
&lt;th&gt;Recommended visual&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Rating mix&lt;/td&gt;
&lt;td&gt;Rating Category&lt;/td&gt;
&lt;td&gt;Count of Product&lt;/td&gt;
&lt;td&gt;Doughnut or column chart&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Discount mix&lt;/td&gt;
&lt;td&gt;Discount Category&lt;/td&gt;
&lt;td&gt;Count of Product&lt;/td&gt;
&lt;td&gt;Column chart&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Price vs rating&lt;/td&gt;
&lt;td&gt;Price Category&lt;/td&gt;
&lt;td&gt;Average of Rating&lt;/td&gt;
&lt;td&gt;Column chart&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Engagement by discount&lt;/td&gt;
&lt;td&gt;Discount Category&lt;/td&gt;
&lt;td&gt;Average/Sum of Review&lt;/td&gt;
&lt;td&gt;Column chart&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Top products by rating&lt;/td&gt;
&lt;td&gt;Product&lt;/td&gt;
&lt;td&gt;Average of Rating&lt;/td&gt;
&lt;td&gt;Horizontal bar chart&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Top products by reviews&lt;/td&gt;
&lt;td&gt;Product&lt;/td&gt;
&lt;td&gt;Sum of Review&lt;/td&gt;
&lt;td&gt;Horizontal bar chart&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Top products by discount&lt;/td&gt;
&lt;td&gt;Product&lt;/td&gt;
&lt;td&gt;Average of Discount&lt;/td&gt;
&lt;td&gt;Horizontal bar chart&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;ul&gt;
&lt;li&gt;And use &lt;em&gt;Insert &amp;gt; Slicer&lt;/em&gt; for &lt;code&gt;Rating Category&lt;/code&gt;, &lt;code&gt;Discount Category&lt;/code&gt;, and &lt;code&gt;Price Category&lt;/code&gt;. Connect each slicer to every compatible PivotTable using &lt;em&gt;Report Connections&lt;/em&gt; (or &lt;em&gt;Pivot Table Connections&lt;/em&gt;).&lt;/li&gt;
&lt;li&gt;Remember to test each slicer independently.&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%2F303e2r9e0ltnzyoq9ytb.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%2F303e2r9e0ltnzyoq9ytb.png" alt="Pivot Tables and Pivot Charts" width="800" height="354"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Fig 3: Pivot Tables and Pivot Charts&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Dashboard Design and Slicer Connections
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Here is the structure of the Jumia Product Performance dashboard:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;+------------------------------------------------------------------+
| Title, refresh date, and slicers                                 |
+------------------------------------------------------------------+
| Total Products | Avg Price | Avg Discount | Avg Rating | Reviews |
+------------------------------------------------------------------+
| Top 10 by Rating | Top 10 by Reviews | Top 10 by Discount        |
+------------------------------------------------------------------+
| Discount vs Reviews | Rating vs Reviews | Price vs Rating         |
+------------------------------------------------------------------+
| Rating Mix | Discount Mix | Key Insights / Recommendations       |
+------------------------------------------------------------------+
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;em&gt;Dashboard Standards&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Ensure a clean and tidy dashboard is created. Use consistent color, formatting, font, and relevant symbols for the different columns. &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%2Fu13be8zodgaclcq5cibg.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%2Fu13be8zodgaclcq5cibg.png" alt="Image showing Jumia Product Performance Dashboardn" width="800" height="401"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Fig 4: Image showing Jumia Product Performance Dashboard&lt;/em&gt; &lt;/p&gt;

&lt;h2&gt;
  
  
  Key Findings
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;High discounts do not mean a high number of reviews or better engagement. From the analysis, there is no relationship at all between discount and reviews. The correlation coefficient between discount and reviews is &lt;em&gt;-0.14&lt;/em&gt;.&lt;/li&gt;
&lt;li&gt;There is a weak relationship that establishes no pattern between rating and reviews. This indicates that more reviews do not translate to higher ratings in the data; hence, no causation. The correlation coefficient stands at 0.06.&lt;/li&gt;
&lt;li&gt;The analysis establishes a weak positive correlation between prices and ratings of 0.11. Prices are not influenced by the rating of the product.&lt;/li&gt;
&lt;/ul&gt;

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

&lt;ul&gt;
&lt;li&gt;Investigate quality issues on highly discounted products but have low ratings.&lt;/li&gt;
&lt;li&gt;Find out why highly rated products have higher prices than the average and lower-rated products. Does this influence come from sales made? &lt;/li&gt;
&lt;li&gt;Combine promotions of products with high ratings and higher prices to increase engagement and check if they can translate to sales.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Limitations and Lessons
&lt;/h2&gt;

&lt;p&gt;We've learnt valuable lessons throughout the project. We were able to use and apply functions, build PivotTables and Pivot Charts, build a clean and interactive dashboard, access price, discount, rating, and engagement relationships, clean data for real data analysis, and communicate findings, limitations, and business recommendations. This will go along way in helping sellers to make informed business decisions for their businesses.&lt;/p&gt;

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

&lt;p&gt;None of the performance metrics- discount, rating, and reviews translate to better engagement. They do not influence either metric or engagement.&lt;/p&gt;

&lt;h2&gt;
  
  
  Links to GitHub
&lt;/h2&gt;

&lt;p&gt;To review and see the completed project, visit &lt;a href="https://github.com/MakoriNyachaki/jumia-product-performance-dashboard" rel="noopener noreferrer"&gt;Jumia Product Performance Dashboard&lt;/a&gt; on GitHub.&lt;/p&gt;

</description>
      <category>data</category>
      <category>datascience</category>
      <category>msexcel</category>
      <category>github</category>
    </item>
    <item>
      <title>Getting Started with Excel for Data Analytics: From Basics to Data Cleaning</title>
      <dc:creator>Makori Nyachaki</dc:creator>
      <pubDate>Sat, 29 Aug 2026 22:12:42 +0000</pubDate>
      <link>https://dev.to/makorinyachaki/getting-started-with-excel-for-data-analytics-from-basics-to-data-cleaning-g44</link>
      <guid>https://dev.to/makorinyachaki/getting-started-with-excel-for-data-analytics-from-basics-to-data-cleaning-g44</guid>
      <description>&lt;h1&gt;
  
  
  Getting Started with Excel for Data Analytics: From Basics to Data Cleaning.
&lt;/h1&gt;

&lt;h1&gt;
  
  
  Excel
&lt;/h1&gt;

&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;Excel is one of the most foundational tools critical to Data Analysts. It is useful for preparing data for analysis. Excel can be used from the point of data collection to creating dashboards. It is the foundational tool used by most Data Analysts in cleaning, reformatting, and structuring the dataset ready for analysis. Excel provides unique technical tools that support collecting, cleaning, analyzing, visualizing, and reporting. Removing duplicates, filtering and sorting, validating data, aggregating, and performing some statistical operations are some of the major tools that Microsoft Excel supports and are useful during data analytics.&lt;/p&gt;

&lt;p&gt;Excel provides a ton of benefits to many organizations and businesses. It can serve as a database for storing and retrieving business data, i.e., sales data; it can serve as an electronic ledger, a data analytics tool, and many more functions.&lt;/p&gt;

&lt;h2&gt;
  
  
  Understanding Excel
&lt;/h2&gt;

&lt;p&gt;Before diving into data analytics using Excel, we first need to understand Excel and all its functional components that are core to data analysis. This will give us an overview of the Excel interface and basic functions for the different components.&lt;/p&gt;

&lt;h4&gt;
  
  
  Interface
&lt;/h4&gt;

&lt;ol&gt;
&lt;li&gt;Ribbon - Contains all the command tabs you will work with. The tabs are: File, Home, Insert, Draw, Page Layout, Formulas, Data, Review, View, Help, and many others. These tabs have more groups from which we can access and apply different commands to our dataset.&lt;/li&gt;
&lt;li&gt;Toolbar - At the top right corner of the workbook. Used to hold and display the most common commands we use in Excel, like "Save", "Undo", "Redo", or/and any other command you may wish to add to the toolbar.&lt;/li&gt;
&lt;li&gt;Scroll Bar(Horizontal and Vertical) - Scrollbars at the end of the worksheet. The vertical scrollbar is used to scroll through your worksheet up and down, and vice versa. The horizontal one helps you scroll through his/her worksheet from left to right and back.&lt;/li&gt;
&lt;li&gt;Worksheet - Where you work from. It contains cells where you do your data entry.&lt;/li&gt;
&lt;li&gt;Columns - Named alphabetically and move vertically in the worksheet.&lt;/li&gt;
&lt;li&gt;Rows - Named numerically and moves across/horizontals in the worksheet&lt;/li&gt;
&lt;li&gt;Cell - An intersection between a row and a column. Where we enter our data.&lt;/li&gt;
&lt;li&gt;Formula Bar - Where you enter and edit your formulas in Excel.&lt;/li&gt;
&lt;li&gt;Name Bar/ Address Bar - Displays the address of the active cell.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;em&gt;Workbook&lt;/em&gt; - One or more worksheets existing in the same Excel file.&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%2Fr3a9iorgk46yes3vwvl9.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%2Fr3a9iorgk46yes3vwvl9.png" alt=" " width="799" height="405"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h5&gt;
  
  
  Home Tab
&lt;/h5&gt;

&lt;p&gt;Most of our formatting commands will be done from this tab. It is divided into around 8 groups: &lt;br&gt;
    - &lt;em&gt;Clipboard:&lt;/em&gt; From here you can access the &lt;em&gt;Copy&lt;/em&gt;, &lt;em&gt;Cut&lt;/em&gt;, &lt;em&gt;Paste&lt;/em&gt;, and &lt;em&gt;Format Painter&lt;/em&gt; commands.&lt;br&gt;
    - &lt;em&gt;Font:&lt;/em&gt; From here you can access text formatting commands. They include: Bolding, changing font face, font size, borders, highlighting, font color, italicizing, underlining, and many more commands.&lt;br&gt;
    - &lt;em&gt;Alignment:&lt;/em&gt; You can access text alignment(Vertical and horizontal) commands, orientation, and indentation commands.&lt;br&gt;
    - &lt;em&gt;Number:&lt;/em&gt; Where you can access different data type formatting features. i.e., date, currency, number, and many more.&lt;br&gt;
    - &lt;em&gt;Styles:&lt;/em&gt; Conditional Formatting, Formatting as Table, and applying different cell styles.&lt;br&gt;
    - &lt;em&gt;Cells:&lt;/em&gt; You can insert, delete, and format cells from this group.&lt;br&gt;
    - &lt;em&gt;Editing:&lt;/em&gt; AutoSum, find and replace, filter, and sort command options are accessible from this group.&lt;br&gt;
    - &lt;em&gt;Add-ins:&lt;/em&gt; Where you can access your Excel add-ins.&lt;/p&gt;

&lt;h5&gt;
  
  
  Insert Tab
&lt;/h5&gt;

&lt;p&gt;A very important tab too. We can access the following groups essential for data analytics:&lt;br&gt;
    - &lt;em&gt;Tables:&lt;/em&gt; We can work with Pivot Tables from this group&lt;br&gt;
    - &lt;em&gt;Charts:&lt;/em&gt; We can create and insert charts from this group during our visualization and reporting.&lt;br&gt;
    - &lt;em&gt;Sparklines:&lt;/em&gt; Insert sparklines for monitoring trends in our analytics.&lt;br&gt;
    - &lt;em&gt;Filter:&lt;/em&gt; You can insert slicers and timelines, which are used for filtering our data and output in the dashboard mostly.&lt;/p&gt;

&lt;h5&gt;
  
  
  Formulas Tab
&lt;/h5&gt;

&lt;p&gt;This tab is very essential and critical to data aggregation and statistical manipulation. The tab contains formulas and functions that are used to carry out mathematical and statistical manipulation on all numeric and textual data. It contains the following sections:&lt;br&gt;
    - &lt;em&gt;Function Library:&lt;/em&gt; Contains Financial, Logical, Text, Date &amp;amp; Time, Lookup &amp;amp; Reference, Math &amp;amp; Trigonometric, and many more functions used while working with our dataset.&lt;br&gt;
    - &lt;em&gt;Formula auditing:&lt;/em&gt; Contains tools that are used to understand the logic and structure of complex formulas(Dependents and Precedents). &lt;/p&gt;

&lt;h5&gt;
  
  
  Data
&lt;/h5&gt;

&lt;p&gt;It contains the following groups, which serve an important role in preparing our data for analysis:&lt;br&gt;
    - &lt;em&gt;Get &amp;amp; Transform:&lt;/em&gt; Used to import data from different sources, i.e., web and CSV files. Also, it is useful in doing transformation of datasets into Excel-compatible datasets.&lt;br&gt;
    - &lt;em&gt;Sort and Filter:&lt;/em&gt; Used for sorting and filtering our dataset. This is important when you want to understand your data ranges or find anomalies that exist in your dataset for correction and further investigation.&lt;br&gt;
    - &lt;em&gt;Data Tools:&lt;/em&gt; From here, we can get data validation commands, remove duplicates, convert text into columns, and many other commands that help maintain data consistency, reliability, and integrity during collection and analysis.&lt;br&gt;
    - &lt;em&gt;Forecast:&lt;/em&gt; Used to do what-if analysis and forecast what will happen in the future to help with reporting and in making informed decisions.&lt;/p&gt;

&lt;h2&gt;
  
  
  Data Analysis
&lt;/h2&gt;

&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;Data analysis is the process of investigating a dataset to uncover patterns, trends, and insights for informed decision-making and to drive growth and success in business and organizations. Through data analytics, businesses and organizations can solve problems, improve operations, and optimize stakeholder decisions. Therefore, data analysis involves transforming raw opinions or data into meaningful facts or information.&lt;/p&gt;

&lt;p&gt;Data analysis is crucial across fields like marketing, sales, health, finance, sports, and retail industries. It helps industry owners to be decisive and informed for a better future that fosters growth.&lt;/p&gt;

&lt;h3&gt;
  
  
  Types of Data Analytics
&lt;/h3&gt;

&lt;p&gt;These are the types of data analytics. They all serve to achieve a common goal.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Descriptive - Used to answer the question: what happened? It investigates and summarizes historical uncover trends and patterns. Involves data aggregation and visualization.&lt;/li&gt;
&lt;li&gt;Prescriptive - Used to answer the question: what is likely to happen next? It uses models to foretell what the future looks like based on past events. Involves machine learning and linear regression.&lt;/li&gt;
&lt;li&gt;Prescriptive Analytics - Answers the question: What should we do? It recommends actions by combining data analysis with optimization techniques. Involves algorithm optimization.&lt;/li&gt;
&lt;li&gt;Diagnostic - Answers the question: Why did it happen? Uses statistical methods to identify the cause. Involves correlation analysis and hypothesis testing.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Steps in Data Analysis
&lt;/h2&gt;

&lt;p&gt;There are several steps involved in data analysis. The sequential steps are important if you want to begin collecting data by yourself.&lt;/p&gt;

&lt;p&gt;We will use a publicly available dataset to illustrate the steps involved in data preparation before the actual analysis. Some of the steps may require actual data collection; hence, our dataset will not be used in those steps but rather in the preceding steps.&lt;/p&gt;

&lt;p&gt;We are going to use the &lt;a href="https://www.kaggle.com/datasets/ahmedmohamed2003/cafe-sales-dirty-data-for-cleaning-training" rel="noopener noreferrer"&gt;Cafe Sales - Dirty Data for Cleaning&lt;/a&gt; Training Dataset, available for download from Kaggle.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Note:&lt;/em&gt; Before you start the process, ensure that you keep a copy of your data.&lt;/p&gt;

&lt;h3&gt;
  
  
  Data Preparation
&lt;/h3&gt;

&lt;p&gt;This is the process of collecting, cleaning, transforming, and analyzing the collected data. It readies &lt;/p&gt;

&lt;p&gt;Data preparation ensures its accuracy, reliability, consistency, and regulatory compliance. These increase the level of trust and collaboration.&lt;/p&gt;

&lt;h3&gt;
  
  
  Data Collection
&lt;/h3&gt;

&lt;p&gt;Data collection involves gathering raw opinions and facts right from the source.&lt;/p&gt;

&lt;p&gt;There are various methods involved in data collection, which include but are not limited to: Conducting interviews, surveys, API integrations, IoT devices, web scraping, observation, or getting it from third-party sources.&lt;/p&gt;

&lt;p&gt;The data is then loaded into tools like spreadsheets for further activities like cleaning and analysis.&lt;/p&gt;

&lt;h3&gt;
  
  
  Data Quality
&lt;/h3&gt;

&lt;p&gt;Before the cleaning process, data is assessed to determine whether it meets the data standards that can help us avoid costly mistakes such as misleading results and flawed decisions.&lt;/p&gt;

&lt;p&gt;Ensuring data is accurate, timely, complete, consistent, relevant, and of integrity is the key objective in this step.&lt;/p&gt;

&lt;h3&gt;
  
  
  Data Cleaning
&lt;/h3&gt;

&lt;p&gt;Data cleaning ensures that datasets are complete, accurate, and consistent before analysis. This is achieved by getting rid of errors, fixing broken data, and addressing all issues that the dataset might have.&lt;/p&gt;

&lt;p&gt;Data cleaning helps us to handle missing values, duplicates, outliers, inconsistent formatting, and irrelevant data.&lt;/p&gt;

&lt;p&gt;From this point forward, we will be using our dataset to demonstrate how we can handle these issues we have listed. We are cleaning our data using &lt;em&gt;Microsoft Excel.&lt;/em&gt; Open your CSV dataset using Excel.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Open the Dataset&lt;/em&gt;&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;- Navigate to the project folder `excel-data-cleaning/`
- Then go to the data folder `data/`
- Double-click on the file `dirty_cafe_sale.csv`; it will open in Excel.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;&lt;em&gt;Saving a copy of your dataset in Excel format&lt;/em&gt;&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;- In  excel on the Ribbon click on the *File* Tab, then go *Save AS*
- Choose your save location. In our case, it is in the project root folder, then in the `dashboard/` subfolder.
- Give it the name, in our case *cleaned_cafe_sales.xlxs*
- Click on *Save*
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Now you have made a copy of your dataset, which is a working file. So inspect your file carefully to determine the missing details and existing mistakes that are visible.&lt;/p&gt;

&lt;p&gt;You can also bold your column titles, convert the dataset into tables, and apply other basic formatting, like changing the font if the current font is not readable.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;To Bold Titles&lt;/em&gt;&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;- Select the first row containing titles.
- Click on the *Home* Tab
- Navigate to the *Font* group section. 
- Click on the *Bold* icon(*B*)
&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fk0e4adhz9nrpyxp7tt2a.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%2Fk0e4adhz9nrpyxp7tt2a.png" alt=" " width="799" height="253"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Alternatively, you can use the shortcut &lt;em&gt;Ctrl + B&lt;/em&gt; to bold your selected titles.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Converting the Dataset into a Table&lt;/em&gt;&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;- Select all your data.
- Click on the *Insert* tab
- In the _Tables_ group section, click on the Table icon.
&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F74ycbthnvy1w58wyuwst.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%2F74ycbthnvy1w58wyuwst.png" alt=" " width="800" height="242"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Alternatively, you can use the &lt;em&gt;Ctrl + T&lt;/em&gt; Keyboard shortcut after selecting your data. This helps us to easily filter and organize our data.&lt;/p&gt;

&lt;h5&gt;
  
  
  Filtering and Sorting
&lt;/h5&gt;

&lt;p&gt;You can filter and sort your dataset to check for blanks and missing information.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;*Filter*
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Applying a filter to your data allows you to select a specific type of data you want to view in a given column. In our case, we want to view &lt;em&gt;Blanks&lt;/em&gt; in the &lt;em&gt;Item&lt;/em&gt; column.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;- Select the data
- Click on the *Home* tab
- On the _Editing_ group section click on *Sort &amp;amp; Filter*
- From the drop-down, click on *Filter*
- A filter icon is displayed on the title column.
&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F6zkcjktgdi6xdus9x26a.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%2F6zkcjktgdi6xdus9x26a.png" alt=" " width="36" height="37"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;- Click on the Filter icon on the title of any column. In the drop-down list of commands, in the Fields section, uncheck _Select All_, scroll through the field list and select *Blanks*, and click *OK* to see only blank fields.
&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F1ypu0uio0g09dcs5drau.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%2F1ypu0uio0g09dcs5drau.png" alt=" " width="800" height="547"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Note:&lt;/em&gt; &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;To clear filters, click on the filter icon on the respective column, then click on &lt;em&gt;Clear Filter from Item&lt;/em&gt;. &lt;/li&gt;
&lt;li&gt;You can also sort the field using the steps. However, you can click on &lt;em&gt;Sort A to Z&lt;/em&gt; - Ascending or &lt;em&gt;Sort Z to A&lt;/em&gt; - Descending order.&lt;/li&gt;
&lt;li&gt;You can also filter or sort custom, i.e., &lt;em&gt;Filter by color&lt;/em&gt; or &lt;em&gt;Sort by color&lt;/em&gt;, in case you have already applied conditional formatting.&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%2Fvqkidagiytk7696h1c8m.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%2Fvqkidagiytk7696h1c8m.png" alt=" " width="394" height="706"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Since our column has blanks, we need to count the blanks to know how many there are using the Excel function:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;=COUNTBLANK(B2:B10001)&lt;/code&gt;: there are 333 blank cells, which translates to around 3.33%. This will help us to understand the amount of data that we need to clean and how it will affect analysis or the level of bias. Below 5%, we will clean our data by replacing blanks with Unknown. We will do cleaning later.&lt;/p&gt;

&lt;h5&gt;
  
  
  Conditional Formatting
&lt;/h5&gt;

&lt;p&gt;Conditional formatting highlights duplicate values, helping in spotting patterns or identifying anomalies.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Applying Conditional Formatting&lt;/em&gt;&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;- Select the columns or range to inspect; in our case, the  _Quantity_ Column.
- Navigate to the *Home* tab.
- On the *Styles* group, Click on _Conditional Formatting_
- Choose a criteria to conditionally format your column i.e. _Highlight Cells_, then Go to _Duplicate Values_, choose a color scheme and Click *OK*.
- All duplicate values in the column will be highlighted.
&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fcj3sj7rej88yn7rzxi5n.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%2Fcj3sj7rej88yn7rzxi5n.png" alt=" " width="598" height="616"&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%2Fnh6sbt1m5q6nf9d96iyk.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%2Fnh6sbt1m5q6nf9d96iyk.png" alt=" " width="800" height="468"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;These are some of the basic tools in Excel we'll use while dealing with missing data, detecting outliers, duplicate detection, identifying inconsistent formats, irrelevant data, and detecting erroneous entries.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;*1. Removing Duplicates*
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Removing duplicates helps analysts to avoid redundancy, which can distort analysis, inflate counts, and skew findings that can lead to wrong and misguided business decisions.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;To remove duplicates&lt;/em&gt;&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;- Select all data
- Click on the *Data* tab
- In the *Data Tools* section, click on the Remove Duplicates icon
&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fjq82eg9sbr717ehjs9bj.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%2Fjq82eg9sbr717ehjs9bj.png" alt=" " width="800" height="135"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;- the fields from which you want to get rid of duplicates. In our case, we want to remove all matching records, so we'll select all fields.
&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fwmym95372qpbk9t44rw3.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%2Fwmym95372qpbk9t44rw3.png" alt=" " width="517" height="459"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;- Click *OK*. All duplicates will be removed, with a pop-up dialog window indicating the total number of duplicates removed.
&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fblcgwwn6et7drbd0gyho.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%2Fblcgwwn6et7drbd0gyho.png" alt=" " width="282" height="180"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In our case, there were no duplicate records; thus, the message was "No duplicate values found."&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;*Handling Missing Values*
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Missing values can result from human error, system limitations, incomplete forms, or data integration issues. All these can lead to inaccurate analyses, biased models, and misleading conclusions due to the variation resulting from missing data.&lt;/p&gt;

&lt;p&gt;Excel provides multiple imputation techniques we can use to handle missing data. These techniques include, but are not limited to, replacing missing values with the mean, median, or mode. This depends on the type of data you are dealing with. For example, a data analyst replaces the product rating with an overall average of the product rating across all blanks in the product rating column to ensure consistent review data.&lt;/p&gt;

&lt;p&gt;We can use the following techniques in Excel to handle missing data:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;1. Filtering and Sorting to Find Blanks&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;You first have to find where missing values are.&lt;/p&gt;

&lt;p&gt;Apply filters as discussed above on the item column to find blanks. Replace all blanks with the text value.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;&lt;em&gt;Steps&lt;/em&gt;&lt;/em&gt;&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;- Click on the filter icon on the *Item*column.
- Uncheck all Fields, then select only the *Blanks* field and click *OK*
- On the first cell of the *Item* column, type the text _Unknown_ and copy it down through the blank cells.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;&lt;em&gt;To Copy the Text&lt;/em&gt;&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;- Select the cell where you typed the replacement text("Unknown")
- Drag your pointer to the bottom right of the selected cell; your pointer turns into a dark cross at the tip of the bottom right corner.
- Click and drag the cross down the empty cells to copy the text into the blank cells
- Click and save your work once all blank cells are filled, and clear the filters.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Alternatively, you can use &lt;em&gt;Find and Replace.&lt;/em&gt; To use Find and Replace:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;- Undo the changes you have made and clear all filters first.
- Select the Item column
- Navigate to *Home* tab, on the *Editing* group click on _Find &amp;amp; Select_ 
&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ffk5xwb2fmxukxtgu80ma.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%2Ffk5xwb2fmxukxtgu80ma.png" alt=" " width="75" height="117"&gt;&lt;/a&gt;&lt;br&gt;
    - From the dropdown options, click on &lt;em&gt;Replace&lt;/em&gt;&lt;br&gt;
    - In the Dialog box, leave the &lt;em&gt;Find what:&lt;/em&gt; text box, leave it blank. We are finding blanks&lt;br&gt;
    - On the &lt;em&gt;Replace with&lt;/em&gt; textbox enter "Unknown" text, and click &lt;em&gt;Replace All&lt;/em&gt; to make the changes.&lt;/p&gt;

&lt;p&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%2Fhtiuojjwbt6mi92zc7jm.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%2Fhtiuojjwbt6mi92zc7jm.png" alt=" " width="733" height="301"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;- A message box will be displayed showing how many blanks the changes were made to.
&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F4ksw75f59k2zfchje72k.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%2F4ksw75f59k2zfchje72k.png" alt=" " width="360" height="177"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Also, you can use the &lt;code&gt;IF()&lt;/code&gt; function to find and replace missing values in a column. The syntax is &lt;code&gt;=IF(B2="", "Unknown", B2)&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Explanation&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;B2="": Cell referencing the value contained in it; also the condition to check if B2 is blank.&lt;/li&gt;
&lt;li&gt;Unknown: Value returned if B2="" is TRUE, that is, it is blank.&lt;/li&gt;
&lt;li&gt;B2: If B2="" is FALSE, it retains the value or text held in B2.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;To achieve this, you need to create a blank column to the right of the item column, then enter the function in cell &lt;code&gt;C2&lt;/code&gt;, copy and drag down the formula, then copy the values held in cell C2:C10001, then paste special (As values only) the values into cell B2. All the other text values will be replaced.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;*Text Cleaning and Standardization*
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Inconsistencies such as trailing whitespaces, unprintable characters, and mixed text cases are common in text-based data. However, Excel offers functions that we can use to correct these errors and mishaps.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;What is an Excel Function?&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;A function in Excel is an inbuilt formula used to perform mathematical, logical, statistical, or financial operations in Excel. A function must begin with an equal sign.&lt;/p&gt;

&lt;p&gt;In cleaning text data, we use functions such as:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;a. TRIM()
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Used to remove extra spaces that were typed into cells and fields.&lt;/p&gt;

&lt;p&gt;In our dataset, we can apply the function to Item to remove any trailing or extra spaces. &lt;/p&gt;

&lt;p&gt;We need a new column to do this, then later copy and paste special the values of the new column.&lt;/p&gt;

&lt;p&gt;In Cell C2 of the new column, type the formula on it and press Enter, then copy it down the column to get the rest of the values.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;=TRIM(B2)&lt;/code&gt;&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;b. CLEAN()
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Used to remove any unprintable characters. Also requires a new column and later copying the values into the original column.&lt;/p&gt;

&lt;p&gt;We are going to work on the &lt;em&gt;Item&lt;/em&gt; column, then copy the values to the original column.&lt;/p&gt;

&lt;p&gt;In cell C2 enter &lt;code&gt;=CLEAN(B2)&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Copy the formula down to auto-fill values.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;c. LEFT(), RIGHT(), and MID()
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;ul&gt;
&lt;li&gt;LEFT() is used to extract the specified number of characters from a text value starting from the left. I.e. Extracting the first three characters of the &lt;em&gt;Transaction ID&lt;/em&gt; we use &lt;code&gt;=LEFT(A2, 3)&lt;/code&gt; and we get "TXN"&lt;/li&gt;
&lt;li&gt;RIGHT() extracts the specified number of characters starting from the right. I.e., extracting the last three characters of the transaction ID in cell A2: &lt;code&gt;=RIGHT(A2, 3)&lt;/code&gt; we get "124"&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;MID() is used to extract a specified number of characters starting from a specified position. I.e. extacting the 4 characters of the &lt;em&gt;Transaction ID&lt;/em&gt; starting position 2. &lt;code&gt;=MID(A2,2,4)&lt;/code&gt; we get "N_99"&lt;/p&gt;

&lt;p&gt;d. UPPER(), PROPER(), and LOWER()&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;UPPER() - Converts a text string into all uppercase.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;PROPER() - Converts a text string into proper case; that is, it capitalizes the first letter of each word. We will convert our &lt;em&gt;Item&lt;/em&gt; column to proper case for consistency.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;LOWER() - Converts a text string into all lowercase.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;To convert our Item column into proper case, we need another column, then copy the values back to the original column.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;- Use this function in cell C2 `=PROPER(B2)`
- Copy it down through the column for all values.
- All the Item values have been converted into proper case.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;&lt;em&gt;Standardizing Dates&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Dates may be formatted as:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;- MM/DD/YYYY
- DD/MM/YYYY
- YYYY-MM-DD
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;And sometimes they may be misinterpreted depending on the local regional settings. &lt;/p&gt;

&lt;p&gt;To format a date, you may use the Excel built-in date feature by following the steps below:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;- Select the date column
- Go to *Home* tab, on the _Number_ group, from the drop down list choose _More numbers Formats_.
- From the dialog window, choose _Dates_ from the right section, then specify the date format you prefer and click *OK* to apply the changes.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;We'll format the &lt;em&gt;Transaction Date&lt;/em&gt; and change the column to Date format for consistency.&lt;/p&gt;

&lt;p&gt;Alternatively, you can use the &lt;code&gt;TEXT()&lt;/code&gt; function to format dates. The syntax is, e.g., &lt;code&gt;=TEXT(H2, "MM/DD/YYYY),&lt;/code&gt; where H2 is a field containing a date.&lt;/p&gt;

&lt;p&gt;Other date functions can help us work best with dates. I.e. NOW(), TODAY(), DATEDIF(), YEAR(),MONTH(), WEEK(), DAY()... You can research them.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;e. CONCAT()
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Used for joining two or more texts. For example: Joining the first and last name to make one name.&lt;/p&gt;

&lt;p&gt;i.e. &lt;code&gt;=CONCAT(A1," ", B1)&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;This is important for preparing data for standardized formatting, reporting, or creating lookups across datasets.&lt;/p&gt;

&lt;p&gt;There are many more functions that can be used to handle text data.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;*Handling Outliers*
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Outliers are errors resulting from values that are much higher or lower than the expected range. For example: finding a person with an age of 223 in the age field. &lt;/p&gt;

&lt;p&gt;The errors may result from human error, measurement inconsistencies, or valid but extreme occurrences.&lt;/p&gt;

&lt;p&gt;We can use &lt;em&gt;Filter &amp;amp; Sort&lt;/em&gt; to work around these inconsistencies. We can also use basic statistics to determine these errors.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Basic statistics: Mean, Standard Deviation, Median, and Mode&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Mean and Standard deviation are data-driven methods to define what is considered a normal dataset.&lt;/p&gt;

&lt;p&gt;AVERAGE() function is used to calculate the mean. i.e., calculating the average &lt;em&gt;Quantity&lt;/em&gt; in our data.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;=AVERAGE(C2:C10001)&lt;/code&gt; We get &lt;em&gt;3&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;STDEV() is used to find the standard deviation of a sample. i.e the standard deviation of our &lt;em&gt;Quantity&lt;/em&gt; column:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;=STDEV(C2:C10001)&lt;/code&gt; we get 1.4&lt;/p&gt;

&lt;p&gt;Values more than 2 or 3 standard deviations from the mean may be considered outliers.&lt;/p&gt;

&lt;p&gt;MODE() and MEDIAN() functions are used to find the value with the highest frequency and the middle number, respectively.&lt;/p&gt;

&lt;p&gt;For missing values, depending on the type of data you are working on. The mean, mode, or median can be used to fill in the missing values, considering that the data distribution is normal.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;*Data Validation and Restriction*
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Data validation ensures that data entered into a worksheet conforms to specific rules or formats, minimizing the risk of errors or inconsistencies. It is important before data collection is carried out. However, you can validate your data if already been collected to avoid future data entry errors.&lt;/p&gt;

&lt;p&gt;For example: We are going to validate our &lt;em&gt;Location&lt;/em&gt; field to only allow "In Store", "Take Away", or "Unknown".&lt;/p&gt;

&lt;p&gt;To access data validation:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;- Select the _Location_ column in our dataset.
- Click on the *Data* tab from our Ribbon
- Click on the validation icon.     
&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fo6ocsdt7d9s9bpwwz8xf.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%2Fo6ocsdt7d9s9bpwwz8xf.png" alt=" " width="66" height="40"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;- From the dialog box, choose List as the validation criteria
&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F4blg6o72rsnms4vvlv4a.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%2F4blg6o72rsnms4vvlv4a.png" alt=" " width="649" height="490"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;- Enter the list of items, separated by commas, OR refer to a list range.
- Here is how it looks on the worksheet.
&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fts10adkgx7k2le8g4ozk.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%2Fts10adkgx7k2le8g4ozk.png" alt=" " width="225" height="159"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Error Alerts and Input Message&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;These are useful guides during data entry.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Input Message:&lt;/em&gt; A brief output that appears when the user selects the validated cell, offering guidance on the expected input.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Error Alert:&lt;/em&gt; A message that appears if the user tries to enter invalid data. &lt;em&gt;Stop:&lt;/em&gt; blocks entry, &lt;em&gt;Warning:&lt;/em&gt; Allows the entry but prompts the user, and &lt;em&gt;Information:&lt;/em&gt; gives the user feedback without blocking.&lt;/p&gt;

&lt;p&gt;These messages, if well designed they reduce confusion and improve the quality of the data.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;*Pivot Tables*
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Pivot tables are tools in Excel that we can use to summarize our data. They are important tools used during visualization to create charts.&lt;/p&gt;

&lt;p&gt;To create a pivot table in Excel:&lt;/p&gt;

&lt;p&gt;Select the data&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Click on *Insert_ tab, and from &lt;em&gt;Tables&lt;/em&gt; group click o &lt;em&gt;Pivot Table&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;From the dialog box, choose where to enter your pivot table; choose a new sheet&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%2Fs5it9nxwp6l17n7y4pme.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%2Fs5it9nxwp6l17n7y4pme.png" alt=" " width="800" height="728"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Click OK&lt;/li&gt;
&lt;li&gt;Select the fields you want to summarize using your Pivot Table.&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%2F0zzcq14fnxqfxg1ok1m8.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%2F0zzcq14fnxqfxg1ok1m8.png" alt=" " width="798" height="706"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Summary of the Complete Data Cleaning Process
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Selected all my data and converted it into a table. I used the shortcut &lt;em&gt;Ctrl + T&lt;/em&gt;.&lt;/li&gt;
&lt;li&gt;Added &lt;em&gt;BOLD&lt;/em&gt; to my column titles and increased their font size to 14.&lt;/li&gt;
&lt;li&gt;Used filters and sort to inspect my data. Accessed the dataset to find missing values, outliers, or any inconsistencies within the data.&lt;/li&gt;
&lt;li&gt;Found blanks, columns with &lt;em&gt;ERROR&lt;/em&gt;, and &lt;em&gt;UNKNOWN&lt;/em&gt; as their input. I used Find and Replace to fill the blanks with &lt;em&gt;Unknown&lt;/em&gt;, and also replaced &lt;em&gt;ERROR&lt;/em&gt; and &lt;em&gt;UNKNOWN&lt;/em&gt; with &lt;em&gt;Unknown&lt;/em&gt; for consistency. &lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Quantity&lt;/em&gt; Column: Used Find and Replace to replace the text strings &lt;em&gt;ERROR&lt;/em&gt; and &lt;em&gt;UNKNOWN&lt;/em&gt; with blanks. Secondly, I set the data type for the column to &lt;em&gt;Number&lt;/em&gt; type, a whole number without a fraction part.&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Price Per Unit&lt;/em&gt; Column:  Used Find and Replace to replace the text strings &lt;em&gt;ERROR&lt;/em&gt; and &lt;em&gt;UNKNOWN&lt;/em&gt; with blanks. Converted the column to the &lt;em&gt;Currency&lt;/em&gt; type with the United States Dollar sign as the currency prefix, formatted to 2 decimal places. From observation through sorting and filtering, using the item and its respective price per unit, all items add up to the same price for the individual item. I had to manually fill in the blanks for individual items with the correct price.&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Total Spent&lt;/em&gt; Column: Used Find and Replace to replace the text strings &lt;em&gt;ERROR&lt;/em&gt; and &lt;em&gt;UNKNOWN&lt;/em&gt; with blanks. Converted the column to the &lt;em&gt;Currency&lt;/em&gt; type with the United States Dollar sign as the currency prefix, formatted to 2 decimal places. From the observation through sorting and filtering, total spent was the product of &lt;em&gt;Quantity&lt;/em&gt; and &lt;em&gt;Price Per Unit&lt;/em&gt;. So, I had to recalculate the total spent on each transaction using the PRODUCT() function in a new column, then used copy and paste special to paste the new values into the &lt;em&gt;Total Spent&lt;/em&gt; column.&lt;/li&gt;
&lt;li&gt;Recalculated the Quantity since some values were blank, yet they had the &lt;em&gt;Price Per Unit&lt;/em&gt; and &lt;em&gt;Total Spent&lt;/em&gt; filled. To get the &lt;em&gt;Quantity&lt;/em&gt; used the formula &lt;code&gt;=[@Total Spent]/[@Price Per Unit]&lt;/code&gt;. Then used Paste Special.&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Payment Method&lt;/em&gt; Column: Used Find and Replace to replace the text strings &lt;em&gt;ERROR&lt;/em&gt; and &lt;em&gt;UNKNOWN&lt;/em&gt; with &lt;em&gt;Unknown&lt;/em&gt;. Validated the field as a list field with the following options: "Cash", "Credit Card", "Digital Wallet", and "Unknown".&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Location&lt;/em&gt; Column: Found blanks, columns with &lt;em&gt;ERROR&lt;/em&gt;, and &lt;em&gt;UNKNOWN&lt;/em&gt; as their input. Used Find and Replace to fill the blanks with &lt;em&gt;Unknown&lt;/em&gt;, and also replaced &lt;em&gt;ERROR&lt;/em&gt; and &lt;em&gt;UNKNOWN&lt;/em&gt; with &lt;em&gt;Unknown&lt;/em&gt; for consistency. Validated the field as a list type with only three fields: "In-Store", "Take Away", and "Unknown"&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Transaction Date&lt;/em&gt; Column: Found blanks, columns with &lt;em&gt;ERROR&lt;/em&gt;, and &lt;em&gt;UNKNOWN&lt;/em&gt; as their input replaced &lt;em&gt;ERROR&lt;/em&gt; and &lt;em&gt;UNKNOWN&lt;/em&gt; with &lt;em&gt;Blanks&lt;/em&gt; for consistency. The blanks were untouched. Then converted the field to a date type with the format "DD/MM/YYYY".&lt;/li&gt;
&lt;li&gt;Inserted a pivot table summarizing the quantity of each item. &lt;/li&gt;
&lt;li&gt;Found the average quantity, price per unit, and total spent.&lt;/li&gt;
&lt;li&gt;Found the maximum and minimum price per unit.&lt;/li&gt;
&lt;li&gt;Found the Total sales using the SUM() function. i.e. =SUM(E:E)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These are the operations performed on the dataset.&lt;/p&gt;

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

&lt;p&gt;We have learnt great and unique technical skills in data analysis. We have found how important data analysis is and the best way to carry it out. If standardized, results will be meaningful in helping stakeholders make informed decisions that drive growth. Data cleaning is the most time consuming in the whole process, but if done right, it will serve a great deal.&lt;/p&gt;

</description>
      <category>datascience</category>
      <category>database</category>
      <category>beginners</category>
      <category>excel</category>
    </item>
    <item>
      <title>My First Project: From a Local Folder to GitHub Using Git and SSH</title>
      <dc:creator>Makori Nyachaki</dc:creator>
      <pubDate>Sun, 23 Aug 2026 05:34:57 +0000</pubDate>
      <link>https://dev.to/makorinyachaki/my-first-project-from-a-local-folder-to-github-using-git-and-ssh-9eb</link>
      <guid>https://dev.to/makorinyachaki/my-first-project-from-a-local-folder-to-github-using-git-and-ssh-9eb</guid>
      <description>&lt;h1&gt;
  
  
  My First Project: From a Local Folder to Git hub Using Git and SSH
&lt;/h1&gt;

&lt;h2&gt;
  
  
  GIT
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Introduction
&lt;/h3&gt;

&lt;p&gt;Git is an open source version control system used to manage projects. It is fast and efficient to manage projects using git. You can easily track the project version, history, modifications, and many more project activities. It allows for ease of collaboration while working on projects as teams.&lt;/p&gt;

&lt;h3&gt;
  
  
  Installing Git
&lt;/h3&gt;

&lt;p&gt;Download and install git from &lt;a href="https://git-scm.com/install/windows" rel="noopener noreferrer"&gt;Git&lt;/a&gt;. Ensure you download for your respective operating system.&lt;/p&gt;

&lt;h3&gt;
  
  
  Configuring Git
&lt;/h3&gt;

&lt;p&gt;Before using Git effectively, you have to configure your identity by setting up your &lt;em&gt;username&lt;/em&gt; and &lt;em&gt;email&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;This allows to easily track any changes to your project and the associate, that is; who made the changes?&lt;/p&gt;

&lt;p&gt;To set up your identity, follow the following steps, using Git Bash a git terminal:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Steps&lt;/em&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;To set your username&lt;/p&gt;

&lt;p&gt;&lt;code&gt;git config --global user.name "YOUR NAME"&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&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%2Fm2klshvu1cg81rnk5b9h.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%2Fm2klshvu1cg81rnk5b9h.png" alt=" " width="490" height="33"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In place of &lt;em&gt;YOUR NAME&lt;/em&gt; type in your correct user name that will be associated with your github account activity.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;To set your email&lt;/p&gt;

&lt;p&gt;&lt;code&gt;git config --global user.email "youemail@example.com"&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&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%2Fsgftb5445ya6u0h7se9d.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%2Fsgftb5445ya6u0h7se9d.png" alt=" " width="532" height="37"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Note:&lt;/em&gt; It is recommended to use your correct email that is associated with your GitHub account.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Rename you GitHub branch to &lt;em&gt;main&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;git config --global init.Branch main&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&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%2Fq4b2fl8gsgnl5wp1ua9m.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%2Fq4b2fl8gsgnl5wp1ua9m.png" alt=" " width="486" height="31"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;After setting up your identity you can verify your configurations to confirm your identity for each field set.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;To check your:&lt;/p&gt;

&lt;p&gt;User name&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;`git config --global user.name`
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Email&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;`git config --global user.email`
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Branch&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git config --global init.Branch`
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;OR&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;You can use the following command to check all you account details instead:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;`git config --global --lists`
&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F1cgsansyzn2xjgc4yqqa.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%2F1cgsansyzn2xjgc4yqqa.png" alt=" " width="648" height="196"&gt;&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;SSH key is a secure credential used to authentication to accessing network resources confidentially without need of a password. The ssh-key contains two keys. A &lt;em&gt;&lt;strong&gt;Public&lt;/strong&gt;&lt;/em&gt; and &lt;em&gt;&lt;strong&gt;Private&lt;/strong&gt;&lt;/em&gt; key. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Public key&lt;/strong&gt; is used publicly, that is it is shared between peers. Used to identify you remote resources.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Private key&lt;/strong&gt; it is a pair key that is kept as a secret for identifying your local machine.&lt;/p&gt;

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

&lt;p&gt;Using Git Bash&lt;/p&gt;

&lt;p&gt;Before generating a new SSH Key, it is recommended to check and confirm if you have an existing key which you can use.&lt;/p&gt;

&lt;p&gt;To check if you have an existing key use the following command:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;`ls -al ~/.ssh`
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;The command will list all existing ssh keys. Here sample output:&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%2Ffp2p0ax8ew91mgfn9w4s.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%2Ffp2p0ax8ew91mgfn9w4s.png" alt=" " width="798" height="166"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If there is no existing key, you can generate a new key that you will use to link your computer with your github account.&lt;/p&gt;

&lt;p&gt;To generate a new ssh key, follow the following steps:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Genereate a new ssh-key&lt;/p&gt;

&lt;p&gt;&lt;code&gt;ssh-keygen -t ed25529 -C "youremail@example.com"&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The email should be the one associated with with your github account.&lt;/p&gt;

&lt;p&gt;Follow the prompt by adding the name of your key, and also you can add the passphrase which is optional.&lt;/p&gt;

&lt;p&gt;The passhrase should be memorable, you will need to use it each time you want to access you github account.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Add your key to the SSH-Agent.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Open your Powershell Terminal and follow the steps below:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;- Run the following command to start your SSH Agent

    `Get-Service -Name ssh-agent | Set-Service StartupType Manual`

- Add your key to the  path using the  command

    `ssh-add &amp;lt;PATH/TO/YOUR/PRIVATE_KEY&amp;gt;`
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;After the command, you should specifify the path to your private key and add it to your host machine's ssh-agent. i.e. &lt;code&gt;ssh-add "C:/Users/&amp;lt;YOUR_USER_NAME/.ssh/&amp;lt;YOUR_PRIVATE_KEY&amp;gt;&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;If you don't know your computer's user name, you can use the &lt;code&gt;whoami&lt;/code&gt; command to see your username.&lt;/p&gt;

&lt;p&gt;Your &lt;em&gt;PRIVATE_KEY_NAME&lt;/em&gt; is the name that you gave to your key.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;- Once you're done, close your Powershell terminal and return to Git Bash.

- Type the following command

    `git config --global core.sshCommand "C:/Windows/System32/OpenSSH/ssh.exe`

- Then Clip and copy your key using the following commands:

    `clip &amp;lt; ~/.ssh/&amp;lt;PUBLIC_KEY.pub&amp;gt;`
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;i.e &lt;code&gt;clip &amp;lt; /.ssh/my_key.pub&lt;/code&gt;&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;    `cat ~/.ssh/&amp;lt;PUBLIC_KEY.pub&amp;gt;`
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;i.e. 'cat ~/.ssh/my_key.pub` to view your public ssh key&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;- After displaying your key, select and copy the key to add to your GitHub account.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;h3&gt;
  
  
  Adding Your Key to GitHub
&lt;/h3&gt;

&lt;p&gt;To connect your computer and git-hub is necessary to facilitate access to your remote resources from your local computer.&lt;/p&gt;

&lt;p&gt;You need to add your SSH Keys to GitHub to facilitate the connection. To achieve this, follow the steps:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;If you have an existing GitHub account:&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;a. Login to your account using your email/username and password.&lt;/p&gt;

&lt;p&gt;b. From the profile section, go to &lt;em&gt;Settings&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;c. Scroll to &lt;em&gt;SSH and GPG Key&lt;/em&gt;. Navigate and click on &lt;em&gt;New SSH Key&lt;/em&gt; on the SSH Key Section to your right.&lt;/p&gt;

&lt;p&gt;e. Add the &lt;em&gt;Title/Name&lt;/em&gt; of the key i.e. &lt;em&gt;Ubuntu Laptop&lt;/em&gt;, the key will be used for &lt;em&gt;Authentication&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;f. Paste your key to the available textbox.&lt;/p&gt;

&lt;p&gt;g. Finally, click on &lt;em&gt;Add Key&lt;/em&gt; to save your key. You'll be prompted to re-enter your git-hub account password (login password), to confirm your authenticity before saving.&lt;/p&gt;

&lt;p&gt;Now you are ready to go. Before you start, it is good you test your connection to check if it was successful.&lt;/p&gt;

&lt;p&gt;Run Powershell as an Administrator and use the following command to test connection:&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;`ssh -T git@github.com`
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;If the connection is successful, your username will be displayed along with a success message.&lt;/p&gt;

&lt;p&gt;If successful, you are good to go and work on your project.&lt;/p&gt;

&lt;h2&gt;
  
  
  Working With Folders
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;To keep you project structural and more organized; you've to keep its files and scripts in folders.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This will make it easier to navigate and access the project. Follow the steps below to work with folders in Windows.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;In Git Bash Terminal(Opened normally)&lt;/li&gt;
&lt;/ul&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;To navigate and change location use the following command&lt;/p&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;`cd &amp;lt;path_location&amp;gt;`
&lt;/code&gt;&lt;/pre&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;To select the current location&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;    `cd .`
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;To get to the previous location one step back use&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;    `cd ..`
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Getting back to the root directory use&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;    `cd ~`
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;You can also move to a specific folder by specifying the path to that folder&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;    `cd &amp;lt;path/to/folder&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;example: &lt;code&gt;cd "C:/Users/Admin/Desktop/My-Project"&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;My-Project/&lt;/em&gt; is a folder located in Desktop, which is for the user with the username &lt;em&gt;Admin&lt;/em&gt;.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;To create a directory or folder use&lt;/p&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;`mkdir &amp;lt;directory_name&amp;gt;`
&lt;/code&gt;&lt;/pre&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;i.e. Create a directory named &lt;em&gt;My-First-Project&lt;/em&gt; in Desktop &lt;code&gt;mkdir My-First-Project&lt;/code&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Navigate to your created folder. Assuming you are on Desktop, use the following command:&lt;/p&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;`cd My-First-Project/`
&lt;/code&gt;&lt;/pre&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;So your bash terminal path will look like &lt;code&gt;~/Desktop/My-First-Project&lt;/code&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;To list and view items use the following command&lt;/p&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;`ls`
&lt;/code&gt;&lt;/pre&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;It will list all files and folders excluding the hidden files and folders. As shown below:&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%2Fv8l5ka6phzhoqyibjcse.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%2Fv8l5ka6phzhoqyibjcse.png" alt=" " width="800" height="125"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;To list and view all files and folders including the hidden ones you add &lt;em&gt;-a&lt;/em&gt; attribute to the &lt;code&gt;ls&lt;/code&gt; command as below&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;    `ls -a`
&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F2wt7jom89ta8ny7tosie.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%2F2wt7jom89ta8ny7tosie.png" alt=" " width="800" height="128"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;To list files and display their attributes we add the &lt;em&gt;-l&lt;/em&gt; attribute to the &lt;code&gt;ls&lt;/code&gt; command.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;    `ls -l`
&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fdmop7m63pzur63y7o0ic.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%2Fdmop7m63pzur63y7o0ic.png" alt=" " width="798" height="210"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Note:&lt;/em&gt; You can combine the attributes to list all files and their attributes i.e. as &lt;code&gt;ls -al&lt;/code&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;You can delete an empty folder using &lt;/p&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;`rm -r &amp;lt;folder_name&amp;gt;`
&lt;/code&gt;&lt;/pre&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;To delete a folder together with its contents we use the &lt;code&gt;rm -r &amp;lt;non-empty_folder_name&amp;gt;&lt;/code&gt; command.&lt;/p&gt;

&lt;p&gt;Example: Create a folder in you my project folder using the &lt;code&gt;mkdir&lt;/code&gt; command, inspect the folder created and its contents, then delete the folder using the rm command:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Steps&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Create scripts: &lt;code&gt;mkdir scripts&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Navigate to scripts and back to your project folder: &lt;code&gt;cd scripts/&lt;/code&gt; and &lt;code&gt;cd ..&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Inspect scripts: &lt;code&gt;ls scripts/&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Delete scripts: &lt;code&gt;rm -r scripts/&lt;/code&gt;&lt;/p&gt;&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%2F4q6swbhytblh9sv2f3ao.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%2F4q6swbhytblh9sv2f3ao.png" alt=" " width="799" height="408"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Note:&lt;/em&gt; &lt;code&gt;rm&lt;/code&gt; without any attribute will no delete a directory/folder even if empty, the attribute &lt;em&gt;-r&lt;/em&gt; tells the command &lt;code&gt;rm&lt;/code&gt; that what you're deleting is a directory.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;You can copy and paste contents between different folders.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;To copy contents moves a duplicate of the files to another location leaving the original intact.&lt;/p&gt;

&lt;p&gt;While using the &lt;code&gt;cp&lt;/code&gt; command you have to specify the file/contents path and the destination address. Example:&lt;/p&gt;

&lt;p&gt;To copy some file named hello.txt to the scripts folder; you need to recreate the folder and create the file in the root directory then copy it to scripts folder in your projects folder&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Steps&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;In your project folder create scripts &lt;code&gt;mkdir scripts&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Navigate to your project root folder and create the file &lt;em&gt;hello.txt&lt;/em&gt; &lt;code&gt;touch hello.txt&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Copy the file to scripts &lt;code&gt;cp hello.txt ~/scripts&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Inspect both locations to see that the file exists in both location. &lt;code&gt;ls&lt;/code&gt; and &lt;code&gt;ls scripts&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;Note:&lt;/em&gt; You can specify the file path in the cp command if the file is in a different location and the destination path address &lt;/p&gt;

&lt;p&gt;i.e. &lt;code&gt;cp &amp;lt;~/path/to/file_to_be_copied.txt&amp;gt; &amp;lt;~/path/to_destination/&amp;gt;&lt;/code&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;You can move a file or any content completely from the source to an new destination using the &lt;code&gt;mv&lt;/code&gt; command.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Example: Move &lt;em&gt;hello.txt&lt;/em&gt; file from the project's folder to a new folder named &lt;em&gt;docs&lt;/em&gt;&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;`mv hello.txt docs/
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;&lt;em&gt;Note:&lt;/em&gt; You can also specify the file path in case the files and destination address are in different locations i.e. &lt;code&gt;mv &amp;lt;~/path/from_source/hello.txt&amp;gt; &amp;lt;~/path/to_destination_folder/&amp;gt;&lt;/code&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Working With Files
&lt;/h2&gt;

&lt;p&gt;While working in your project you will need to create different files for your project.&lt;/p&gt;

&lt;p&gt;The different files will be saved in different directories depending on their type and use. &lt;/p&gt;

&lt;p&gt;The organization will help us to achieve a proper project structure, easier to navigate and access our project files.&lt;/p&gt;

&lt;p&gt;We will create our files using Git Bash terminal.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;To create a file we'll use the &lt;code&gt;touch&lt;/code&gt; command. &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Create a file named &lt;em&gt;hello-world.txt&lt;/em&gt; in your project root directory.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;    `touch hello-world.txt`
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Use the &lt;code&gt;ls&lt;/code&gt; command to confirm your file has been created.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;To view the contents of the file we use the &lt;code&gt;cat&lt;/code&gt; command, since our file is empty it will display 'nothing'.&lt;/p&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;`cat hello-world.txt`
&lt;/code&gt;&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;To add contents to our file we use the &lt;code&gt;echo&lt;/code&gt; command.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Add the following text to the file &lt;em&gt;hello-world.txt&lt;/em&gt;; "Hello, World"&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;    `echo "Hello, World!" &amp;gt; hello-world.txt`
&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ffccmiel0gdoohobtiwby.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%2Ffccmiel0gdoohobtiwby.png" alt=" " width="483" height="27"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;We use the &lt;em&gt;&amp;gt;&lt;/em&gt; to redirect the output to our file. &lt;em&gt;&amp;gt;&lt;/em&gt; Rewrites any content in the file. &lt;/p&gt;

&lt;p&gt;If you want to add more content to the file use &lt;em&gt;&amp;gt;&amp;gt;&lt;/em&gt;, more text will be added to our file. &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%2Fwdfqh2byidzkfb9f0zkl.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%2Fwdfqh2byidzkfb9f0zkl.png" alt=" " width="675" height="43"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Example; add the following text to our file "I am happy to learn SSH and Git".&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;    `echo "I am happy to learn Git and SSH" &amp;gt;&amp;gt; hello-world.txt`
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;cat hello-world.txt&lt;/code&gt; to view the contents of the file.&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%2Fej57klmspja8riwtn850.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%2Fej57klmspja8riwtn850.png" alt=" " width="439" height="82"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;* Editing you file using nano *&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Nano is an inbuilt text editor in Git Bash.&lt;/p&gt;

&lt;p&gt;It helps us to navigate through our files; scripts, text file, .... once we make mistakes.&lt;/p&gt;

&lt;p&gt;To open our script or text file we use the &lt;code&gt;nano&lt;/code&gt; command in git bash then specify the file we want to open, for example open &lt;em&gt;hello-world.txt&lt;/em&gt; using nano:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;    `nano hello-world.txt'
&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F57izzxrx1dx3aw0z2zhj.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%2F57izzxrx1dx3aw0z2zhj.png" alt=" " width="693" height="265"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;There are many more commands for nano that will help you edit your text file. For example the most common commands are:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;1. Ctr + O - To save your file

2. Ctrl + X - To exit your nano text editor

3. Ctrl + K - To Cut text in the editor

4. Ctrl + U - To Paste your text

5. Ctrl + G - To find help for you nano editor.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;There are many more commands of help that you can use to edit you files in nano editor.&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%2Fqlt2qdhhgchhi27je0fg.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%2Fqlt2qdhhgchhi27je0fg.png" alt=" " width="800" height="390"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Your First Project
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Initialize your first project with git
&lt;/h3&gt;

&lt;p&gt;Before running the command, check to confirm that you are in your project folder using the &lt;code&gt;pwd&lt;/code&gt; command. &lt;/p&gt;

&lt;p&gt;The &lt;code&gt;pwd&lt;/code&gt; command means &lt;em&gt;print working directory&lt;/em&gt;  it shows your current location with regard to the root directory.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fpcuz99l2l79zybxvl6oh.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%2Fpcuz99l2l79zybxvl6oh.png" alt=" " width="595" height="57"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If in your project directory, the path will end with the name of the project folder. I.e. &lt;em&gt;My-First-Project&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Use the &lt;code&gt;git init&lt;/code&gt; command.&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%2F247lvpe6jyclmjvnr0mf.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%2F247lvpe6jyclmjvnr0mf.png" alt=" " width="800" height="44"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The command is used to initialize our project directory as a git repository.&lt;/p&gt;

&lt;h3&gt;
  
  
  Git repository structure.
&lt;/h3&gt;

&lt;p&gt;After running the above command, you may notice notification  of git initializing an empty git repo...&lt;/p&gt;

&lt;p&gt;If you list to view the structure using the &lt;code&gt;ls&lt;/code&gt; command you may notice a &lt;em&gt;.git/&lt;/em&gt; folder.&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%2Fbbr03ybcaz3k1k981pqf.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%2Fbbr03ybcaz3k1k981pqf.png" alt=" " width="604" height="70"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The folder contains Git's internal repository information, which git uses to manage activities such as: push, commits, pull, Branches, project history, repository configurations,....&lt;/p&gt;

&lt;h3&gt;
  
  
  Checking the project status
&lt;/h3&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;    `git status`
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Used to show what's happening with your project currently. &lt;/p&gt;

&lt;p&gt;It can show things such as untracked files, staged files to be committed yet, if the working tree is clean meaning everything has been committed.&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%2Fxfxrbvxtrpkzz7s5lbjp.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%2Fxfxrbvxtrpkzz7s5lbjp.png" alt=" " width="799" height="220"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The above show that there is nothing that has been staged for commit, there are three untracked files in the initialized repository.&lt;/p&gt;

&lt;h3&gt;
  
  
  Staging your project files
&lt;/h3&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;    `git add .`
&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fh4kecaxriw57axl4zqj5.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%2Fh4kecaxriw57axl4zqj5.png" alt=" " width="800" height="48"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It adds your project files to git for tracking.&lt;/p&gt;

&lt;p&gt;Checking on the status of the staged file, you should get such an output with &lt;code&gt;git status&lt;/code&gt; command&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%2Fyyw2v2g37wg58rxm0x4o.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%2Fyyw2v2g37wg58rxm0x4o.png" alt=" " width="800" height="613"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It prepares all you changes for the next commit.&lt;/p&gt;

&lt;p&gt;You can stage a single file by specifying the file/folder you want to stage i.e. &lt;code&gt;git add &amp;lt;file_name.txt&amp;gt;&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fy46q03xne97cxa93a32i.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%2Fy46q03xne97cxa93a32i.png" alt=" " width="800" height="34"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You should see almost a similar output when using &lt;code&gt;git status&lt;/code&gt; command after staging a single file&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%2F8wp949u9pgcm45u3qef8.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%2F8wp949u9pgcm45u3qef8.png" alt=" " width="759" height="280"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Using the &lt;em&gt;.&lt;/em&gt; means you stage everything in your project folder.&lt;/p&gt;

&lt;h3&gt;
  
  
  Commiting you staged files
&lt;/h3&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;    `git commit -m "&amp;lt;commit message&amp;gt;"`
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Creates a saved checkpoint.&lt;/p&gt;

&lt;p&gt;The message should be precise and clear, related to the activity carried out. i.e. "My First Project Using Git Commit"&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%2F2rm4jyeyxa0vbztp66x9.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%2F2rm4jyeyxa0vbztp66x9.png" alt=" " width="800" height="582"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It does not upload anything to git-hub yet.&lt;/p&gt;

&lt;h3&gt;
  
  
  Uploading to git-hub
&lt;/h3&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;    `git push -u origin &amp;lt;branch_name&amp;gt;
&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fdk7kjy553cgykupctzn6.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%2Fdk7kjy553cgykupctzn6.png" alt=" " width="513" height="76"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Sends all the committed changes to GitHub. However, in our case we get the above error because we have not linked our local project repo to a git-hub remote repository.&lt;/p&gt;

&lt;p&gt;We will be linking our repositories in the next section.&lt;/p&gt;

&lt;p&gt;After running this command, you can easily check on the changes whether they reflect on GitHub via your browser.&lt;/p&gt;

&lt;p&gt;However, for us we are yet to see these changes. This may not work since we are yet to create a remote repository which we will then connect to our local project in our laptop.&lt;/p&gt;

&lt;h3&gt;
  
  
  Creating a remote repository
&lt;/h3&gt;

&lt;p&gt;To create a remote repository, follow the following steps:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Login to your git-hub account&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;In your account click on "Create New Repository"&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Enter the name of your Repository as "My-First-Project"&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Do not create a README, uncheck the checkbox&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Provide a brief descriptions for your project. The description is: "My First Project: From a Local Folder to Git hub Using Git and SSH"&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Then click on Create Repository&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A new empty repository is created with the name "My-First-Project"&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%2Fh56tjssz20qekcpbtm93.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%2Fh56tjssz20qekcpbtm93.png" alt=" " width="800" height="758"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Navigate to your repository&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Click on the &lt;em&gt;code&lt;/em&gt; section, then click on &lt;em&gt;ssh&lt;/em&gt; tab and copy the &lt;em&gt;ssh code&lt;/em&gt;&lt;/p&gt;&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%2Fvxiq5azw5r8w30i4d1m5.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%2Fvxiq5azw5r8w30i4d1m5.png" alt=" " width="800" height="524"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;We'll use the ssh code to connect our remote and local repositories before pushing our project.&lt;/p&gt;

&lt;h3&gt;
  
  
  Connecting our local and remote repositories
&lt;/h3&gt;

&lt;p&gt;Navigate to your git initialized  project folder&lt;/p&gt;

&lt;p&gt;Type in the following command and thereafter paste the ssh code for your remote repository and hit enter.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;    `git remote add origin &amp;lt;your_remote_ssh_code&amp;gt;`
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;i.e. &lt;code&gt;git remote add origin git@github.com:MakoriNyachaki/My-First-Github-Project.git&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fsy23kp10jw9rabxkx8ys.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%2Fsy23kp10jw9rabxkx8ys.png" alt=" " width="800" height="77"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Rename your branch
&lt;/h3&gt;

&lt;p&gt;If your remote repository's branch is not &lt;em&gt;main&lt;/em&gt; rename it to &lt;em&gt;main&lt;/em&gt;&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;    `git branch -m main`
&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F7y5wp945ky3xes3mmybe.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%2F7y5wp945ky3xes3mmybe.png" alt=" " width="799" height="49"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Check the remote
&lt;/h3&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;    `git remote -v`
&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fqx90sivwfrdpo5706rk9.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%2Fqx90sivwfrdpo5706rk9.png" alt=" " width="800" height="77"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Push your project to git-hub
&lt;/h3&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;    `git push -u origin &amp;lt;branch_name&amp;gt;`
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;i.e. &lt;code&gt;git push -u origin main&lt;/code&gt; this works to upload our committed changes to our git-hub repository.&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%2Ffmwjvyxy6adhsoh1qtvm.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%2Ffmwjvyxy6adhsoh1qtvm.png" alt=" " width="714" height="211"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Summary
&lt;/h2&gt;

&lt;p&gt;An introductory article for learning GIT and SSH. It is thrilling practical exercise for generating ssh keys, working with folders and files, connecting local project folders with remote repositories, and working with git. The introductory article requires one to do further research on so many commands that are available for the different tools we have used here in order to be an expert. Let's learn forward.&lt;/p&gt;

</description>
      <category>git</category>
      <category>github</category>
      <category>githubactions</category>
      <category>programming</category>
    </item>
  </channel>
</rss>
