Day 6 & 7: Email Updates & Homepage Design


It’s getting increasingly difficult to remember what to write for the next blog post, so I’m going to declare a template to make it as transparent as possible going forward.


  • What did you do today/yesterday?
  • What difficulties did you face?
  • What did you learn?
  • What are you going to apply in the future?

Here we go!

What did you do today/yesterday?

  • Yesterday, I had sendgrid email service reactivate my account for the exposed API key (oops). Good on them for setting up monitoring for potential leaks on public repositories!
  • Also, I disabled much of the functions created for the email service and will further tweak them for usage later on.
  • Today, I decided that the front page needed a face lift and added a basic design.
  • Browsing through a couple templates, I picked and chose a couple components that seemed right to fill up the desert of a homepage.
  • Sorry for the oversized logos, wanted to test out the images and see how they worked!
  • Basic functionality for navigation provided as well on each individual card in the deck.

What difficulties did you face?

  • Lack of understanding of the httpClient of today and the features from Angular4 information is affecting progress.
  • Lack of understanding of security risks posed by a leaked API key, which led to the deactivation of my account.
  • Lack of design creativity, although my main concern at the moment is functionality.

What did you learn?

  • gitignore is my best friend, utilize it to not accidentally upload things that should be private! Added the index.js file to git ignore, but also added a redacted version of the file without the API key to be uploaded to git.
  • gitignore also has a rollback feature that allows you to revert back to a past commit. This was used when I lost a file after git pulling from master branch.

What are you going to apply in the future?

  • Follow my gut feeling in terms of certain development practices regarding security. Can’t really say it was an accident uploading the API key but the consequences were quick and brutal. Lesson learned most definitely.

That’s it for today. Thanks for reading.

Day 4 & 5: Contact Form & Email roadblock

Hello there!

So much for giving an update yesterday about what I did. Here it is now.

October 1st Change log:

  • Created template for contact form.
  • Includes the inputs for Name, email, reasoning, and an additional message box.
  • Drop down selector menu for 6 different options, 5 static and 1 called other to allow for other unlisted reasons.
  • Submit button is included but not yet programmed.

October 2nd Change log:

  • Added a function called httpEmail for firebase functions.
  • Utilizing sendgrid and firebase to enable email capability.

Problems for another day:

  • Accidentally leaked API key for sendgrid, had to manually remove it from GitHub repository.
  • Figure out the source of the error that’s blocking progress.

Very frustrating day to say the least, but coming in the next day with a clear mind can probably help solve the problem at hand. Definitely a roadblock for myself to overcome.

Day 3: Resume Component

Hi again!

It’s been a good 3 days since the last update. I did not work on this over the weekend but did work on it on Monday, but forgot to post an update and went to bed.

What I have done yesterday:

  • Installed to use with the resume component.
  • Set everything up and got it displaying a resume I had lying around, should probably make a more updated one soon.
  • Added in a fit-to-page option that allows proper viewing on mobile devices without manually resizing the PDF.
  • Messed around with drop down shadows on the navigation bar but removed them in the end.
  • Moved the development blog and source code buttons back to the left, as they didn’t work well on mobile devices.


  • Styling should be left for last on the to do list.
  • Functionality should be first on priority to be completed before messing around with stylizing.
  • Will be constantly be cross testing on my mobile device to ensure that it works flawlessly cross-platform.

That’s probably it for now, will be working on the contact form component today and post an updated blog later on tonight.

I haven’t really envisioned very far into the project for any design and functionality choices. Only time will tell.

Day 2: Navigation / small adjustments


I might just stick with updates to development rather than stories about my life, maybe they should go somewhere else.

What I’ve done today:

  • Added navigation using Angular’s Router Module.
  • Added new components for upcoming pages I feel needed for the site.
  • Fooled around with tool tips for each button in the navigation bar.
  • Rearranged the development blog and source code buttons to the right. Also, changed their color to signify differences in function as they are links rather than a navigational feature.
  • Removal of the search bar, wasn’t implemented yet.

What I plan for next time:

  • Work on the about-me page and create an interesting design out of it. No ideas yet, will need some inspiration.


  • Although today’s work was quite small, the site definitely feels more alive than the day before.

That’s all I got for today, see you next time.

Day 1: Redemption

Hello again!

Day one has never felt better! After yesterday’s update, I went ahead and went through the new tutorial on

Several times, a thought came up that was quite hard to deal with, “Four years of University and you are still using tutorials? What have you been doing?” It is a very depressing thought to have and took plenty of effort to make it through the tutorial to the very end.

At the end of the day, it was worth it. I gained a little more confidence to aid me in reaching my new found goals.

Today, September 26, I deployed my first site on Firebase (Google’s Mobile Platform). I will now go through the difficulties and what I accomplished today.


  • Installing Bootstrap and setting it up in an angular project.
    • It also apparently required jQuery and popper.js to be installed as well.
  • Then I had to update multiple files for locating bootstrap in order for it to function
Add an import to the styles.css file.
Add directories in the angular.json file. As you may have noticed, I did not include popper.js, it works fine right now, so I’ll just leave it off… heh.
  • Doing these three things allowed bootstrap to finally appear in the preview and could experiment with the styles.
  • The last difficulty for today was deploying the Firebase project. All the tutorials listed that for angular projects, the build/production folder is called dist and should be set as the public folder. What they failed to mention, or maybe it is Firebase’s fault, is that you need to set the public folder as “dist/[project-name-here]” and not “dist”.

What I accomplished today:

  • Created a navigation bar with bootstrap module and deployed it on Firebase to be viewed by the public!

Although what I’ve done today was very minimal, the little success today has given me more confidence that I will continue to develop this site into something much more. Also, some close support from friends have inspired me to reach greater heights!

Four months out of school, where are you now?

Hello world!

It’s been quite a while since I left school, the biggest question would be have you found a job yet? No, no I haven’t and here’s why.

Long story short, somewhere along my journey through coursework in university and in daily life, I lost my self-confidence and it has affected me to this very day. I cannot tell you exactly when I lost my self-confidence but it has negatively impacted my view towards life and my future.

However, that all ends today. I will list out my regrets over the last couple of years and will dedicate every ounce of my body to recovering what I have lost and what needs to be completed. My life will forever not be governed by chance or luck and will be ruled by merit. Merit will be my everything and I will strive my best towards this goal. No longer will my confidence be dictated by those who surround me but crafted and reinforced by my own successes in life. No matter how little I do, it will be better than nothing, I will pave this way towards an end goal.

Here is my list of regrets:

  1. Not studying or taking my studies seriously in University.
  2. Not putting in effort towards academic projects.
  3. Picking up a hobby that will certainly help with self-development.
  4. Not improving my reading skills and vocabulary by reading books in general.

… That list is much smaller than I thought it was going to be… nonetheless a list was created and now a plan of attack is required. A small explanation of my University life, I never stride to be a straight A student but rather hang around in the A’s and B’s area, only ended up with 2 C’s I believe, for the classes Theory of Proof and Calculus I. Those are stories for another day but the results are indeed due to point number 1.


  1. Go back and study all of the fundamentals of Computer Science that I can remember. Will take some time but a fully developed list of concepts is required before starting.
  2. Start a project and continue adding to it, no matter how little or long it will take towards completion. Should also try and adopt agile methodology for a one-man development team. Idea stemmed from a thought and googled to find:
  3. Continue to write blog posts? I feel a bit better after starting this post and seeing my thoughts in writing.

As of September 25, 2019 3:06 PM, I hope to conquer the old me and replace it with a better more serious and happy me.

Sprint Retrospective – Final Round

A reflection on what I learned from this week’s sprint is that when proper systems have been setup and the team synergy has reached proficient levels, the completion rate of tasks increase during the sprint and communication within the group is significantly better.

On the topic of proper systems, this includes repository management, branch management, issue tracking, and issue discussions. These five systems are currently being utilized between the two groups assigned to this project. It took several months of trial and error to effectively plan out guidelines and familiarize ourselves with them. This effectively allowed the groups to communicate clear intentions towards a certain issue, reduce duplications of tasks, and complete significantly more tasks this sprint than all previous sprints.

Furthermore, improvements towards team synergy allowed us to communicate more frequently during our sprint planning. This resulted in less confusing discussions as we can express our concerns towards specific tasks or directly question certain decisions without fear.

Our main focus for this week’s sprint was to finish the remaining tasks that would be carried over to this week’s sprint, clean up any mess made during the development cycle and create an appropriate presentation detailing our experience working on the project. Finishing up the remaining assigned tasks will allow us to close up loose ends. This will also create an opportunity to remove all active and past branches on git before another group takes on the project.

The remaining tasks consisted of several input fields for the intake form. We chose to continue these tasks because they are relatively simple to implement. Other tasks that were too large of a job were postponed indefinitely and were not considered. An example of this would be designing a database schema for the backend. The reason for abandoning this task for this sprint is that there would not be enough time between discussing and creating new iterations of the schema to clear up problems. Time invested towards designing the database where the implementation will probably be done by a future group would deem efforts wasted. The effort redistributed towards working on the presentation was deemed more useful.

Our group contained five members, of which four worked on the Food Pantry Web Application and one was dedicated to the FoodKeeper API. For our presentation, we each contributed as much information about what was done throughout this project’s development process. In the end, it is clearly divided into a section for the Thea’s Food Pantry Web Application and FoodKeeper API.

What I worked on during this week’s sprint is providing appropriate code snippets for the backend. This also includes providing any missing content based on the requirements provided for the presentation. Lastly, I made an effort to ensure a smooth delivery of the presentation by suggesting a system for delivery. The system is quite simple as we marked down exactly which slides, we would like to cover, exchange ideas on how the information will be presented, and made sure that if changes needed to be made, the group will be notified. As our chapter for this project comes to a close, the experiences thus far was impactful and I enjoyed working with my team for the past month on this project as a whole.