# Blog Using the MERN Stack Part 2 - Setting up CRUD on the backend

## Introduction

In programming, CRUD stands for: CREATE, READ, UPDATE and DELETE which are the four functions of persistant storage. &#x20;

Now, for web development, we have HTTP request methods.  The four CRUD functions can be mapped to their respective HTTP request methods:

| CRUD   | HTTP Request |
| ------ | ------------ |
| CREATE | POST         |
| READ   | GET          |
| UPDATE | PUT          |
| DELETE | DELETE       |

## User Stories

We need to think about how a user will interact with the site.  Do we want to have logged in users interact with the site or do we want to have all users to have CRUD functionality?  I don't think the latter is very functional. &#x20;

#### User not logged in

As a user who is not logged in, I want to be able to:&#x20;

* View all posts
* View a specific post

#### Logged in user

As a user who is logged in, I want to be able to:

* Do everything that a user that is not logged can do
* Create a post
* Edit a post
* Delete a post
* Edit my details

#### Admin

As an admin, I want to be able to:

* View all posts
* View a specific post
* Create a post
* Edit a post
* Delete a post
* Delete a user

With this we can see that we want two databases:&#x20;

* Users
* Posts

## Setting up our database

We'll start off using a local database first to get functionality up an running. &#x20;
