- read

Building a Signup and Login System With MongoDB — Mern Stack Tutorial Part 2

Nitin Sharma 42

Building a Signup and Login System With MongoDB — Mern Stack Tutorial Part 2

The ultimate web development series with a simple-to-follow guide.

Nitin Sharma
Level Up Coding
Published in
7 min read18 hours ago

--

Photo by ThisisEngineering RAEng on Unsplash

In the last post, I talked about starting your journey with the MERN Stack. In that post, we created a basic MERN setup and connected it to MongoDB.

Now, let’s take a deeper dive into it by building a signup and login system.

This is where we’ll explore the process of storing information from the user’s side and how we can use it when someone tries to log in.

So, without further ado, let’s get going!

1. Creating the Perfect Folder Structure for Frontend and Backend

I understand you’ve got better things to do than reorganize files.

So, we’ll continue using our existing folder structure called “mern”. It’s made up of two parts: the “client” and “server” folders.

mkdir mern

The good news is that most of the npm packages we’ve been using will stay the same. However, we will be adding a few new packages to enhance our setup.

And that’s what, we will be learning in the next section.

2. Create a Client ( Frontend ) for Your Mern Project

In our last post, we created a “client” folder and set up our React application with Vite.js.

We’re going to stick with this method, so now we’ll generate a Vite.js React project named “client”.

cd mern
npm create vite@latest

This command will prompt you with a series of questions, including the project name, framework selection, and variant.

For the project name, type “client”, choose React as the framework, and select JavaScript as the variant.

After completing the Vite.js setup, move into the “client” folder, install the necessary dependencies, and run the project step by step:

cd client
npm install
npm run dev

Next up, we’ll load up several essential npm packages, such as Axios and react-router-dom, using the command: