{"id":16295536,"url":"https://github.com/santoshshinde2012/node-ts-sequelize-pg-boilerplate","last_synced_at":"2025-03-20T04:31:03.381Z","repository":{"id":226647287,"uuid":"768793297","full_name":"santoshshinde2012/node-ts-sequelize-pg-boilerplate","owner":"santoshshinde2012","description":"NodeSeQ - Node Typescript Sequelize PostgreSQL Boilerplate","archived":false,"fork":false,"pushed_at":"2025-02-27T02:24:09.000Z","size":746,"stargazers_count":5,"open_issues_count":9,"forks_count":2,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-02-27T03:27:04.180Z","etag":null,"topics":["docker","docker-compose","github-actions","jest","nodejs","nodeseq","postgresql","sequelize","snyk","sonarqube","supertest","typescript"],"latest_commit_sha":null,"homepage":"https://blog.santoshshinde.com/how-to-use-sequelize-with-typescript-node-js-and-postgresql-c6ff58a3af76","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/santoshshinde2012.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":["santoshshinde2012"],"patreon":null,"open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"lfx_crowdfunding":null,"custom":null}},"created_at":"2024-03-07T18:36:44.000Z","updated_at":"2024-10-13T18:30:21.000Z","dependencies_parsed_at":"2025-02-20T00:29:50.443Z","dependency_job_id":"4a9b6814-ade2-4036-9a78-d11bc6bb4514","html_url":"https://github.com/santoshshinde2012/node-ts-sequelize-pg-boilerplate","commit_stats":null,"previous_names":["santoshshinde2012/node-ts-sequelize-pg-boilerplate"],"tags_count":2,"template":true,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/santoshshinde2012%2Fnode-ts-sequelize-pg-boilerplate","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/santoshshinde2012%2Fnode-ts-sequelize-pg-boilerplate/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/santoshshinde2012%2Fnode-ts-sequelize-pg-boilerplate/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/santoshshinde2012%2Fnode-ts-sequelize-pg-boilerplate/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/santoshshinde2012","download_url":"https://codeload.github.com/santoshshinde2012/node-ts-sequelize-pg-boilerplate/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244051817,"owners_count":20389972,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["docker","docker-compose","github-actions","jest","nodejs","nodeseq","postgresql","sequelize","snyk","sonarqube","supertest","typescript"],"created_at":"2024-10-10T20:19:02.814Z","updated_at":"2025-03-20T04:31:02.862Z","avatar_url":"https://github.com/santoshshinde2012.png","language":"TypeScript","funding_links":["https://github.com/sponsors/santoshshinde2012","https://www.buymeacoffee.com/santoshshin"],"categories":[],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003e\u003ca href=\"https://blog.santoshshinde.com/how-to-use-sequelize-with-typescript-node-js-and-postgresql-c6ff58a3af76\" target=”_blank”\u003eNodeSeQ\u003c/a\u003e\u003c/h1\u003e\n\n\u003cp align=\"center\"\u003eNode boilerplate with secure code analysis and quality checks\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://sonarcloud.io/project/overview?id=santoshshinde2012_node-ts-sequelize-pg-boilerplate\"\u003e\n     \u003cimg src=\"https://sonarcloud.io/api/project_badges/measure?project=santoshshinde2012_node-ts-sequelize-pg-boilerplate\u0026metric=alert_status\" alt=\"Quality Gate Status\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://github.com/santoshshinde2012/node-ts-sequelize-pg-boilerplate/actions/workflows/ci.yml\" target=”_blank”\u003e\n     \u003cimg src=\"https://github.com/santoshshinde2012/node-ts-sequelize-pg-boilerplate/actions/workflows/ci.yml/badge.svg?branch=main\" alt=\"Github action workflow status\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://codeclimate.com/github/santoshshinde2012/node-ts-sequelize-pg-boilerplate/maintainability\" target=”_blank”\u003e\n    \u003cimg src=\"https://api.codeclimate.com/v1/badges/ad13a11cffa2421a8220/maintainability\" alt=\"maintainability\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://codeclimate.com/github/santoshshinde2012/node-ts-sequelize-pg-boilerplate/test_coverage\" target=”_blank”\u003e\n    \u003cimg src=\"https://api.codeclimate.com/v1/badges/ad13a11cffa2421a8220/test_coverage\" alt=\"test_coverage\" /\u003e\n  \u003c/a\u003e\n   \u003ca href=\"https://snyk.io/test/github/santoshshinde2012/node-ts-sequelize-pg-boilerplate\" target=”_blank”\u003e\n     \u003cimg src=\"https://snyk.io/test/github/santoshshinde2012/node-ts-sequelize-pg-boilerplate/badge.svg?style=flat-square\" alt=\"\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://libraries.io/github/santoshshinde2012/node-ts-sequelize-pg-boilerplate\" target=”_blank”\u003e\n     \u003cimg src=\"https://img.shields.io/librariesio/github/santoshshinde2012/node-ts-sequelize-pg-boilerplate\" alt=\"\" /\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n![Introductions](wiki/assets/introductions.png)\n\n## Common Features\n\n- Quick start\n    - Simple scaffolding based on Typescript syntax\n    - Easy global environment configuration and error handling\n    - Flexible for adding new features\n\n- Continuous Integration\n    - Added Github Action Workflow\n        - [sonarcloud.io](https://sonarcloud.io/summary/new_code?id=santoshshinde2012_node-ts-sequelize-pg-boilerplate)\n        - [snyk.io](https://app.snyk.io/org/santoshshinde2012/project/ab175098-8886-4b72-bb5f-dce28d098fc0)\n        - [CodeQL](https://codeql.github.com/)\n        - [njsscan](https://opensecurity.in/#engineering) is a static application testing (SAST) tool that can find insecure code patterns in your node.js applications\n        - [Codeclimate](https://codeclimate.com/)\n          - \u003ca href=\"https://codeclimate.com/github/santoshshinde2012/node-ts-sequelize-pg-boilerplate/maintainability\"\u003e\u003cimg src=\"https://api.codeclimate.com/v1/badges/ad13a11cffa2421a8220/maintainability\" /\u003e\u003c/a\u003e\n          - \u003ca href=\"https://codeclimate.com/github/santoshshinde2012/node-ts-sequelize-pg-boilerplate/test_coverage\"\u003e\u003cimg src=\"https://api.codeclimate.com/v1/badges/ad13a11cffa2421a8220/test_coverage\" /\u003e\u003c/a\u003e\n\n- Documentation Standards\n    - Swagger documentation support and Postman collections\n    - Clear instructions in the readme file\n\n- Test Coverage Maintenance\n    - Comprehensive test coverage with eslint, prettier, and husky integration\n\n- Production Ready Setup \n    - Followed best practices for security and efficiency\n    - Integrated Winston Logger and included only necessary npm modules\n  \n\n## Core NPM Module\n\n- [x] `express`, `@types/express`\n- [x] `@types/node`\n- [x] `typescript`\n- [x] `dotenv`\n- [x] `cors`\n- [x] `helmet`\n- [x] `http-status-codes`\n- [x] `winston`\n- [x] `sequelize`, `pg`, `pg-hstore`\n\n## Start The application in Development Mode\n\n- Clone the Application `git clone https://github.com/santoshshinde2012/node-ts-sequelize-pg-boilerplate.git`\n- Install the dependencies `npm install`\n- Start the application `npm run dev`\n- To run the test cases `npm run test`\n\n### Pre requisite \n\n- To run this app on a local machine, make sure the PostgreSQL database is set up and running. If not, you can use Docker and execute the following command to run the database:\n    `npm run db:up`\n\n## Start The application in Production Mode\n\n- Install the dependencies `npm install`\n- Create the build `npm run build`\n- Start the application `npm run start`\n- Before starting make sure to update your `.env` values for your refrence just check `.env.example`\n\n\n## Project Structure\n\n![Project Structure](https://i.ibb.co/Cvff1zN/boilerplate.png)\n\n\n| Name                              | Description |\n| --------------------------------- | ----------- |\n| **docker/**                       | Docker related config for postgresql db     |\n| **wiki/**                         | You can add project documentation and insructions file here |\n| **src/**                          | Source files |\n| **src/abstractions**              | Abstarct classes and Interfaces  |\n| **src/components**                | REST API Components \u0026 Controllers  |\n| **src/database**                  | Database config and models  |\n| **src/lib**                       | Reusable utilises and library source code like a logger|\n| **src/middleware/**               | Express Middlewares like error handler feature |\n| **build/**                        | Compiled source files will be placed here |\n| **tests/**                        | Test cases will be placed here |\n| **tests/helpers/**                | Helpers for test cases will be placed here  |\n| **tests/unit-tests/**             | Unit Test cases will be placed here  |\n| **tests/integration-tests/**      | API routes (Integration) Test cases will be placed here|\n\n\n## Postman Collections\n\nThe [Postman Collections](https://elements.getpostman.com/redirect?entityId=10883620-12e0cb07-b34f-4110-9b0d-00bad75fdde5\u0026entityType=collection) is available in public workspace.\n\n## Swagger API Documentation\n\nThe swagger documentation is available at the following url `${host}/docs`:  \n\n[http://localhost:8080/docs](http://localhost:8080/docs)\n\n## Wiki \n\n- [NodeSeQ](https://github.com/santoshshinde2012/node-ts-sequelize-pg-boilerplate/wiki)\n  \n\n## Refrences \n- [How to Use Sequelize with TypeScript, Node.js, and PostgreSQL](https://blog.santoshshinde.com/how-to-use-sequelize-with-typescript-node-js-and-postgresql-c6ff58a3af76)\n- [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)\n- [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)\n- [Testing with Jest in TypeScript and Node.js for Beginners](https://blog.santoshshinde.com/beginners-guide-to-testing-jest-with-node-typescript-1f46a1b87dad)\n- [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)\n- [Visualization of Node.js Event Emitter](https://blog.santoshshinde.com/visualization-of-node-js-event-emitter-4f7c9fe3a477)\n- [NodeSeQ Demo](https://youtu.be/qyI0E_yYQik?si=KNFfqB1h7_ZlqAi0)  \n\n\n\u003chr/\u003e\n\n### Connect with me on\n\u003cdiv id=\"badges\"\u003e\n  \u003ca href=\"https://twitter.com/shindesan2012\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/shindesan2012-black?style=for-the-badge\u0026logo=twitter\u0026logoColor=white\" alt=\"Twitter Badge\"/\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://www.linkedin.com/in/shindesantosh/\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/shindesantosh-blue?style=for-the-badge\u0026logo=linkedin\u0026logoColor=white\" alt=\"LinkedIn Badge\"/\u003e\n  \u003c/a\u003e\n   \u003ca href=\"https://blog.santoshshinde.com/\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/Blog-black?style=for-the-badge\u0026logo=medium\u0026logoColor=white\" alt=\"Medium Badge\"/\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://www.buymeacoffee.com/santoshshin\" target=\"_blank\"\u003e\n   \u003cimg src=\"https://img.shields.io/badge/buymeacoffee-black?style=for-the-badge\u0026logo=buymeacoffee\u0026logoColor=white\" alt=\"Buy Me A Coffee\"/\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsantoshshinde2012%2Fnode-ts-sequelize-pg-boilerplate","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsantoshshinde2012%2Fnode-ts-sequelize-pg-boilerplate","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsantoshshinde2012%2Fnode-ts-sequelize-pg-boilerplate/lists"}