Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

create-nodeapi-backend

jjeett0007197MIT2.0.4TypeScript support: included

A powerful Node.js backend boilerplate with Express, MongoDB, Firebase, JWT auth, Nodemailer, cron jobs, input validation (Joi), and serverless support for Vercel. Scaffold a full-featured API backend in seconds.

node, backend, express, boilerplate, mongodb, firebase, jwt, create, cli, vercel, nodemailer, cron, joi, input-validation, serverless, api, scaffold, template, generator, scaffold-generator, scaffold-template, scaffold-cli, scaffold-node, scaffold-express, google-oauth

readme

create-nodeapi-backend

A simple boilerplate for quickly setting up a Node.js API with Express, MongoDB, JWT authentication, and more. This tool will help you generate a fully functional backend with minimal configuration.

Features

  • Express.js: RESTful API with Express for handling routes and middleware.
  • MongoDB: Integration with MongoDB using Mongoose for database management.
  • JWT Authentication: User authentication using JSON Web Tokens (JWT).
  • Nodemailer: Send emails via SMTP with Nodemailer.
  • Firebase Integration: Firebase setup for cloud functions and storage.
  • Node-cron: Task scheduling with cron jobs.
  • Google OAuth: Sign in with Google using OAuth 2.0.
  • Serverless Support: Preconfigured for deployment on Vercel or any serverless platform.
  • Validation: Using Joi for input validation.

How to Install

  1. Create a New Project:

    To use this boilerplate, simply run the following command:

    npx create-nodeapi-backend@latest

    This will automatically generate the project in a new directory and set up all necessary dependencies for you.

  2. Navigate to the Project Folder:

    Once the project has been created, navigate to the newly created folder:

    cd your-project-folder

    ✅ Do not run npm install — dependencies are already installed during setup.

  3. Setup Environment

    Before running the application, make sure to set up your environment variables.

    Copy the .env.sample file to .env:

    cp .env.sample .env

    Open the .env file and update the necessary fields with your credentials.

Example .env:

    JWT_SECRET=1111111111111111scscsdcsdc
    JWT_ACCESS_EXPIRATION_MINUTES=4200
    JWT_REFRESH_EXPIRATION_MINUTES=800
    NODE_ENV=dev

    PORT=3010
    SALT=10

    MONGODB_USERNAME=username
    MONGODB_PASSWORD=password
    MONGODB_DATABASE=dbstore
    MONGODB_URL=databaseurl

    ORIGIN=

    SMTP_SERVICE=gmail
    SMTP_MAIL=Mmail.com
    SMTP_PASSWORD=password
    EMAIL_FROM=me.com

    API_KEY=a
    AUTH_DOMAIN=a
    DATABASE_URL=a
    PROJECT_ID=a
    STORAGE_BUCKET=a
    MESSAGING_SENDER_ID=a
    APP_ID=a
    MEASUREMENT_ID=a

    SERVER_ORIGIN=localhost:3010
    FRONTEND_ORIGIN=localhost:3000

    GOOGLE_CLIENT_ID=your_client_id.apps.googleusercontent.com
    GOOGLE_CLIENT_SECRET=your_client_secret
    GOOGLE_CLIENT_URI=/v1/googleOauth/google/callback

How to Run in Development

Start the Development Server:

For local development, you can start the server using nodemon for automatic restarts:

npm run dev

Once the server is running, you can access your API at:

http://localhost:3010

or any of your specified open port

🔐 Google OAuth Endpoint

Use the following route to initiate Google OAuth login:

http://localhost:3010/v1/googleOauth/google

This will redirect the user to sign in via their Google account.

How to Run in Production

  1. Build the Application:

    npm run build
  2. Start the Production Server:

    npm start

    Ensure your .env values are configured for the production environment.


🚀 Deploy to Vercel (Optional)

To deploy to Vercel, simply:

  1. Push your project to a GitHub repository.
  2. Go to Vercel and connect your GitHub account.
  3. Select the repository and follow the prompts.

Vercel will automatically detect your Node.js setup and deploy your project with minimal configuration.

Or deploy via CLI:

vercel --prod

License

MIT License. See the LICENSE file for details.