John Moen

Written by John Moen, a web developer in Austin, Texas. github.com/Dissolutio

Building a Reusable Pagination Component

19 October, 2018

TL;DR This React component wraps your list component, and paginates an array of items to display into it. No dependencies, but probably a…

Adding State to our UI

19 October, 2018

Adding State Methodically First, in the component, I will initialize the army state as an empty object, and the cards as an empty array…

To Craft a UI

17 October, 2018

Crafting a User-Interface If you didn’t know, create-react-app v2 came out recently. So all the cool kids are making web apps and UI right…

10 Months In

11 October, 2018

In January, when I decided I was going to ‘learn to build websites’, I was working with a lot less knowledge. So many unfamiliar terms and…

Learning Node #26: Pagination

11 October, 2018

Overview So, on our home page and elsewhere, we query the database for all the stores, but if we have a lot of stores, then rendering them…

Learning Node #25: Advanced Aggregations

10 October, 2018

Reinstate reviews to our sample data Do you remember in learning Node post #19 we edited out some lines of our because we hadn’t built…

Learning Node #24: Advanced Relationship Population - Displaying our Reviews

10 October, 2018

Display our Reviews We want to display the reviews for each store at the bottom of its store page. But how to keep track of this…

Learning Node #23: Adding reviews to our app

09 October, 2018

Define our review schema Good relationships are founded on sound communication. Let us be honest with ourselves, with our users, and with…

Learning Node #22: Pushing User Data to our API

05 October, 2018

Updating our data When a user clicks to ‘heart’ a store, we want to update the data and ajax the data back in. We will add a property called…

Learning Node #21: Geospatial Ajax

05 October, 2018

Index our data So we will be querying the location field fairly often, when users want to see the stores on a map. Let’s index that data…

Learning Node #20: Search Input Ajax Suggestions

04 October, 2018

Client side JavaScript module This type ahead feature will run on the client side as they type into the input. So let’s make a new file at…

Learning Node #19: Ajax REST API

27 September, 2018

Loading Sample Data We will implement the sample data loading feature that the instructor made for us. Thanks again, Bos man . We can see…

Learning Node #18: Locking down our application with User Permissions

24 September, 2018

We want to to able to link our stores with an author, one of the users in our database. How to create that relationship in mongoDB? First We…

Learning Node #17: Sending Email with Nodejs

24 September, 2018

We sign up for mailtrap.io, so we can have a test inbox to send emails to. In our code, we will make a handler file for sending emails. Then…

Learning Node #16: Password Reset Flow

23 September, 2018

Create a form We make a form with one input: Then we add that to the bottom of our view. Add a route Add the controller method We have…

Learning Node #15: Creating a User Account Edit Screen

22 September, 2018

Make the route! Add a route to get account page: Serve up a view from the userController Make the view Our will be a simple form: Route…

Learning Node #14: Virtual Fields, Login/Logout Middleware and Protecting Routes

17 September, 2018

Logout It’s super easy, add the route, and add the method. Notice how in our file we have an if(user)/else navigation already built for us…

Learning Node #13: Saving Registered Users to Database

14 September, 2018

Import model So we already made our new User model, let’s import it like we did our Store model: Using promisify and passport-local…

Learning Node #12: Creating User Accounts

13 September, 2018

Overview of steps to create a user We want to accomplish 3 steps when a user registers: Validate the registration That’s what we are going…

Learning Node #11: Multiple Query Promises with Async/Await

13 September, 2018

Promise.all( promise1, promise2… ) In our controller method below, we will be querying the database twice. Once for our tags, and once for…

Learning Node #10: Custom MongoDB Aggregations

12 September, 2018

Using aggregations to make our ‘Tags’ page So basically, if we had thousands of store in our database, it would not make sense to query the…

Learning Node #9: Custom Hooks and Queries

12 September, 2018

Making unique slugs First in our model , we go to the storeSchema.pre-save function. We make it an async function, because we’re gonna…

Learning Node #8: REVIEW

06 August, 2018

A review of material so far These tutorials are so good, and organizing my progress into blog posts really drills the information into my…

Learning Node #7: File Uploads

06 August, 2018

Upload photos of our stores We are going to upload an image file, and we are going to resize that image file. Update schema / Add the…

Learning Node #6: Geolocation

26 July, 2018

Update our schema We add to our schema in because we are going to add a date the store was created/added, some geo-coordinates, and an…

Learning Node #5: Control Flow

17 July, 2018

Overview Async/Await and Error Handling Flash Messages Querying Database The Edit Store Flow We make our do this: And voila, the function…

Learning Node #4: Pug Mixins

16 July, 2018

Add Store / Edit Store Our site nav has an “Add” link where we will go to add and edit stores. Add the routes First, we will add to our…

Learning Node #3: Models

16 July, 2018

Import models in start.js In this section, we setup a store model, which is part of the database storage process. So, if we look at our…

My first coding stride

12 July, 2018

I definitely fell out of the saddle for awhile. Life got full and very little time was spent coding or learning for over a month. When I…

Learning Node #2: Core Concepts

11 July, 2018

Overview The coding of the course begins with five sections over: Routing Templating Template Helpers Controllers and MVC Pattern Middleware…

Learning Node #1: Setup

10 July, 2018

SetUp Here’s the skinny on the boilerplate. Initial Downloads The starter files are hosted in a by Wes Bos , on github. He created the…

Learning Node #0: Introduction

09 July, 2018

Why Node? I’ve been playing in JavaScript front-end world this whole time, and you’re telling me I can use a framework to bust into back-end…

Technical Introductions

30 March, 2018

Are you new to web development, and coding in general? I was too! For about four months now, I’ve been learning as much ‘front-end…

Personal Introductions

30 March, 2018

Hi I’m John Eventhough this will probably be a mostly technical blog, let me introduce myself. I’ve lived mostly in central Texas, as far…