{"id":14967393,"url":"https://github.com/vladinho10/node-server-template","last_synced_at":"2025-04-05T07:02:30.995Z","repository":{"id":38748705,"uuid":"225856271","full_name":"Vladinho10/node-server-template","owner":"Vladinho10","description":"This is Node.js server tidy template / boilerplate  with Express (with asyncified handlers, custom error handler) framework and MongoDb. The server use ES6 and above. On different branches you can see different techniques' and technologies' usage, such as Kafka, nodemailer, file download... You also can find postman collections. ","archived":false,"fork":false,"pushed_at":"2025-03-19T09:42:19.000Z","size":1696,"stargazers_count":133,"open_issues_count":2,"forks_count":17,"subscribers_count":8,"default_branch":"master","last_synced_at":"2025-04-05T07:02:24.771Z","etag":null,"topics":["architecture-guide","boilerplate","eslint","express","javascript","kafka","mocha","mongodb","mongoose","nodejs","nodemailer","postgresql","postman","restful-api","sequelize","socket-io","style-guide","websocket","yarn"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Vladinho10.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","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}},"created_at":"2019-12-04T11:57:24.000Z","updated_at":"2025-03-19T09:41:28.000Z","dependencies_parsed_at":"2023-02-18T04:45:55.660Z","dependency_job_id":"ad172aa8-7278-4eee-b42f-d183187519ce","html_url":"https://github.com/Vladinho10/node-server-template","commit_stats":{"total_commits":87,"total_committers":4,"mean_commits":21.75,"dds":0.4367816091954023,"last_synced_commit":"6d0e126662e87372a94fb444dbbeb5e65a9cbfcf"},"previous_names":[],"tags_count":1,"template":true,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Vladinho10%2Fnode-server-template","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Vladinho10%2Fnode-server-template/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Vladinho10%2Fnode-server-template/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Vladinho10%2Fnode-server-template/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Vladinho10","download_url":"https://codeload.github.com/Vladinho10/node-server-template/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247299829,"owners_count":20916190,"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":["architecture-guide","boilerplate","eslint","express","javascript","kafka","mocha","mongodb","mongoose","nodejs","nodemailer","postgresql","postman","restful-api","sequelize","socket-io","style-guide","websocket","yarn"],"created_at":"2024-09-24T13:37:59.558Z","updated_at":"2025-04-05T07:02:30.978Z","avatar_url":"https://github.com/Vladinho10.png","language":"JavaScript","readme":"# Node.js server template\n\n## Table of contents\n* [General info](#general-info)\n* [Technologies](#technologies)\n* [Setup](#setup)\n* [Style guide](#style-guide)\n* [Architecture guide](#architecture-guide)\n\n### General info\n17.02.25. Updates. Added a simple example with RabbitMQ messaging broker. Before testing it you should have installed [RabbitMQ](https://www.rabbitmq.com/tutorials). For testing run the following commands\\\n`yarn run rabbitmq:send`\\\nThen open a new terminal tab, and there\\\n`yarn run rabbitmq:receive`\\\nYou can see that the data is being sent through TestQueue in send.ts file and it is being received in receive.ts file immediately.\\\n10.02.25. Updates. Migrate to Eslint v9 \\\n25.09.22. Updates. We created a new version of the template. It is already written in Typescript ! \\\n12.03.21 Updates. Great news ! :fire: :heart: \\\nIn this template every time we manually create 7 files for one CRUD logic. Now you can create your CRUD new files at once just using `rest-resource-file-generator` npm module made by me :tophat: \\\nHere is the link of instructions in npm [rest-resource-file-generator](https://www.npmjs.com/package/rest-resource-file-generator) \\\nThis is a simple Node.js server application boilerplate with CRUD operations simple logic. It provides REST APIs. \nBefore using it, please ensure that you've already installed the following programs\\\n[Git](https://git-scm.com/book/en/v2/Getting-Started-Installing-Git) as version control,\\\n[Node.js](https://nodejs.org/en/) as server program,\\\n[Yarn](https://yarnpkg.com/lang/en/docs/install/#mac-stable) as Node.js package manager,\\\n[MongoDb](https://docs.mongodb.com/manual/installation/) as database program.\\\nIf you haven't, these are their links for installing.\n\n### Technologies\nProgram/lib | version | command for checking\\\nGit | 2.39.5 | `git --version`\\\nNode.js | v20.18.1 | `node -v` \\\nExpress | ^4.21.2 | see in app package.json\\\nMongoDB | v7.0.2 | `mongod --version` or `mongosh`, then `db.version()` (on MacOS)\\\nMongoose | ^8.10.0 | see in this app package.json\\\nRabbitMQ | 4.0.6 | `rabbitmqctl version` (on MacOS)\\\nMocha | ^11.1.0 | see in this app package.json\\\nEslint | ^9.20.0 | see in this app package.json\\\nYarn | 1.22.22 | `yarn -v`\n\n### Setup\n1. Clone this repository\\\n`git clone https://github.com/Vladinho10/node-server-template.git` \n2. Fill in your git credentials (if required)\n3. Enter the downloaded directory.\\\n`cd node-server-template`\n4. Create your .env files like `.env` file in envs directory. \n\nfor npm\n* install packages\\\n   `npm i` \n* run server\\\n   `npm run start`\n   or \\\n   `npm start`\n* if you want your server stay always running\\\n`npm run nodemon`\n\n\nfor yarn\n* install packages\\\n `yarn`\n* run server\\\n `yarn run start`\n or\\\n  `yarn start`\n* if you want your server stay always running\\\n`yarn run nodemon`\n\n\n## Style guide \nWe suggest our ESLint configs which are inspired by AirBnB configs. We are open to any suggestions from contributors if they are inline with our philosophy. \\\nThese ESLint configs are written and tuned for modern JavaScript development. So we don’t support old, outdated JavaScript methods, e.g. \nobj = new Object() this construct because we can just use const obj = {};\\\n[more](https://github.com/Vladinho10/node-server-template/blob/master/guides/style-guide.md)\n\n## Architecture guide\n\nThe software architecture (SA) is one of the most important parts of the software development. It helps developers to easily integrate into the existing codebase.\nThe architecture describes a set of aspects and decisions of the software. \\\n[more](https://github.com/Vladinho10/node-server-template/blob/master/guides/architecture-guide.md)\n  \u003cimg src=\"./files/media/app-architecture.png\"  alt=\"app-architecture\"/\u003e\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvladinho10%2Fnode-server-template","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvladinho10%2Fnode-server-template","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvladinho10%2Fnode-server-template/lists"}