My First Four DevLogs

Published: Updated:

As I was planning Farai’s Code Lab, I decided to make a weekly series called DevLogs in which I provide updates on my coding projects. The DevLogs were supposed to be published as videos along with a text post but I forgot to make them. So instead of writing the missing posts, I’ve decided to summarize my first four blog posts here.

DevLog #0 – Starting My Senior Project

Being the good student I am, I spent the Christmas Break finding and planning my senior design project. And by Christmas Break I mean the first day of classes where my professor asked me what I wanted to do for my senior project.

For my senior project, I decided to make a voice-powered lab assistant for my CS department. At first, I wanted to execute terminal commands, but besides being really hard to do, the CS department has more important things they need assistance with. Like getting meal availability, checking class schedules, helping students study among other things.

It will run off the Google Home and will use Google Cloud Functions as the backend. I will also be using Dialogflow to structure the project as it’s strongly recommended by Google.

Speaking of Dialogflow, there are a lot of things I need to learn, such as:

  • Dialogflow – the tool used for the natural language processing
  • Google Cloud Platform – the backend for the lab assistant
  • Node.js – I would have used Python but Google’s Dialogflow SDK only comes in Node.js. I’ve heard that JavaScript has changed a lot from the last time I’ve used it so I’ll also need to learn about the newer variations of JavaScript.
  • Conversational UI Design – I borrowed a few books to help me design the app.

For now, the work I need to do is research based but once I know how everything works, I can finally start coding.

DevLog #1 – Learning Too Many Things At Once

This week, I tried to learn too many things at once and I ended up learning nothing. Not that the tutorials I was using weren’t any good. I mean, the Node School provides helpful JavaScript tutorials and Derek Banas make comprehensive programming tutorials. I just felt as if I should focus on designing the assistant. To do that, I read a book on bot design by Amit Shevat [Affiliate link] that had an emoji in it 😱.

I also had a few problems with Google Cloud Platform since I reached my project limit (which was mostly due to Math.floor(it), a project I made at a hackathon). I also thought that GCP might not be the best for my project and was looking for alternatives.

DevLog #2 – Almost Actually Getting Started

The book on Conversational UI had finally arrived. I didn’t read it because I realized that my “research” was just an excuse not to do any real work. Because of that, I decided to do real work.

The first part of my project was getting information on my college’s cafeteria (the Mensa) menu. There were many quirks associated with JavaScript I came across that pulled my hair out. I also found cheerio.js to help me parse the menu page’s HTML. Cheerio.js is Beautiful Soup for Node.js. All it does is parse an HTTP response’s body into HTML. It doesn’t actually run it as it would in an actual browser (a feature I might need later).

DevLog #3 – First Part Complete!

I missed a week since I was busy working on my tech talk on Dialogflow and A Bit of Node.js. I was finally able to check the Mensa menu and pipe it through the Google Home. The code is a mess and it doesn’t handle edge cases but it works and that’s all that matters right?

I also created my personal website, Farai Gandiya and my coding centric website, Farai’s Code Lab. They weren’t live (on the fgandiya.me domain) at the time I made this since GitLab Pages (where I host my websites) had a major security flaw they had to patch.

Future Farai’s Note: Looking at this video, I’m horribly underexposed, the white balance is off and I’m a very sweaty boi.


Those are my first four DevLogs. I hope to make blog posts along with videos for each DevLog in the future.

While you’re here, I also made a monthly update on my content for the month of February. Not the best quality since I did it in a rush, however.