Skip to content

Week 1: Project Management & Web Development

Jan 29

I’m excited about this week’s assignment, as it’ll be my first experience with version control, as well as my first experience with web development without using a WordPress template. My current portfolio website was built with by installing a Wordpress theme and using the online Wordpress block editor. I’ve made some slight changes using the Theme Editor and some very basic HTML & CSS script, but without learning the fundamental commands or syntax of these languages, I liken the process to being an English speaker attempting to translate Russian to Mandarin using Google Translate. Identifying individual words is simple enough, but your document won’t make any sense without understanding the grammar or sentence structure that either of the languages use.

In our lecture, we learned about a wide range of web development tools in a short period of time. My main takeaway is that web development tools exist on a spectrum, where at one end, a beginner would be able to perform base functionality but an expert would be hindered by the limitations inherent to the tool, and on the other end, a beginner would be severely limited by the complexity of the tool, but an expert would be able to create something advanced in a relatively efficient manner. My plan is to start with the simplest workflow to begin, and transition to more advanced tools as I learn about more advanced tools. The template website has MkDocs ready to go, so I’ll be using Markdown code in the GitLab IDE, and pushing commits to the repository straight from GitLab. My next step will be to gain an understanding of Git commands and use Atom as a text editor so I can edit the files locally. If that all goes to plan, I will try to learn some basic HTML to enhance my Markdown code.

As my personal website demonstrates, I am a big fan of simple, brutalist web design, and I should be able to get the functionality and aesthetic I’m looking for from these tools. I have encountered some large limitations with the tools I currently use, so I’m excited to incorporate these new tools, as it will hopefully have a big positive impact on my personal website.

Feb 1

After listening to the main lecture, the node lecture, and the recitation, I felt like I had a basic understanding of what Git was and why version control is useful for web and software development, but I felt like most of the lessons started at a proverbial “Step 2,” and there was something I was still missing. In reality, all of the individual components we talked about were most probably discussed during the lectures, but as I was already overwhelmed from the beginning, it was hard to stay afloat and retain this information. I’m definitely a visual learner, and I feel like having a schematic that illustrates how GitLab, SSH keys, terminal navigation, local repositories, and Git commands all interact would be very useful for people in my position in the future.

Over the weekend, I talked to my friend about the terminal, and after some hand holding I began to understand how the whole ecosystem interacts. During office hours on Monday, 2/1, with the help of Spencer and Nick I finally felt like things began to click. First, I was able to link my SSH key to GitLab, get my repository cloned to my computer.

Once I established this connection, I was able to use terminal commands to navigate to my local repository using the following commands.


Terminal navigation commands

cd

Change directory

ls

List files

cd ..

Move up one directory

Once I navigated to the local repository, I was able to check the status of the repository, make changes to one of the documents in the repository using Atom, then save the modified file.

Once the file was modified, I confirmed the changes in the terminal, add the changes, commit the changes, then push the changes back to the GitLab repository using the following commands.

Git commands

git clone

Clones a repository into current directory

git status

Displays state of working directory and staging area

git add .

Adds change in the working directory to the staging area

git commit -m "description"

Commits changes…

git push

Pushes changes made to local repository to GitLab repository

Getting Out of Vim

In the process of executing my first push, I entered the

git commit

command, and accidentally entered Vim. In order to exit Vim, I had to enter

i

to go into insert mode, type my commit message, enter

esc

to go into command mode, then enter

:wq

to write and commit my changes.

Apparently I’m not the first person to have ever made this mistake, as the topic has been viewed 2.3 million times on Stack Overflow.

Fab Academy - Week 1 Tutorial

Digital Citizen - 11 Basic Command Prompts You Should Know

Atlassian - Git Commands

Git - Getting Started


Final Project: Indispensable Pill Case

While I have considered a couple different options for my final project, I feel that the project that I keep coming back to is my pill case. I live with epilepsy, and my condition is under control as long as I take my medication on time. This can lead to some anxiety, as forgetting to take pills on time can have a major impact on my life. Even when I’m 99% sure I have taken them, I need to carry my pills with me at all times so I can double check, and take them as soon as possible if I realize that I’ve forgotten. Pill cases that are currently on the market aren’t ergonomic, and require two hands to use, so I designed a pill case to fit into my hand, my pocket, and my life.

This 3D printed pill case has served me well, but I feel like it could be much more useful to me, and eventually to others, if it offered some increased functionality. Most importantly, receiving medication reminders and tracking the timing that the medication is taken would help the user adhere to their treatment and gain a better understanding of their behavior over time. In the case of someone like me who also wears a device that tracks the occurrence of seizures, this medication data would provide a valuable insight in determining the risk that missing doses could incur on a user.

Another benefit of the device having Bluetooth connectivity would be that when the device is out of range of the user’s phone, an alert could appear, letting the user know that their medication is no longer on their person. This could be very important for people who have to take their medication throughout the day, as in the most benign scenario, returning home just to pick up forgotten medication is an inconvenient and frustrating situation.

For my final project in Fab Academy, I propose to develop a Bluetooth-connect pill case that can remind the user to take their medication blinking an LED, activating a piezo buzzer, and sending push notifications to the user’s phone. The device will also be able to track when the medication has been taken by using a gyroscope to detect movement of the case, and send a push notification to the user’s phone. The device will be powered by a LiPo battery, and charged through an induction coil. The device will also send a push notification to the user’s phone when Bluetooth connection is lost, to let them know that their medication is no longer on their person. I predict that the most complicated aspect will be the Bluetooth functionality. The first iteration of this project will have the light and buzzer turn on when the pills are scheduled to be taken, and they will turn off once the the user takes their medication.

There are smart pill cases out in the world, such as Pillieve and Pillo. Pillieve is a locking pill case designed to limit the consumption of opiods, and Pillo is a counter-top, friendly pill dispenser with a web cam that essentially serves as a smart medicine cabinet. While these are well designed, useful tools for their target markets, their intended use case is different from the case I have described above.

In 2016, Arsheena E.P. at Fab Lab Kochi built a pill case to remind her grandmother with Alzheimer’s to take her medication on time. In 2017, Corey Rice built a countertop pill dispenser to help his elderly grandmother take her pills on time. Finally, Jasim Bouresli at Fablab Kuwait initially planned to build a Bluetooth-connected pill box, but ended up building a Bluetooth-connected, locking jewelry box. These FabLab projects give me confidence that my proposed project is not only technically possible, but it is achievable within the timeframe of the course.


Last update: February 17, 2021