Skip to content

1. Principles and practices

Week 1-Principles And Practices, Presentations, Introduction

To Do For Week 1 Assignment

Read and Sign the Student Agreement then push to my git repository

Learn How to Use Git

Personal Site using markdown

Work on Final Project Sketch

Git tutorial

Git

What is Git and Github,gitlab,etc

Git is a version control software that keep track of chages that hapen acrossa set of files while github,gitlab are web-platforms that hosts Git repositories online. *It let you store files,codes in the cloud. collaborate and manage projects using git through a website interface*.

Installing git on Windows

Download the Git from git official site , the download will start automatically

Install the file click next until you reach to where it asks to Add to PATH and Check the box to add to PATH.

Open Command Prompt by pressing Windows key+R, the type cmd and press Enter.

In the black terminal, type git - -version to checck if it is installed

Basic Git configartion

alt text

To confirm;

C:\Users\Wuod Awuor>git config –global –list

SSH Keys.

SSH keys allow you to establish a secure connection between your computer and GitLab. SSH fingerprints verify that the client is connecting to the correct host.

SSH stands for Secure Shell.

An SSH key is a pair of cryptographic keys (public + private) that lets your computer securely communicate with a server without typing your password every time.

In GitHub, it’s used to authenticate your computer with GitHub securely

Generating SSH Key

  1. Open Git Bash by right-clicking your folder and selecting “Open Git Bash Here”. This will launch the terminal in that folder, which will be used to generate your SSH key.

alt text

  1. Run the ssh-keygen command:
ssh-keygen -t ed25519 -C"your_email@example.com"

Replace “charliea@gml.com” with the email associated with your GitHub account.

Notes:

  • t ed25519 → type of key (modern and secure)
  • C → adds a comment to help identify the key

Tips;

working on a shared project/collaboration on a project;

  • Each team member must have a Git web service account (e.g., GitHub, GitLab, Bitbucket).
  • One team member creates the main repository (the “master” or “main” branch).
  • Other members clone the repository to their local machines to work on it.
  • Making changes:
    • You can work directly on the main branch (not recommended for beginners)
    • Or, better, create your own branch to make changes safely
  • Update and review:
    • Push your branch to the remote repository
    • The team can review your changes
  • Merge changes: After approval, the branch can be merged into the main branch

Cloning Repository

To collaborate on a project, one person first creates a repository (the master/main branch). Other team members can then clone the repository to their local computers.

Collaborators can make changes either:

Directly on the master branch

Or on separate branches, where updates can be tested and verified

Once the changes are reviewed and approved, the branches can be merged back into the master branch to update the main project.

Basic git commands

Here are some basic Git commands I’ll use in the terminal:

  • git status: Shows which files have been changed, added, or deleted in the project.
  • git add .: Add all changes to the staging area.
  • git commit -m "assignment1 commit msg": Commit assigmnet changes with a message.
  • git push: Push assigment changes to the repository.
  • git pull: Pull the latest changes from the remote repository.

Git Command in GUI (VSCode)

The image above shows stages for pushing to your repository in GUI: 1. Open Source Control – Click the Source Control tab in your editor. 2. Stage Changes – Select the files you want to commit and click Stage.Also you can stage evrthing if you are sure of the size of your files. 3. Commit Changes – Enter a commit message and click Commit. 4. Sync & Push – Finally, click Sync (or Push) to upload your changes to the remote repository, as shown in the image below.

Sync and Push means your changes have been uploaded to the public repository.

Final Project Sketch

Sustainable Development Goal 6.1 calls for universal and equitable access to safe and affordable drinking water for all, yet this goal remains unmet in many parts of Africa. From where I come from—Kisumu, Kenya—access to safe drinking water is still a daily challenge due to variable water quality, limited treatment infrastructure, and the absence of real-time monitoring and control. Many communities depend on pump-based water supplies without reliable mechanisms to ensure that the water delivered is consistently safe for consumption.

This project presents a portable, modular water purification and control system designed to be installed directly onto existing water pumps, improving water safety without requiring new infrastructure. The system enhances water quality through electrocoagulation to reduce suspended particles and heavy metals, followed by physical filtration. Water clarity is continuously assessed using a turbidity sensor, while a flow sensor ensures stable and controlled water delivery.

A microcontroller-based closed-loop control system automatically manages pumps and electronically controlled valves using real-time sensor feedback. Water is permitted to flow only when predefined safety conditions are met; otherwise, flow is immediately restricted and users are alerted. A real-time dashboard provides clear visibility into system status and water quality, enabling transparency, accountability, and informed decision-making at the community level.

Designed for affordability, portability, local manufacturability, and scalability, the system can be replicated and deployed across diverse Kenyan and African contexts. By strengthening the safety of existing water sources through intelligent monitoring and control, this project directly contributes to advancing SDG 6.1 and improving access to safe drinking water for underserved communities.

Sketch

alt text

## START – Water Source

The system begins with any available water source such as a borehole, river intake, storage tank, or community well. At this stage, the water quality is unknown and may contain suspended particles, heavy metals, and other contaminants.

## Existing Pump

An existing pump (already installed at the site) lifts water from the source. The proposed system is designed to attach downstream of this pump, meaning no major infrastructure replacement is required.

## Pump 1 (System Intake Control)

Pump 1 is part of the portable module and provides controlled intake pressure and flow into the treatment system. It ensures stable operating conditions for electrocoagulation and filtering, regardless of fluctuations from the existing pump.

## Electrocoagulation Unit

Water flows into the electrocoagulation (EC) chamber, where a low-voltage electric current is applied across metal electrodes.

Function:

Dissolves electrode material to form coagulants

Causes fine particles, colloids, and heavy metals to bind together (flocculation)

Converts difficult-to-remove contaminants into larger, filterable particles

This process significantly improves water clarity and reduces chemical contamination without adding external chemicals.

## Primary Physical Filter

The water then passes through a physical filter designed to capture:

Coagulated flocs formed in the EC unit

Suspended sediments and debris

This step prevents downstream sensors and valves from clogging and improves the accuracy of turbidity measurement.

## Turbidity Sensor (Water Clarity Check)

After filtration, a turbidity sensor measures how clear the water is by detecting light scattering caused by suspended particles.

Decision Point:

If turbidity is above the acceptable limit:

The solenoid valve is closed

Water flow is stopped or redirected

The system waits or recirculates water for further treatment

If turbidity is within acceptable limits:

Water is considered suitable for downstream disinfection

The system proceeds to flow regulation.

This ensures that only sufficiently clear water moves forward.

## Flow Sensor (Flow Measurement & Regulation)

The flow sensor measures the real-time water flow rate. This data is critical because downstream disinfection systems (such as UV–TiO₂) require specific flow ranges to operate effectively.

## Flow Control Valve (Electronically Controlled)

Based on flow sensor data, an electronically controlled valve adjusts the water flow to remain within the desired range.

Purpose:

Prevents under- or over-flow

Acts as the final control gate of the module

Materials

Tools Used

To successfully complete this week’s assignment, I used several tools for website setup, image preparation, screenshots, and coding. Most of these tools were recommended by my instructor, Rico.

Before starting, I ensured that all my files met the Fab Academy size requirements:

Images: Maximum 150 KB

Videos: Maximum 9.9 MB

Other files pushed to Git: Maximum 10 MB

Keeping files optimized ensures the website loads fast and stays within the allowed repository limits.

Editor

For website editing, I installed Visual Studio Code (VS Code). It is user-friendly and provides excellent support for:

Editing Markdown files

Managing project folders

Using Git for version control

This made it easier to write content and push updates to my repository even in GUI.

alt text

Image compression

To reduce image sizes, I used XNConvert to compress my images into JPEG format while keeping them under 150 KB as required.

This helped me maintain good image quality while meeting the file size limits.

alt text

alt text

Screen Shots

For capturing screenshots, I used Greenshot. This tool allowed me to configure keyboard shortcuts for different types of captures, including:

Region capture

Window capture

Last region capture

In the Preferences, I also configured the default save location so that all screenshots were automatically stored in my project’s images folder.

alt text

I additionally set up keyboard shortcuts to make capturing screenshots faster and more efficient.

alt text

I setup my detsinantion to separate fabacademy folder that i use to store images per week alt text