WEEK 1

Principles and Practices, Project Management

Plan and sketch a potential final project

Read, sign the student/instructor/lab agreements, and commit to your repos work through a git tutorial build a personal site in the class archive describing you and your final project

Version Control with Git and Visual Studio Code

Step 1: Begin by downloading and installing the Git program, readily available through any search engine. Concurrently, consider installing Visual Studio Code, a versatile code editor that facilitates repository cloning to our local environment, namely, our computer.

Step 2: While the programs are downloading, access our GitLab account to ascertain three crucial pieces of information:

Our GitLab username.

The email address associated with our GitLab account. The code of our repository, essential for cloning it to our local environment (i.e., our computer). For this demonstration, HTML was employed to execute the procedure.

Cloning the Repository to our Local Environment

Before proceeding with the cloning process, it's advisable to create a dedicated folder within "DOCUMENTS" to preempt any future complications. This folder will serve as the repository's storage location.

Step 1: Open Visual Studio Code to commence cloning the remote repository.

Step 2: Open a new file and locate the "CLONE REPOSITORY" button. In the search bar, paste the HTML code (ensure it is copied beforehand). Press ENTER to initiate the cloning process. Subsequently, confirm the action in the ensuing tab by clicking OPEN, and the cloning process will commence. Refer to the second image for a visual representation of the cloned documents from the repository to the computer.

Step 3: Now, access the TERMINAL, located at the top, to input the email and username mentioned earlier for correct PULL and PUSH operations.

Step 4: In certain cases, it may be necessary to remove documents from the PUBLIC folder, especially if a personal website is being developed independently of provided resources. If so, move the documents from the folder to where the repository is located.

Step 5: Subsequently, work on all changes and updates within Visual Studio Code. Utilize its functionalities to perform COMMIT and PUSH actions when necessary. It's prudent to aggregate significant changes rather than numerous small ones to minimize the proliferation of COMMITs, which can be suboptimal. With these steps completed, you're now poised to design, experiment, enjoy, and refine your website.

Website Development

Initially, I lacked expertise in website creation and was unfamiliar with the requisite processes and design paradigms. Delving into HTML and CSS tutorials for beginners, supplemented by video tutorials, web articles, and assistance from ChatGPT, enabled me to grasp the fundamentals of website development. Opting to eschew templates, I embarked on designing from scratch, organizing my approach to delineate the structure and layout of the desired website. The process was characterized by extensive research and information-gathering, underscoring the importance of dedicated hours in acquiring knowledge.

Personalization

To initiate, I commenced with design and layout prototyping using Photoshop, thereby creating a template for the website. Preferring to avoid templates due to their complexity, I opted for a more streamlined approach, meticulously crafting the website's HTML structure without the need for extensive template modifications.

Image Compression and Uploading

For image optimization, I adopted a process involving image compression and uploading to enhance website performance. Images were first collated in a dedicated folder, then uploaded to the Canvas website to be resized to 1920 x 1080 dimensions. Finally, the images were compressed using the SQUOOSH website to reduce file size without significant loss of quality. Once compressed, the images were uploaded to Visual Studio Code, embedded within the HTML or CSS, and seamlessly integrated into the website

Potential final project

Project Name: Home Alarm System

Project Development Report

1. Motivation

The motivation behind our home alarm system project lies in the growing need to provide security and peace of mind to communities. Concern for home security has been the catalyst that drives us to develop an advanced and reliable system that adapts to the changing needs of users and provides an effective response to risk situations.

System characteristics

Develop the code in Arduino IDE of a program for the ESP32 microcontroller that performs the following functionalities: Intrusion detection using motion sensors and high-resolution surveillance cameras; fire detection and a real-time notification system to keep users informed. The activation and deactivation of the alarm will be carried out with a delay of 20 seconds locally using a keyboard to enter a security code or remotely via the Internet. The alarm output will activate a relay that will connect a siren. Simultaneously, the sending of an intrusion or fire notice via the Internet to a cell phone will be enhanced. Include the development of the code for the cell phone interface in Java language. Additionally, we are integrating a powerful microcontroller for efficient data processing and fast system response.

Components

Microcontroller: We will use a state-of-the-art microcontroller to ensure optimal performance and efficient data management. Printed Circuit: We will design a compact and efficient printed circuit to house the electronic components in an organized and safe manner. Sensors: We will implement highly sensitive motion sensors for accurate detection of intrusions. Actuators: We will introduce actuators that allow quick responses, such as activating emergency lights or automatically closing doors. Case: The system case will be robust and resistant, protecting the internal components from adverse weather conditions and vandalism.

Tasks to Develop

Research and selection of components. Design of the printed circuit and development of the electrical diagram. Microcontroller programming for efficient management of sensors and actuators. Integration of sensors and actuators in the system. Development of the user interface and notification system. Performance tests and final adjustments. Prototype manufacturing and testing in real environment. Optimization of power consumption and battery life. System documentation and preparation for mass production.

Project Management using DevOps Practices

We will adopt DevOps practices to ensure efficient collaboration between the development and operations team. This will include test automation, continuous integration, and continuous delivery to ensure software quality and smooth system deployment.

2. Schedule

Month 1-2: Initial Design and Development Research and selection of components. Design of the printed circuit and development of the electrical diagram. Beginning of microcontroller programming. Month 3: Integration and Testing Integration of sensors and actuators. Development of the user interface and notification system. Performance tests and final adjustments. Month 4: Optimization and Preparation for Production Optimization of power consumption and battery life. System documentation. Preparation for mass production. This schedule will allow us to meet our goal of delivering an efficient and reliable home alarm system within four months, effectively providing security and peace of mind to homes.