Assignment Overview
The first week of Fab Academy focused on establishing the foundational systems needed for successful project management throughout the program. This included setting up version control, creating documentation workflows, and establishing project planning methodologies.
This assignment was crucial as it laid the groundwork for all future work, ensuring that every project would be properly documented, version-controlled, and accessible for both personal reference and community sharing.
Learning Objectives
Version Control Mastery
Learn Git fundamentals, repository management, and collaborative development workflows
Documentation Systems
Establish clear documentation practices using Markdown, HTML, and web technologies
Project Planning
Develop systematic approaches to project planning, time management, and goal setting
My Process
Version Control Setup
- Version control: Keeps track of changes to files and code.
- Branching and merging: Supports experimentation without affecting the main codebase.
- Collaboration: Allows multiple developers to work on the same project.
- Distributed model: Developers can work offline and sync changes later.
- Created GitHub account and configured SSH keys for secure access I firstly created an account on Git from the link provided by Fablab, then have access to the projects.
- Established repository structure for Fab Academy documentation
- Set up local Git environment with proper user configuration
What is Git?
Git is a distributed version control system used to track changes in files and collaborate on software projects. It allows developers to manage code versions, work on branches, and merge changes seamlessly.
Key features of Git include:
This is where all your projects will be saved.
Generate ssh key using this command; "ssh-keygen ". Paste the ssh key gernerated using git application.
I downloaded the Git software from Git Download I installed it using default installation settings on local computer to avoid loss of installation location.
local git account Before cloning the git repository to the local computer, the username and email should be configured to the local git application.
I used below commands to set the git account locally to push data to the remote repository.
git config --global user.name "My username"
git config --global user.email "My email address"
Clone a Repository
Go to your Git hosting service and navigate to the repository. Then go to code and copy the ssh url under clone with ssh.
Navigate to the repository, then edit profile to add ssh key generated.
Then add SSH key that will be used for authentication. GO to SSH key on the left menu, the go to add ssh key.
Get the repository URL:
Go to your Git hosting service and navigate to the repository. Then go to code and copy the ssh url under clone with ssh.
Navigate to the repository, then edit profile to add ssh key generated.
Then add SSH key that will be used for authentication. GO to SSH key on the left menu, the go to add ssh key.
Clone the repositore using SSH to the local repository.
"This is done by nevigating to the directory where local reposito will be saved, then open the Git bash in the local directory."
git clone git@gitlab.fabcloud.org:academany/fabacademy/2025/labs/rwanda/students/molemohi-kapari.git
You will find the project clone under the same location where you cloned it.
How I made my website
I have used the AI generated sample page, then sliced and customized everything according to my desired design.I used Visual Studio Code to create some pages locally by opening the local repository where I edited the content of the web pages.
I used html for presentation of content in all pages.
CSS is used to style and design the presentation of content.
Javascript is used to load the information in the links to weekly assignments.
After doing any modification to the project using Visual Studio Code, I do commit and push to update to synch with the remote repository. It can also be done using git bash with the below commands
git commit -m "Added student Agreement"
git push origin main
Visual Studio Code commit and push.
Final website
Challenges
I managed to create SSH Key for cloning remote repository and copied it to the Git profile, however, it denied access when cloning using SSH.
The main usue is that local repository can not connect ot remote repository.
I tried to add username and email on the terminal usig these commands ($ git config user.name [your-name], $ git config user.email [your.email@domain.com]), it did not go through.
Solution.
I uninstalled the git application then reinstalled again on the computer. After that it went well then managed to clone using ssh.
Project Workflow
- Designed website structure using HTML5 and CSS3
- Implemented responsive design for mobile compatibility
- Created template system for consistent documentation
- Established image optimization and file organization standards
Results & Deliverables
Repository
Complete Git repository with organized file structure and comprehensive documentation
View RepositoryReflection & Learning
This first week was instrumental in establishing the foundation for my entire Fab Academy journey. Learning Git and version control was initially challenging, but it quickly became clear how essential these tools are for any serious development work.
The documentation system I created during this week served me well throughout the entire program. The time invested in setting up proper workflows and templates paid dividends in later weeks when I could focus on the technical content rather than struggling with documentation tools.
Key insight: Good project management isn't just about organization—it's about creating systems that enable creativity and learning by removing friction from the documentation and sharing process.