Principles and Practices, Project Management

This week I worked on defining my final project idea and started getting used to the documentation process. The assignment focused on two main parts: Principles and Practices (sketching a potential final project) and Project Management (building a personal website and setting up version control).

Website Development Process

I used Kiro AI assistant to build this website, which significantly streamlined the development process. Kiro helped me set up a modern, responsive website with proper documentation structure and version control integration.

Setting Up Kiro

Kiro is an AI-powered development assistant created by Amazon Web Services (AWS) that helps developers build applications more efficiently. It provides intelligent code generation, debugging assistance, and project management capabilities.

The setup process involved installing Kiro on my Mac M4 Pro and configuring it for web development:

What is Kiro?

Kiro is Amazon's AI-powered coding assistant that integrates directly into development workflows. It can understand natural language descriptions of what you want to build and generate appropriate code, handle complex project setups, and provide intelligent suggestions throughout the development process. This made it particularly valuable for setting up a comprehensive website with modern web standards and responsive design.

Development Workflow

Working with Kiro allowed me to focus on content and design while the AI handled much of the technical implementation:

Challenges and Solutions

During the website development process, we encountered several challenges:

Challenge 1: GitLab Integration

Initially had difficulty connecting the local development environment to the GitLab repository. This was resolved by properly configuring SSH keys and setting up the remote repository connection.

Challenge 2: Responsive Design

Ensuring the website worked well on all device sizes required careful CSS media query implementation. Kiro helped create a mobile-first responsive design system.

Challenge 3: Performance Optimization

The initial website was loading slowly due to large images and unoptimized code. We implemented image compression, CSS/JS minification, and lazy loading to improve performance.

Server Configuration & The Service Workers Problem

A critical lesson learned during this project was dealing with service workers and implementing a proper development server configuration.

The Service Workers Issue

Initially, service workers were added to the website for caching and offline functionality. However, this created major problems during development and testing:

The Solution: No-Cache Server Implementation

The solution was to completely remove all service workers and create a simple server configuration that explicitly disables caching with headers:

Why This Approach Works Better

Key Lesson: Service workers should never be used in development or educational projects where frequent updates are expected. They're better suited for production applications with stable, infrequently-changing content. This approach is particularly important for Fab Academy documentation where content updates frequently and users need to see changes immediately.

Git Repository Setup

The GitLab repository was already set up for me as part of the Fab Academy program. I only needed to configure SSH keys to connect my local development environment to the remote repository.

SSH Key Configuration

  1. Generated SSH key pair on my Mac M4 Pro
  2. Added the public key to my GitLab Fab Cloud account
  3. Configured local Git settings with my name and email
  4. Tested the connection to ensure proper authentication

GitLab Workflow

I'm using GitLab for version control and continuous integration:

File Management

All project files are stored in the GitLab repository following the Fab Academy structure:

Final Project Proposal

My final project idea is a Pulse Jet Engine that explores the principles of pulse jet propulsion through proper engineering design and testing methodologies.

Initial Design Sketch

Pulse Jet Engine Technical Sketch

Technical sketch showing the Lockwood-Hiller inspired valveless pulse jet design with characteristic U-shaped intake and straight exhaust tailpipe. Drawn on iPad and compressed by 91% using imagecompressor.com.

Project Description

The pulse jet engine project focuses on understanding the fundamental principles of intermittent combustion propulsion. The design will incorporate proper safety measures and testing protocols while exploring the thermodynamics and mechanical aspects of pulse jet operation.

Who Will Use It

This pulse jet engine system is designed as a propulsion technology with applications across multiple sectors:

Design Approach

The project will follow standard engineering practices:

Tools and Technologies Used

Kiro AI Assistant

AWS-powered AI development tool for website creation and intelligent code generation

GitLab

Version control and repository hosting on Fab Cloud infrastructure

Web Technologies

HTML, CSS, and JavaScript for responsive design and modern web standards

Simple Server Setup

No-cache server configuration that ensures immediate updates without service workers

Learning Outcomes

This week provided valuable experience in:

Useful Links