Skip to content

Commit 5c1181c

Browse files
committed
Blog update
0 parents  commit 5c1181c

File tree

82 files changed

+665
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

82 files changed

+665
-0
lines changed

LICENSE

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
MIT License
2+
3+
Copyright (c) 2019 GitHub, Inc.
4+
5+
Permission is hereby granted, free of charge, to any person obtaining a copy
6+
of this software and associated documentation files (the "Software"), to deal
7+
in the Software without restriction, including without limitation the rights
8+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9+
copies of the Software, and to permit persons to whom the Software is
10+
furnished to do so, subject to the following conditions:
11+
12+
The above copyright notice and this permission notice shall be included in all
13+
copies or substantial portions of the Software.
14+
15+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21+
SOFTWARE.

README.md

Whitespace-only changes.

_config.yml

Whitespace-only changes.
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
---
2+
layout: post
3+
title: "A Journey of a Thousand Miles..."
4+
date: 2021-09-04 17:23:48 -0500
5+
categories: blog engineering-journal first-post
6+
---
7+
8+
Starting something new has always been a difficult process for me. The perceived effort of beginning an unfamiliar task slowly builds until it feels like there is a mountain looming in front of me.  According to the experts, much of this can be drawn back to ADHD:
9+
10+
> Emotions, positive and negative, play a critical role in executive functions: initiating and prioritizing tasks, sustaining or shifting interest or effort, holding thoughts in active memory, and choosing to avoid a task or situation. Whereas Google responds to queries typed into the search engine, the human brain responds to the quality and intensity of emotions attached to associated memories. [Source](https://www.additudemag.com/adhd-motivation-problems-getting-started-on-tough-projects/)
11+
12+
The human mind is a complicated thing. Even with my thirty-odd years living with mental disorders, some things never get easier. But this is a start.
13+
14+
Here I lay forth the prelude to my Engineering Journal. Like most good stories, we start in the middle. As I move into the Senior phase of the Hack Reactor bootcamp, my software engineering knowledge is put to the test for our first task: the Front End Capstone. We now transition to the world of agile development with a team of 4 working together on a single project. As always, there are new challenges and adaptations to be made.
15+
16+
Procrastination may be ~~fine~~ manageable when working alone, but should be avoided when three other people are working with you. I just have to remind myself to mitigate bad habits and bring my strengths to the table. I am excited to continue this journey and learn alongside others, and even find myself looking forward to continuing this journal now that it has begun.
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
---
2+
layout: post
3+
title: "Sprinting Catch Up"
4+
date: 2021-09-09
5+
categories: blog engineering-journal
6+
---
7+
8+
# The Front End Capstone
9+
10+
## Phase 0: An Agile Beginning
11+
12+
Phase 0 began with meeting the team and coming up with a group name: *catlike-reactflexes* (the four of us thought it was pretty clever). Next we went though all of the setup steps; creating a organization on GitHub, making a Trello board to track progress, and the ever-important documentation review.
13+
14+
Each of us also had an important individual task to start an Engineering Journal! ( You're reading it right now :) )
15+
16+
There is a learning curve when starting a project with 3 others, but with good teamwork we were able to get the project set up. We now have a basic React app served with Node and Express to work from.
17+
18+
---
19+
20+
## Phase 1: Breaking It Down
21+
22+
Phase 1 began with each team member choosing a widget from the application to work on. The project assigned to us is a product details page similar to many online clothing retailers. The app was broken down into Product Overview, Related Products & Outfit, Questions & Answers, and Reviews.
23+
24+
Up to this point I had been trying to provide suggestions for planning and structuring the project to help things progress smoothly. I decided to choose the one critical component - Product Overview - to help take some of the pressure off others and continue in an informal planner/architect role.
25+
26+
Once everyone picked a widget, we moved on to Trello to start creating project tickets. Each widget needed to be broken down into its component parts and those given a time estimate. Finally the team set up a basic testing environment using Jest. Next it will be time to dive into coding!
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
---
2+
layout: post
3+
title: "Playing Telephone"
4+
date: 2021-09-15
5+
categories: blog engineering-journal
6+
---
7+
8+
# Calling the API
9+
10+
## Challenge
11+
12+
Implement a successful API call starting from the Client through the Server to the API
13+
14+
## Actions
15+
16+
I started off attepting to use jQuery's ajax function to make a call to the server. This brought to light issues with importing the library and the client could not find the definition for "ajax". After some time troubleshooting, I decided to switch to using "axios" to make the HTTP requests. Once over the brief learning curve, I determined how to pass parameters with a GET request and read this information on the server side. From here I just had to make a call to our API with the GitHub Token passed as authorization.
17+
18+
## Results
19+
20+
After the decision to switch to axios, the request chain was reletively easy to implement. From React we use componentDidMount to create a get request on load, the server parsed the product ID and sent a get request to the product API, on success we recieved an object containing the full details of the requested product.
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
---
2+
layout: post
3+
title: "SDC Begins"
4+
date: 2021-10-12
5+
categories: blog engineering-journal
6+
---
7+
8+
# System Design Capstone
9+
10+
## Building a scalable service
11+
12+
- Team: 1337requests
13+
- - Manifesting a personal goal of over 1000 requests served per second
14+
15+
### Theorize - Test - Record
16+
17+
- Chosen service: Product Reviews
18+
19+
Begin!
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
---
2+
layout: post
3+
title: "Debate-abase"
4+
date: 2021-10-17
5+
categories: blog engineering-journal sdc
6+
---
7+
8+
# Debating Databases
9+
10+
## Options and choices
11+
12+
### The Challenge
13+
14+
The goal of SDC is to create an API service based on the data from the frontend capstone project. The first step is to choose one SQL and one NoSQL database.
15+
16+
### Actions
17+
18+
Working from a list of possible options, I weighed the options of using a framework I was familiar with vs. learning something new. I also looked into the relative complexity of setting up various databases and using them with node.js
19+
20+
### Results
21+
22+
SQL - With a growing fondness for open source applications (likely stemming using Ubuntu for the Hack Reactor program), I decided to take on a small challenge to learn and use the PostgreSQL relational database system.
23+
24+
NoSQL - I have experience using MongoDB from previous sprints in the program, so I decided to stick with something I knew rather than learning something entirely new with Cassandra.
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
---
2+
layout: post
3+
title: "Primary Database"
4+
date: 2021-10-18
5+
categories: blog engineering-journal sdc
6+
---
7+
8+
# Choosing a Primary Database
9+
10+
## Technical Justifications
11+
12+
### Debating on SQL vs. NoSQL
13+
14+
A large factor in deciding what database to use was the complexity of the data and API requests. For the Reviews service there are two GET routes for Reviews and Metadata, a POST route for new Reviews, and two PUT routes to mark Reviews as Helpful or Report a review. The data for Reviews is relatively simple, with only the Photos and Characteristics having multiple items. Considering these factors, I have decided to use MongoDB as my primary database.
15+
16+
With little cross-review data needed, a relational database seems like overkill. Any calculations such as scoring on product characteristics can be performed easily on a per-request basis as this only requires averaging a sum of numbers. The next step will be to explore the actual dataset and see if my planning holds up to the reality!
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
---
2+
layout: post
3+
title: "Encountering the Data"
4+
date: 2021-10-19
5+
categories: blog engineering-journal sdc
6+
---
7+
8+
# Accessing the actual Dataset
9+
10+
## Does it fit the mold?
11+
12+
Now that we have created our schemas and the primary database has been chosen, access has been granted to our dataset. It was mildly shocking to find that there are over a million records for the reviews, but it is nice to have something that is a similar scale to the real world. The only other surprise was discovering that the review categories such as Size, Comfort, etc. do not have consistent IDs for each product. Luckily we are provided with a table to match the IDs to their category name.
13+
14+
![Characteristics schema](https://cors.io/?https://github.com/rainealexander/rainealexander.github.io/blob/master/resources/charschema.png)
15+
16+
My current schema should still work as there are no additional categories, only different IDs that map to them.
17+
18+
The final piece to review was the date field for reviews. The dataset contains a number that seems to relate to milliseconds in a JavaScript Date. A brief test in the browser console confirmed this to be true:
19+
20+
![Date Test](https://cors.io/?https://github.com/rainealexander/rainealexander.github.io/blob/master/resources/datetest.png)
21+
22+
Now that I understand the data I'll be working with, the next step is to install MongoDB and Mongoose, then research the ETL process!

0 commit comments

Comments
 (0)