Week 1

Week 1

Website Development

This week, I worked on developing a website to document my progress through this course. Having worked pretty extensively with website development in the past, I chose to develop this website using React.js and Next.js (as opposed to with the standard HTML/CSS templates provided in class).

In doing so, I have been able to create a much more modular and scalable design. With React, I created components for every page and for certain aspects (such as header images) which are frequently repeated—thereby allowing me to minimize the amount of code which is copied and pasted. Moreover, with Next, I have been able to manage routing, image optimization, and a variety of other important aspects to creating a functional website.

Indeed, while this method was probably more time consuming than simply modifying the provided templates, I think the results have been pretty rewarding!

React.js
Next.js
Final Project Proposals

Option 1: Wake Up Manager

The first project that I am considering making is an automated wake up system. As a very deep sleeper, I oftentimes sleep through my alarm, and I am in need of a more comprehensive solution. Much like an alarm clock, this project would have a speaker component that would play loud noises at a certain time to wake you up. However, unlike an alarm clock, the system would also be smarter—connected to a stepper motor to open the blinds and let in natural sunlight, an IoT board (like an Arduino) so that the speaker can tell me important information like the weather, and maybe even a small water pump to spray me if I don't shut off the alarm.

This project would be somewhat similar to other "smart alarm clock" solutions such as Allison's Smart Alarm Clock, The Loftie Clock Smart Sleep Assistant, and even Amazon Alexa Devices. However, my project would connect to significantly more external components than these other solutions, and would thus give me plenty of opportunities to explore new technologies and ideas!


Option 2: Plant Automation System

Alternatively, I could create a plant automation system to keep my plants alive. Indeed, while my mom gave me two plants at the beginning of the school year, I managed to kill both last semester 😭 As a result, I am in need of a more automated solution. Such a system could, for instance, monitor the moisture levels in the soil using a sensor as well as the amount of sunlight the plant is receiving. It could then drive motors to pump water into the plant or open the blinds nearby, respectively. As a stretch goal, I could also connect this system to the internet so that I could monitor the plant's wellbeing remotely.

However, this project is one which has already been done numerous times—in Nina's Automatic Plant Waterer, this automatic plant waterer for potted plants, and this smart plant water meter and health sensor. While my project would have some unique components (such as automated blind control), I am leaning towards the first option due to its novelty.

Diagram 1
Diagram 2