Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/santoshshinde2012/node-boilerplate
Node Typescript Boilerplate for Microservices. Skeleton for Node.js Apps written in TypeScript (with Setup Instructions for ESLint, Prettier, and Husky)
https://github.com/santoshshinde2012/node-boilerplate
backend backend-api boilerplate clean-architecture eslint express husky node node-js node-typescript node-typescript-boilerplate nodejs prettier skeleton starter-kit starter-template typescript typescript-boilerplate
Last synced: about 4 hours ago
JSON representation
Node Typescript Boilerplate for Microservices. Skeleton for Node.js Apps written in TypeScript (with Setup Instructions for ESLint, Prettier, and Husky)
- Host: GitHub
- URL: https://github.com/santoshshinde2012/node-boilerplate
- Owner: santoshshinde2012
- License: apache-2.0
- Created: 2021-03-08T10:40:31.000Z (almost 4 years ago)
- Default Branch: master
- Last Pushed: 2024-10-22T06:15:01.000Z (3 months ago)
- Last Synced: 2024-10-29T17:27:46.151Z (3 months ago)
- Topics: backend, backend-api, boilerplate, clean-architecture, eslint, express, husky, node, node-js, node-typescript, node-typescript-boilerplate, nodejs, prettier, skeleton, starter-kit, starter-template, typescript, typescript-boilerplate
- Language: TypeScript
- Homepage: https://blog.santoshshinde.com/skeleton-for-node-js-apps-written-in-typescript-444fa1695b30
- Size: 14.8 MB
- Stars: 403
- Watchers: 7
- Forks: 83
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- Funding: .github/FUNDING.yml
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
- Security: SECURITY.md
Awesome Lists containing this project
README
Node-Typescript-Boilerplate
![Introductions](https://i.ibb.co/VHTZKB6/introductions.png)
## Purpose
Our main purpose with this Skeleton is to start server application with node js and typescript.
Try it!! I am happy to hear your feedback or any kind of new features.
## Common Features
## Common Features
- Quick start
- Simple scaffolding based on Typescript syntax
- Easy global environment configuration and error handling
- Flexible for adding new features- Contiuous Integration
- Added Github Action Workflow
- [sonarcloud.io](https://sonarcloud.io/summary/new_code?id=santoshshinde2012_node-boilerplate)
- [snyk.io](https://app.snyk.io/org/santoshshinde2012/project/c040efe4-a06a-451d-9b01-be0be90ee42c)
- [CodeQL](https://codeql.github.com/)
- [njsscan](https://opensecurity.in/#engineering) is a static application testing (SAST) tool that can find insecure code patterns in your node.js applications
- [Codeclimate](https://codeclimate.com/)
-
-- Documentation Standards
- Swagger documentation support and Postman collections
- Clear instructions in the readme file- Test Coverage Maintenance
- Comprehensive test coverage with eslint, prettier, and husky integration- Production Ready Setup
- Followed best practices for security and efficiency
- Integrated Winston Logger and included only necessary npm modules
## Core NPM Module- [x] `express`, `@types/express`
- [x] `@types/node`
- [x] `typescript`
- [x] `dotenv`
- [x] `cors`
- [x] `helmet`
- [x] `http-status-codes`
- [x] `winston`# [Start the application](https://blog.santoshshinde.com/skeleton-for-node-js-apps-written-in-typescript-444fa1695b30)
![Workflow](https://github.com/santoshshinde2012/node-boilerplate/blob/master/wiki/environment.jpg?raw=true)
## Start The application in Development Mode
- Clone the Application `git clone https://github.com/santoshshinde2012/node-boilerplate.git`
- Install the dependencies `npm install`
- Start the application `npm run dev`## Start The application in Production Mode
- Install the dependencies `npm install`
- Create the build `npm run build`
- Start the application `npm run start`
- Before starting make sure to update your `.env` values for your refrence just check `.env.example`## Project Structure
| Name | Description |
| ---------------------------- | ----------------------------------------------------------- |
| **wiki/** | You can add project documentation and insructions file here |
| **src/** | Source files |
| **src/abstractions** | Abstarct classes and Interfaces |
| **src/components** | REST API Components & Controllers |
| **src/lib** | Reusable utilises and library source code like a logger |
| **src/middleware/** | Express Middlewares like error handler feature |
| **build/** | Compiled source files will be placed here |
| **tests/** | Test cases will be placed here |
| **tests/helpers/** | Helpers for test cases will be placed here |
| **tests/unit-tests/** | Unit Test cases will be placed here |
| **tests/integration-tests/** | API routes (Integration) Test cases will be placed here |## Workflow
![Workflow](https://github.com/santoshshinde2012/node-boilerplate/blob/master/wiki/boilerplate-components.jpg?raw=true)
## Encryption
Set the `APPLY_ENCRYPTION` environment variable to `true` to enable encryption.
## Swagger API Documentation
The swagger documentation is available at the following url `${host}/docs`:
[http://localhost:8082/docs](http://localhost:8082/docs)
## Default System Health Status API- `${host}/api/system/info` - Return the system information in response
- `${host}/system/time` - Return the current time in response
- `${host}/system/usage` - Return the process and system memory usage in response
- `${host}/system/process` - Return the process details in response
- `${host}/system/error` - Return the error generated object in response![Swagger API Documentation](https://github.com/santoshshinde2012/node-boilerplate/blob/master/wiki/swagger-api-documentation.jpg?raw=true)
### [Postman Collections](wiki/postman/node-boilerplate.postman_collection.json)
## Refrences
- [Skeleton for Node.js Apps written in TypeScript](https://javascript.plainenglish.io/skeleton-for-node-js-apps-written-in-typescript-444fa1695b30)
- [Setup Eslint Prettier and Husky in Node JS Typescript Project](https://gist.github.com/santoshshinde2012/e1433327e5f7a58f98fe3e6651c4d5de)## Notes
### 1. Why is my git pre-commit hook not executable by default?
- Because files are not executable by default; they must be set to be executable.
```
chmod ug+x .husky/*
chmod ug+x .git/hooks/*
```### 2. [Production Best Practices: Security](https://expressjs.com/en/advanced/best-practice-security.html)
- Don’t use deprecated or vulnerable versions of Express
- Use TLS
- Use Helmet
- Use cookies securely
- Prevent brute-force attacks against authorization
- Ensure your dependencies are secure
- Avoid other known vulnerabilities
- Additional considerations### 3. Tutorials
- [Skeleton for Node.js Apps written in TypeScript (with Setup Instructions for ESLint, Prettier, and Husky)](https://blog.santoshshinde.com/skeleton-for-node-js-apps-written-in-typescript-444fa1695b30)
- [Global Error and Response Handler in Node JS with Express and Typescript](https://blog.santoshshinde.com/global-error-and-response-handler-in-node-js-with-express-and-typescript-913ec06d74b3)
- [Testing with Jest in TypeScript and Node.js for Beginners](https://blog.santoshshinde.com/beginners-guide-to-testing-jest-with-node-typescript-1f46a1b87dad)
- [Static Code Analysis for Node.js and TypeScript Project using SonarQube](https://blog.santoshshinde.com/static-code-analysis-for-node-js-and-typescript-project-using-sonarqube-8f90799add06)
- [Visualization of Node.js Event Emitter](https://blog.santoshshinde.com/visualization-of-node-js-event-emitter-4f7c9fe3a477)
### Connect with me on