{"id":15101912,"url":"https://github.com/arthurpedroti/node-backend-template","last_synced_at":"2025-10-22T22:31:12.597Z","repository":{"id":40766940,"uuid":"267587990","full_name":"ArthurPedroti/node-backend-template","owner":"ArthurPedroti","description":"A template for NodeJS backend projects","archived":false,"fork":false,"pushed_at":"2023-01-07T18:37:28.000Z","size":2878,"stargazers_count":31,"open_issues_count":21,"forks_count":2,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-01-30T15:26:50.604Z","etag":null,"topics":["aws-s3","aws-ses","cache","commitlint","eslint","express","handlebars","jest","jwt","login-system","mongodb","multer","nodemailer","notifications","postgres","prettier","rate-limiter-flexible","redis","typeorm","typescript"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","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/ArthurPedroti.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-05-28T12:46:35.000Z","updated_at":"2025-01-19T02:12:34.000Z","dependencies_parsed_at":"2023-02-07T21:01:08.844Z","dependency_job_id":null,"html_url":"https://github.com/ArthurPedroti/node-backend-template","commit_stats":null,"previous_names":[],"tags_count":0,"template":true,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ArthurPedroti%2Fnode-backend-template","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ArthurPedroti%2Fnode-backend-template/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ArthurPedroti%2Fnode-backend-template/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ArthurPedroti%2Fnode-backend-template/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ArthurPedroti","download_url":"https://codeload.github.com/ArthurPedroti/node-backend-template/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":237743729,"owners_count":19359287,"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":["aws-s3","aws-ses","cache","commitlint","eslint","express","handlebars","jest","jwt","login-system","mongodb","multer","nodemailer","notifications","postgres","prettier","rate-limiter-flexible","redis","typeorm","typescript"],"created_at":"2024-09-25T18:42:56.760Z","updated_at":"2025-10-22T22:31:12.186Z","avatar_url":"https://github.com/ArthurPedroti.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003eWelcome to my Backend Template 👋\u003c/h1\u003e\n\n\u003ch3 align=\"center\" \u003e\n  A template for NodeJS backend projects\n\u003c/h3\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg alt=\"Languagues\" src=\"https://img.shields.io/github/languages/count/ArthurPedroti/node-backend-template\"\u003e\n  \u003cimg alt=\"Top Languague\" src=\"https://img.shields.io/github/languages/top/ArthurPedroti/node-backend-template\"\u003e\n  \u003cimg alt=\"Repository size\" src=\"https://img.shields.io/github/repo-size/ArthurPedroti/node-backend-template\"\u003e\n  \u003ca href=\"https://github.com/ArthurPedroti/node-backend-template/commits/master\"\u003e\n    \u003cimg alt=\"Last commit date\" src=\"https://img.shields.io/github/last-commit/ArthurPedroti/node-backend-template\"\u003e\n  \u003c/a\u003e\n   \u003ca href=\"https://github.com/ArthurPedroti/node-backend-template/issues\"\u003e\n    \u003cimg alt=\"Repository issues\" src=\"https://img.shields.io/github/issues/ArthurPedroti/node-backend-template\"\u003e\n  \u003c/a\u003e\n  \u003cimg alt=\"License\" src=\"https://img.shields.io/github/license/ArthurPedroti/node-backend-template\"\u003e\n\u003c/p\u003e\n\u003cp align=\"center\"\u003e\n\n  \u003ca href=\"https://github.com/ArthurPedroti\" target=\"_blank\"\u003e\n    \u003cimg alt=\"Made by Arthur Pedroti\" src=\"https://img.shields.io/badge/made%20by-Arthur_Pedroti-informational\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://github.com/ArthurPedroti\" target=\"_blank\" \u003e\n    \u003cimg alt=\"Github - Arthur Pedroti\" src=\"https://img.shields.io/badge/Github--%23F8952D?style=social\u0026logo=github\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://www.linkedin.com/in/arthurpedroti/\" target=\"_blank\" \u003e\n    \u003cimg alt=\"Linkedin - Arthur Pedroti\" src=\"https://img.shields.io/badge/Linkedin--%23F8952D?style=social\u0026logo=linkedin\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"mailto:arthurpedroti@gmail.com\" target=\"_blank\" \u003e\n    \u003cimg alt=\"Email - Arthur Pedroti\" src=\"https://img.shields.io/badge/Email--%23F8952D?style=social\u0026logo=gmail\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://api.whatsapp.com/send?phone=5519991830454\"\n        target=\"_blank\" \u003e\n    \u003cimg alt=\"Fale comigo no whatsapp - Arthur Pedroti\" src=\"https://img.shields.io/badge/Whatsapp--%23F8952D?style=social\u0026logo=whatsapp\"\u003e\n  \u003c/a\u003e\n\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"#Description\"\u003eDescription\u003c/a\u003e\u0026nbsp;\u0026nbsp;\u0026nbsp;|\u0026nbsp;\u0026nbsp;\u0026nbsp;\n  \u003ca href=\"#computer-languages\"\u003eLanguages\u003c/a\u003e\u0026nbsp;\u0026nbsp;\u0026nbsp;|\u0026nbsp;\u0026nbsp;\u0026nbsp;\n  \u003ca href=\"#books-technologies\"\u003eTechnologies\u003c/a\u003e\u0026nbsp;\u0026nbsp;\u0026nbsp;|\u0026nbsp;\u0026nbsp;\u0026nbsp;\n    \u003ca href=\"#file_cabinet-databases\"\u003eDatabases\u003c/a\u003e\u0026nbsp;\u0026nbsp;\u0026nbsp;|\u0026nbsp;\u0026nbsp;\u0026nbsp;\n  \u003ca href=\"#install\"\u003eInstall\u003c/a\u003e\u0026nbsp;\u0026nbsp;\u0026nbsp;|\u0026nbsp;\u0026nbsp;\u0026nbsp;\n  \u003ca href=\"#books-usage\"\u003eUsage\u003c/a\u003e\u0026nbsp;\u0026nbsp;\u0026nbsp;|\u0026nbsp;\u0026nbsp;\u0026nbsp;\n  \u003ca href=\"#memo-license\"\u003eLicense\u003c/a\u003e\n\u003c/p\u003e\n\n## Description\n\nThis template was coded in Typescript, TypeORM and Express, contains a login with a password recovery system. Also, have a notifications provider with MongoDB and a Redis provider to be used for cache. The recovery password email system was setup with AWS SES for production and the profile avatar setup to be saved with AWS S3.For commits, we setup a config with commitlint/commitizen/husky and for. For code analyses, we are using ESLint and Prettier. For tests, we are using JEST. You can see at the technologies section, all dependencies we are using.\n\nTo use this template you will need to configure the files bellow:\n\n- ormconfig.json\n- .env\n\nIt also has an insomnia file with the api docs to test all the login features, only need to reconfigure the \"Response =\u003e Body Attribute\" with the Request route.\n\nUtils:\nGenerating the app_secret: http://www.md5.cz/ (type some random text and generate a hash)\nAWS credentials: Take it creating a new user on Amazon\n\n## :computer: Languages\n\n- **#TypeScript**\n\n## :books: Technologies\n\n- **#Express**\n- **#TypeORM**\n- **#ESLint**\n- **#Prettier**\n- **#AWS S3**\n- **#Multer**\n- **#AWS SES**\n- **#Celebrate**\n- **#JWT**\n- **#Nodemailer**\n- **#Handlebars**\n- **#TSringe**\n- **#ioRedis**\n- **#rate-limiter-flexible**\n- **#Commitlint**\n- **#Commitizen**\n- **#Husky**\n\n## :file_cabinet: Databases\n\n- **#Postgres**\n- **#MongoDB**\n- **#Redis**\n\n## Install\n\nInit your repository before install, or you will need to reinstall husky.\n\n```sh\nyarn install\n```\n\n## Usage\n\n```sh\nyarn dev:server\n```\n\n## Author\n\n👤 **Arthur Pedroti**\n\n* Github: [@ArthurPedroti](https://github.com/ArthurPedroti)\n* Linkedin: [@ArthurPedroti](https://www.linkedin.com/in/arthurpedroti)\n\n## 🤝 Contributing\n\nContributions, issues and feature requests are welcome!\u003cbr /\u003eFeel free to check [issues page](https://github.com/ArthurPedroit/Template/issues). You can also take a look at the [contributing guide](https://github.com/ArthurPedroit/Template/blob/master/CONTRIBUTING.md).\n\n## Show your support\n\nGive a ⭐️ if this project helped you!\n\n## 📝 License\n\nCopyright © 2020 [Arthur Pedroti](https://github.com/ArthurPedroti).\u003cbr /\u003e\nThis project is [MIT](https://github.com/ArthurPedroit/Template/blob/master/LICENSE) licensed.\n\n---\n\nMade by :blue_heart: by [Arthur Pedroti](https://github.com/ArthurPedroti)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Farthurpedroti%2Fnode-backend-template","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Farthurpedroti%2Fnode-backend-template","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Farthurpedroti%2Fnode-backend-template/lists"}