1.7.3 • Published 9 months ago

@chapter247ind/node-boilerplate v1.7.3

Weekly downloads
-
License
ISC
Repository
-
Last release
9 months ago

node-boilerplate

A boilerplate/starter project for quickly building RESTful APIs using Node.js, Express, and Mongoose. It includes essential features like standard folder structure, middleware setup, authentication, environment management, unit and integration testing and api docs enabling quick and essential configurations to save time and maintain consistency.

How to setup boilerplate

Installation by command

npx @chapter247ind/node-boilerplate setup {app-name}

or

npx @chapter247ind/node-boilerplate setup <app-name> --module <module-names-seprated-by-comma> 

Manual Installation

git clone --depth 1 https://github.com/Chapter247IND/node-boilerplate.git
cd node-boilerplate
npx rimraf ./.git
npm install

Run app

cp .env.example .env
npm run dev

View Swagger UI

Postman Collection

Folder Structure

The folder structure of the boilerplate :

src/
├── config/                 # Configuration files
├── constants/              # Application-wide constants
├── enums/                  # Enums used throughout the app (e.g., user roles)
├── middlewares/            # Global middlewares
├── models/                 # Database models
├── controllers/            # Controllers handling user-related business logic
├── middlewares/            # Middlewares specific routes (e.g., auth)
├── models/                 # All-related data models
├── services/               # Services for operations, encapsulating complex logic
├── validations/            # Validation schemas for all-related operations
├── routes/                 # Global route definitions
├── types/                  # Type definitions
└── utils/                  # Utility functions, with module handlers

Other useful commands

List of modules commmand

npx @chapter247ind/node-boilerplate module-list

Add the existing module code in your project

npx @chapter247ind/node-boilerplate add {module-name} 

Help command

npx @chapter247ind/node-boilerplate help 

Each command generates specific files related to the module resource

Generate Route

npx @chapter247ind/node-boilerplate make:route <file-name>

Generate Controller

npx @chapter247ind/node-boilerplate make:controller <file-name>

Generate Service

npx @chapter247ind/node-boilerplate make:service <file-name>

Generate Validation

npx @chapter247ind/node-boilerplate make:validation <file-name>

Generate Constants

npx @chapter247ind/node-boilerplate make:model <file-name>

Test cases

  • Unit Tests: Isolated component tests with mocked dependencies, focusing on functionalities like user management and service logic.
  • Integration Tests: Tests interactions between components, including real database operations and API endpoints, ensuring proper behavior for features like authentication and token issuance.

HTTP Status Codes

A quick reference for commonly used HTTP status codes.

  • 400 - Bad Request: The server cannot process the request due to invalid input.
  • 401 - Unauthorized: Authentication required or failed.
  • 403 - Forbidden: Request is valid, but access is denied.
  • 404 - Not Found: The requested resource does not exist.
  • 500 - Internal Server Error: The server encountered an unexpected issue.

Biome for code formatting and linting

Biome is an all-in-one code formatter, linter, and analyzer designed to maintain consistent coding standards and optimize code quality.

1.7.3

9 months ago

1.7.2

9 months ago

1.7.1

9 months ago

1.6.4

10 months ago

1.6.3

10 months ago

1.6.2

10 months ago

1.6.1

11 months ago

1.6.0

11 months ago

1.5.6

11 months ago

1.5.5

11 months ago

1.5.4

11 months ago

1.5.3

11 months ago

1.5.2

11 months ago

1.5.1

11 months ago

1.5.0

11 months ago

1.4.6

11 months ago

1.4.5

11 months ago

1.4.4

11 months ago

1.4.3

11 months ago

1.4.2

11 months ago

1.4.1

11 months ago

1.4.0

11 months ago

1.3.6

11 months ago

1.3.5

11 months ago

1.3.4

11 months ago

1.3.3

11 months ago

1.3.2

11 months ago

1.3.1

11 months ago

1.3.0

11 months ago

1.2.6

11 months ago

1.2.5

11 months ago

1.2.4

11 months ago

1.2.3

11 months ago

1.2.2

11 months ago

1.2.1

11 months ago

1.2.0

11 months ago

1.1.7

11 months ago

1.1.6

11 months ago

1.1.5

11 months ago

1.1.4

11 months ago

1.1.3

11 months ago

1.1.2

11 months ago

1.1.1

11 months ago

1.1.0

11 months ago

1.0.8

11 months ago

1.0.7

11 months ago

1.0.6

11 months ago

1.0.5

11 months ago

1.0.4

11 months ago

1.0.3

11 months ago

1.0.2

11 months ago

1.0.1

11 months ago

1.0.0

12 months ago