{"id":16139979,"url":"https://github.com/ladunjexa/tsnode-express-mongodb-boilerplate","last_synced_at":"2026-05-10T05:35:27.829Z","repository":{"id":175682053,"uuid":"628797174","full_name":"ladunjexa/tsnode-express-mongodb-boilerplate","owner":"ladunjexa","description":"well-structured boilerplate for REST API using Node.js, TypeScript, Express \u0026 MongoDB 🪐","archived":false,"fork":false,"pushed_at":"2024-05-13T18:26:17.000Z","size":349,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-20T23:08:05.271Z","etag":null,"topics":["backend-api-boilerplate","best-practices","expressjs","mongoosejs","rest-api-boilerplate","typescript-nodejs"],"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/ladunjexa.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-04-17T02:09:34.000Z","updated_at":"2024-04-28T02:47:10.000Z","dependencies_parsed_at":null,"dependency_job_id":"793e4596-c4fd-4719-b0af-2a9dbb842029","html_url":"https://github.com/ladunjexa/tsnode-express-mongodb-boilerplate","commit_stats":null,"previous_names":["ladunjexa/tsnode-mongodb-rest-api","ladunjexa/tsnode-express-mongodb-boilerplate"],"tags_count":1,"template":true,"template_full_name":null,"purl":"pkg:github/ladunjexa/tsnode-express-mongodb-boilerplate","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ladunjexa%2Ftsnode-express-mongodb-boilerplate","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ladunjexa%2Ftsnode-express-mongodb-boilerplate/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ladunjexa%2Ftsnode-express-mongodb-boilerplate/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ladunjexa%2Ftsnode-express-mongodb-boilerplate/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ladunjexa","download_url":"https://codeload.github.com/ladunjexa/tsnode-express-mongodb-boilerplate/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ladunjexa%2Ftsnode-express-mongodb-boilerplate/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":261032113,"owners_count":23100051,"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":["backend-api-boilerplate","best-practices","expressjs","mongoosejs","rest-api-boilerplate","typescript-nodejs"],"created_at":"2024-10-09T23:50:21.881Z","updated_at":"2026-05-10T05:35:27.800Z","avatar_url":"https://github.com/ladunjexa.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ca name=\"readme-top\"\u003e\u003c/a\u003e\n\u003cdiv align=\"center\"\u003e\n\n  ![Project Banner](readme_assets/readme_banner.png#gh-dark-mode-only)\n  ![Project Banner](readme_assets/readme_banner-light.png#gh-light-mode-only)\n\n  \u003ch1\u003eTSNode \u0026 MongoDB REST API\u003c/h1\u003e\n  \n  \u003cp\u003e\n    well-structured boilerplate for REST API using Node.js, TypeScript, Express \u0026 MongoDB.\n  \u003c/p\u003e\n\n\u003c!-- Badges --\u003e\n\u003cp\u003e\n  \u003ca href=\"https://github.com/ladunjexa/TSNode-MongoDB-REST-API/graphs/contributors\"\u003e\n    \u003cimg src=\"https://img.shields.io/github/contributors/ladunjexa/TSNode-MongoDB-REST-API\" alt=\"contributors\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"\"\u003e\n    \u003cimg src=\"https://img.shields.io/github/last-commit/ladunjexa/TSNode-MongoDB-REST-API\" alt=\"last update\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://github.com/ladunjexa/TSNode-MongoDB-REST-API/network/members\"\u003e\n    \u003cimg src=\"https://img.shields.io/github/forks/ladunjexa/TSNode-MongoDB-REST-API\" alt=\"forks\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://github.com/ladunjexa/TSNode-MongoDB-REST-API/stargazers\"\u003e\n    \u003cimg src=\"https://img.shields.io/github/stars/ladunjexa/TSNode-MongoDB-REST-API\" alt=\"stars\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://github.com/ladunjexa/TSNode-MongoDB-REST-API/issues/\"\u003e\n    \u003cimg src=\"https://img.shields.io/github/issues/ladunjexa/TSNode-MongoDB-REST-API\" alt=\"open issues\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://github.com/ladunjexa/TSNode-MongoDB-REST-API/blob/master/LICENSE\"\u003e\n    \u003cimg src=\"https://img.shields.io/github/license/ladunjexa/TSNode-MongoDB-REST-API.svg\" alt=\"license\" /\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n   \n \u003ch4\u003e\n    \u003ca href=\"https://ai-powered-3-d-product-web.vercel.app/\"\u003eView Demo\u003c/a\u003e\n  \u003cspan\u003e · \u003c/span\u003e\n    \u003ca href=\"https://github.com/ladunjexa/TSNode-MongoDB-REST-API\"\u003eDocumentation\u003c/a\u003e\n  \u003cspan\u003e · \u003c/span\u003e\n    \u003ca href=\"https://github.com/ladunjexa/TSNode-MongoDB-REST-API/issues/\"\u003eReport Bug\u003c/a\u003e\n  \u003cspan\u003e · \u003c/span\u003e\n    \u003ca href=\"https://github.com/ladunjexa/TSNode-MongoDB-REST-API/issues/\"\u003eRequest Feature\u003c/a\u003e\n  \u003c/h4\u003e\n\u003c/div\u003e\n\n\u003cbr /\u003e\n\n\u003c!-- Table of Contents --\u003e\n\u003cdetails\u003e\n\n\u003csummary\u003e\n\n# :notebook_with_decorative_cover: Table of Contents\n\n\u003c/summary\u003e\n\n- [About the Project](#star2-about-the-project)\n  * [Folder Structure](#bangbang-folder-structure)\n  * [Tech Stack](#space_invader-tech-stack)\n- [Getting Started](#toolbox-getting-started)\n  * [Environment Variables](#key-environment_variables)\n  * [Installation](#gear-installation)\n  * [Run Locally](#running-run-locally)\n- [Contributing](#wave-contributing)\n- [License](#warning-license)\n- [Contact](#handshake-contact)\n- [Acknowledgements](#gem-acknowledgements)\n\n\u003c/details\u003e  \n\n\u003c!-- About the Project --\u003e\n## :star2: About the Project\n\n\u003c!-- \u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"readme_assets/mock.png\" height=\"auto\" width=\"90%\"/\u003e\n\u003c/div\u003e --\u003e\n\nThis repository houses a well-structured REST API for ***User Management*** powered by MongoDB with cookie based authentication, with the abilities to Create, Read, Update users.\nREST API built with TypeScript, Node.js, Express \u0026 MongoDB.\n\n\u003c!-- Folder Structure --\u003e\n### :bangbang: Folder Structure\n\nHere is the folder structure of REST API.\n```bash\nTSNode-MongoDB-REST-API/\n|- server/\n  |-- src/\n    |-- controllers/\n    |-- db/\n    |-- helpers/\n    |-- middlewares/\n    |-- router/\n    |-- index.ts\n  |-- .env\n  |-- nodemon.json\n  |-- tsconfig.json\n  |-- package.json\n```\n\u003cbr /\u003e\n\n\u003c!-- TechStack --\u003e\n### :space_invader: Tech Stack\n\n[![My Skills](https://skillicons.dev/icons?i=ts,nodejs,express,mongodb)](https://skillicons.dev)\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\u003c!-- Getting Started --\u003e\n## :toolbox: Getting Started\n\n\u003c!-- ENV VARIABLES --\u003e\n### :key: Environment Variables\n\nIn order to use this REST API you have to add some environment variables to .env file,\n\n##### _server-side_ [server/.env]\ncreate `.env` file in `server/` directory \u0026 add the following environment variables:\n```env\nSESSION_TOKEN_NAME=\u003cSESSION_TOKEN_NAME\u003e\nMONGODB_URL=\u003cMONGODB_URL\u003e\nSECRET=\u003cREST_API_SECRET\u003e\nPORT=\u003cPORT\u003e // optional, default set to 8080\n```\n\n\u003c!-- Installation --\u003e\n### :gear: Installation\n\n#### Step 1:\nDownload or clone this repo by using the command below:\n\n```bash\n https://github.com/ladunjexa/TSNode-MongoDB-REST-API.git\n```\n\n#### Step 2:\n\nThis REST API using NPM (Node Package Manager), therefore, make sure that Node.js is installed by execute the following command in console: (minimum Node 14.x)\n\n```bash\n  node -v\n```\n\n#### Step 3:\n\nIn `server` folder execute the following command to get the required packages:\n\n```bash\n  npm install\n```\n\n\u003c!-- Run Locally --\u003e\n### :running: Run Locally\n\n#### Step 1:\n\nGo to `server` folder and execute the following command in order to start the server:\n\n```bash\n  npm start\n```\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\u003c!-- Contributing --\u003e\n## :wave: Contributing\n\n\u003ca href=\"https://github.com/ladunjexa/TSNode-MongoDB-REST-API/graphs/contributors\"\u003e\n  \u003cimg src=\"https://contrib.rocks/image?repo=ladunjexa/TSNode-MongoDB-REST-API\" /\u003e\n\u003c/a\u003e\n\n\nContributions are always welcome!\n\nSee [`contributing.md`](https://contributing.md/) for ways to get started.\n\nContributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are **greatly appreciated**.\n\nIf you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag \"enhancement\".\nDon't forget to give the project a star! Thanks again!\n\n1. Fork the Project\n2. Create your Feature Branch (`git checkout -b feature/AmazingFeature`)\n3. Commit your Changes (`git commit -m 'Add some AmazingFeature'`)\n4. Push to the Branch (`git push origin feature/AmazingFeature`)\n5. Open a Pull Request\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\u003c!-- License --\u003e\n## :warning: License\n\nDistributed under the MIT License. See [LICENSE.txt](https://github.com/ladunjexa/TSNode-MongoDB-REST-API/blob/main/LICENSE) for more information.\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\u003c!-- Contact --\u003e\n## :handshake: Contact\n\nLiron Abutbul - [@lironabutbul6](https://twitter.com/lironabutbul6) - [@ladunjexa](https://t.me/ladunjexa)\n\nProject Link: [https://github.com/ladunjexa/TSNode-MongoDB-REST-API](https://github.com/ladunjexa/TSNode-MongoDB-REST-API)\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\u003c!-- Acknowledgments --\u003e\n## :gem: Acknowledgements\n\nThis section used to mention useful resources and libraries that used in the REST API:\n\n#### server-side\n\n- [Body Parser](https://www.npmjs.com/package/body-parser)\n- [Compression](https://www.npmjs.com/package/compression)\n- [Cookie Parser](https://www.npmjs.com/package/cookie-parser)\n- [CORS](https://www.npmjs.com/package/cors)\n- [dotenv](https://www.npmjs.com/package/dotenv)\n- [Express.js](https://expressjs.com/)\n- [lodash](https://lodash.com/)\n- [mongoose.js](https://mongoosejs.com/)\n- [Nodemon](https://www.npmjs.com/package/nodemon)\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fladunjexa%2Ftsnode-express-mongodb-boilerplate","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fladunjexa%2Ftsnode-express-mongodb-boilerplate","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fladunjexa%2Ftsnode-express-mongodb-boilerplate/lists"}