Skip to content

alwinsimon/MERN-User-Manager

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MERN-User-Manager

Node.js Express JWT

This repository contains a production-ready the backend server and frontend application for a basic MERN Stack user management application.

Back-end is built with Node.js and Express and MongoDB for Database.

Front-end is built with Reactjs using Vitejs.

It leverages two custom npm modules, base-auth-handler for authentication handling and base-error-handler for error management.

Features

  • Authentication Handling: Uses base-auth-handler for robust authentication with JWT sent in cookies.
  • Error Management: Utilizes base-error-handler for effective error handling.
  • Logger: Implements a production-level logger created with Winston and Morgan, saving logs into a remote MongoDB instance.

API Documentation

Note: The detailed Backend API documentation is available on Postman. Please refer to API Documentation on Postman.

Additionally, Swagger is integrated for convenient exploration of the API:

You can also access the API documentation in JSON format:

Backend Server

Frontend Server

Prerequisites

  • Node.js
  • Express
  • React.js
  • JSON Web Token (JWT)
  • MongoDB

Environment Variables

APPLICATION_NAME = MERN-User-Manager  
PORT = 5000  
NODE_ENV = development  
(Use development for dev environment and production for prod environment)  
JWT_KEY = your_jwt_key_here  
JWT_TOKEN_DURATION = 30d  
MONGO_DB_URI = your_mongodburi_here  
ADMIN_REGISTRATION_KEY = your_adminSecret  

Getting Started

  1. Clone the repository:

    git clone https://github.com/alwinsimon/MERN-User-Manager.git
  2. Install dependencies:

    cd MERN-User-Manager
    npm install

    Install Front-end dependencies.

    cd frontend
    npm install
  3. Set up environment variables:

    Create a .env file in the root of the project and add the environment variables listed above.

  4. Run the server:

    Execute following command in the root directory of the project.

    npm run app

    The back-end server will be running at http://localhost:5000 or the specified port in your .env file.

    The front-end server will be running at http://localhost:3000.

Dependencies

  • See back-end package.json for a detailed list of dependencies.

Contributing

Feel free to contribute and provide feedback!

Create issues for bug reports or feature requests.

License

This project is licensed under the MIT License - see the LICENSE file for details.