Set up a modern Node.js API service by running one command

Node Starter

Node-starter is a command-line application, here you can easily create your node.js project structure.

Installation

Install my-project with npm

  • npx nano-app my-project
  • cd my-project

It will create a directory called my-project inside the current folder. Inside that directory, it will generate the initial project structure and install the transitive dependencies:

my-project

├── package.json ├── package-lock.json ├── .prettierrc ├── .prettierignore ├── .gitignore ├── .env.production ├── .env.development ├── .babelrc ├── node_modules └── src ├── config ├── cloudinary.js ├── database.js ├── passport.js └── sendEmail.js ├── controllers └── authController.js ├── middlewares ├── authorizedUser.js └── google.js ├── models ├── auditLogs.js ├── userRoleMaps.js ├── users.js └── validations.js ├── routes ├── authRouter.js └── router.js ├── utils ├── errors └── globalErrorHandler.js ├── responses ├── sendData.js ├── sendMessage.js └── sendResponse.js ├── templates ├── forgotMail.js └── signUpMail.js ├── createJWT.js └── createMFA.js ├── app.js └── server.js


Features

  • ES6+ configuration (Babel)
  • Better error handling
  • Clean code structure
  • Google authentication (Passport strategy)
  • Email authentication with OTP verification (Sent mail using Google Gmail)
  • Implement MFA using speakeasy
  • MFA QR code images stored in Cloudinary
  • Forgot Password via mail
  • Modern data validation using Joi
  • Forgot password mail template
  • OTP validation mail template


Environment Variables

To run this project, you will need to add the following environment variables to your .env.development (Development mode) or .env.production (Production mode) file

  • DB_NAME
  • DB_USER
  • DB_PASS
  • HOST
  • SCHEMA

If you want to store MFA QR code at Cloudinary

  • CLOUD_NAME
  • CLOUD_KEY
  • CLOUD_SECRET

If you want to use google login Google console

  • GOOGLE_CLIENT_ID
  • GOOGLE_CLIENT_SECRET
  • GOOGLE_CALLBACK_URL

If you want to use email verification

  • EMAIL
  • EMAIL_PASS (App password)


API Reference



Run Locally

  • Install dependencies
    • npm install
  • Start the server
    • npm run dev

Deployment

To deploy this project run

  • npm run start

Usage/Examples

  • npx nano-app api

Part 1

Part 2

Part 3

Tech Stack

Server: Node, Express

Feedback

If you have any feedback, please reach out to us at morolswediu@gmail.com

Support

For support, email morolswediu@gmail.com

If you like, Give a star ⭐

Post a Comment

0 Comments