Principles, Practices and Project Management

Objectives for Week 1.

1. Final Project Ideas

The first task on week 1 is to choose the final project. To do this, I need to shortlist five potential projects and finalize one, after discussing them with my instructors.

Here are the projects I’ve selected:

  1. Smart Human Following Trolley - An automated trolley designed to follow a person in a shopping mall, allowing items to be billed directly on the trolley.
  2. Talking Toy- A toy that plays preloaded audio files from an SD card and is programmed to follow a child.
  3. Reading Light- A voice-controlled reading lamp with adjustable angle, intensity, and color of the light.
  4. Gesture Controlled Car - A car that responds to hand gestures for navigation and control.
  5. Firefighting Robot - A remotely operated vehicle capable of firefighting tasks.

Talking Toy

After discussing with my instructor, I finalized the idea of creating a talking toy. The inspiration for this project came during a visit to my cousin's home, where I noticed her one-and-a-half-year-old daughter glued to a smartphone and unwilling to part with it. This made me wonder if there could be a toy that would engage her and encourage interaction. While researching, I couldn't find any toys that allowed customization of audio files—they all came preloaded with standard audio, which felt uninspiring.

As I was brainstorming ideas for my Fab Academy final project, I thought, why not create the kind of toy I had been searching for? I believe this would make the perfect gift for her. The toy will include an SD card slot, enabling us to play customized audio files such as stories or music. Additionally, it will have wheels, allowing it to follow the child while playing the audio, making it interactive and engaging.

This toy features LED lights for the eyes, a display for the mouth to mimic lip movements, speakers for audio output, and ultrasonic sensors for measuring distance. It is equipped with four wheels for mobility, a DC power supply for battery charging, and an SD card slot for customizable audio playback.

2. Version Control

Version control is a system that tracks changes to a set of files over time. It helps manage changes, and allows users to revert to previous versions if needed.

For my documentation purpose I am using Git.

What is git?

Git is a tool that helps you track changes in your code, collaborate with others, and manage different versions of your project.

  1. Version Control: Keeps track of changes, so you can go back to previous versions if needed.
  2. Branches: Allows you to work on new features separately without affecting the main project.
  3. Commits: Save points in your project that record what changes were made.
  4. Repositories: Where your project and its history are stored, which can be shared with others on platforms like GitHub.

I have GitBash installed on my system, and I use it for working with Git.

I have VS Code installed on my system, and I use it for working with html.

Initial Configuration

Initially we need to configure the gitlab locally by specifying the username and E mail.

  1. Username

  2. git config --global user.name 'Type username'


  3. Email

  4. git config --global user.email 'Type email'



SSH key Generation

An SSH key is a secure communication protocol used to establish a connection and share data between two computers.

Use this code for SSH key generation,


ssh-keygen -t ed25519 -C 'your_email@example.com '



Add the SSH key in Gitlab User settings.

Cloning Repository

Create a folder on your system where you want to clone the repository, open Git Bash from that folder, and then copy the repository link from the code section in GitLab.

Type the following in GitBash,


git clone 'Repository link'



Add, Commit, Push

After cloning the repository, I downloaded the student agreement and saved it in this folder. Then, I opened the folder in VS Code. For convenience,
I installed the Live Server and Save Typing extensions in VS Code.



The index.html file is opened with live server and changed my name in the students agreement.


These changes need to be uploaded to the remote server, and the following commands are used to accomplish that.

  1. Select the files that are required to be uploaded. If you want to upload all use second code.

  2. git add 'File name'

    git add .


  3. Commit the changes with a message describing what modifications you've made.

  4. git commit -m "'Enter any message'"


  5. Push these files to the remote repository.

  6. git push




HTML and CSS

HTML forms the backbone of a website, while CSS enhances its visual appeal. When combined, they create a well-structured and aesthetically pleasing website.

Basic HTML tags
  1. Structure Tags


  2. Text Formatting Tags


  3. Links & Media Tags


  4. Lists Tags


CSS

CSS is a stylesheet language used to control the appearance and layout of web pages.


Types of CSS

  1. Inline CSS- Applied directly within an HTML element using the 'style' attribute.

  2. Internal CSS- Written inside a ''style' tag within the HTML 'head' section.

  3. External CSS- Written in a separate '.css' file and linked to the HTML using a 'link' tag.

Initially my website looks like this,



Cleared the Sample text provided by Fab Academy and replaced it with my contents.


I changed it to,


ChatGPT is used for paraphrasing.


3. Conclusion

This week, I learned how to use Git and GitLab, successfully cloned my first Git repository, and explored HTML and CSS to begin building my website. Additionally, I finalized and sketched the design for my final project, marking a significant step forward in my journey.

4. References