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.
- 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.
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:
- Swagger UI: http://localhost:5000/api-docs
You can also access the API documentation in JSON format:
- API Docs JSON: http://localhost:5000/api-docs.json
- Base URL: http://localhost:5000
- Base URL: http://localhost:3000
- Node.js
- Express
- React.js
- JSON Web Token (JWT)
- MongoDB
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
-
Clone the repository:
git clone https://github.com/alwinsimon/MERN-User-Manager.git
-
Install dependencies:
cd MERN-User-Manager
npm install
Install Front-end dependencies.
cd frontend
npm install
-
Set up environment variables:
Create a
.env
file in the root of the project and add the environment variables listed above. -
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.
- See back-end package.json for a detailed list of dependencies.
Feel free to contribute and provide feedback!
Create issues for bug reports or feature requests.
This project is licensed under the MIT License - see the LICENSE file for details.