{"id":18363075,"url":"https://github.com/berthutapea/typescript-express-prisma-starter","last_synced_at":"2026-03-04T18:31:30.221Z","repository":{"id":261212689,"uuid":"883622185","full_name":"berthutapea/typescript-express-prisma-starter","owner":"berthutapea","description":"🤖 Expess.js + Prisma + TypeScript starter and boilerplate packed with useful development features","archived":false,"fork":false,"pushed_at":"2024-11-05T13:30:39.000Z","size":28,"stargazers_count":29,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-10-20T08:45:08.470Z","etag":null,"topics":["babel","express","express-boilerplate","jest","mysql","prisma","starter","starter-template","typescript","winston","zod"],"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/berthutapea.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":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"github":"berthutapea","patreon":null,"open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"lfx_crowdfunding":null,"custom":["https://saweria.co/berthutapea"]}},"created_at":"2024-11-05T09:41:19.000Z","updated_at":"2025-10-07T18:17:28.000Z","dependencies_parsed_at":"2025-04-13T20:15:03.501Z","dependency_job_id":"681ee039-76ec-4608-a1d5-d792b32ce1b4","html_url":"https://github.com/berthutapea/typescript-express-prisma-starter","commit_stats":null,"previous_names":["berthutapea/typescript-express-prisma-starter"],"tags_count":0,"template":true,"template_full_name":null,"purl":"pkg:github/berthutapea/typescript-express-prisma-starter","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/berthutapea%2Ftypescript-express-prisma-starter","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/berthutapea%2Ftypescript-express-prisma-starter/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/berthutapea%2Ftypescript-express-prisma-starter/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/berthutapea%2Ftypescript-express-prisma-starter/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/berthutapea","download_url":"https://codeload.github.com/berthutapea/typescript-express-prisma-starter/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/berthutapea%2Ftypescript-express-prisma-starter/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30089323,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-04T18:31:08.343Z","status":"ssl_error","status_checked_at":"2026-03-04T18:31:07.708Z","response_time":59,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["babel","express","express-boilerplate","jest","mysql","prisma","starter","starter-template","typescript","winston","zod"],"created_at":"2024-11-05T23:04:44.812Z","updated_at":"2026-03-04T18:31:30.190Z","avatar_url":"https://github.com/berthutapea.png","language":"TypeScript","funding_links":["https://github.com/sponsors/berthutapea","https://saweria.co/berthutapea"],"categories":[],"sub_categories":[],"readme":"\u003cH1 align =\"center\" \u003eExpress.js + Prisma + TypeScript Starter \u0026 boilerplate\u003c/h1\u003e\n\u003ch5  align =\"center\"\u003e \n🤖 Express.js + Prisma + TypeScript starter and boilerplate packed with useful development features.\u003c/h5\u003e\n\u003cbr/\u003e\n\n## Description\n\nStarter template and boilerplate combining Express.js, Prisma, and TypeScript. This project setup offers a well-organized and type-safe environment for building scalable backend applications. With Express.js as the lightweight server framework, Prisma as the powerful ORM for seamless database interactions, and TypeScript ensuring type safety and reducing errors, this boilerplate provides a solid foundation for rapid development. Ideal for developers looking to quickly start projects with a structured codebase, best practices, and improved maintainability.\n\n- [Configuration and Setup](#configuration-and-setup)\n- [Technologies used](#technologies-used)\n- [Project Structure](#project-structure)\n- [Postman](#postman)\n- [Author](#author)\n- [License](#license)\n\n## Configuration and Setup\n\nIn order to run this project locally, simply fork and clone the repository or download as zip and unzip on your machine.\n\n- Open the project in your prefered code editor.\n- Go to terminal -\u003e New terminal (If you are using VS code)\n\nIn the first terminal\n\n```\n$ cd typescript-express-prisma-starter\n$ npm install\n$ npm run start\n```\n\nIn the second terminal\n\n- Create your MySQL database, which you will use as your database\n- Supply the following credentials\n\n```\n#  --- .env  ---\n\n# Database Configuration\nDATABASE_URL=\"mysql://USER:PASSWORD@HOST:PORT/typescript_express_prisma_starter\"\n\n```\n\n## Technologies used\n\nThis project was created using the following technologies.\n\n- [Node](https://nodejs.org/en/) — A runtime environment to help build fast server applications using TypeScript\n- [Express](https://www.npmjs.com/package/express) — The server for handling and routing HTTP requests\n- [TypeScript](https://www.npmjs.com/package/typescript) — A strongly-typed programming language that builds on JavaScript by adding static types, helping developers catch errors early and enabling better tooling support, making code more robust and maintainable.\n- [Prisma](https://www.prisma.io) — An Object-Relational Mapping (ORM) tool for Node.js that simplifies database access in TypeScript applications, supporting relational databases like MySQL, PostgreSQL, and SQLite.\n- [Jest](https://www.npmjs.com/package/jest) — A popular testing framework for TypeScript, designed to provide a fast, reliable, and easy-to-use solution for unit testing, integration testing, and mocking, making it ideal for testing Node.js and React applications.\n- [Supertest](https://www.npmjs.com/package/supertest) — A testing library for HTTP assertions in Node.js, commonly used to test API endpoints by simulating HTTP requests and verifying responses, making it ideal for integration testing in web applications.\n- [Zod](https://www.npmjs.com/package/zod) — A TypeScript first schema validation library for data parsing and validation, allowing developers to define schemas that ensure data integrity, handle errors gracefully, and provide type safety in applications.\n- [Bcrypt](https://www.npmjs.com/package/bcryptjs) — For data encryption\n- [Winston](https://www.npmjs.com/package/winston) — A versatile logging library for Node.js, allowing developers to log information with different levels, formats, and transports, making it easy to track application events, errors, and system performance.\n- [Babel](https://babeljs.io/setup#installation) — A JavaScript compiler that enables developers to use the latest JavaScript features by transforming modern JavaScript code into a backward-compatible version, ensuring compatibility across various environments and browsers.\n- [Uuid](https://www.npmjs.com/package/uuid) — A library for generating unique identifiers (UUIDs) in JavaScript, commonly used to create unique IDs for database entries, session tokens, or other cases where distinct identification is required.\n\n## Project Structure\n\n```bash\n├── docs\n│    ├── address.md\n│    ├── contact.md\n│    ├── user.md\n├── prisma\n│    ├── migrations\n│    ├── schema.prisma\n├── src\n│    ├── apps\n│    │    ├── database.ts\n│    │    ├── logging.ts\n│    │    ├── web.ts\n│    ├── controllers\n│    │    ├── address-controller.ts\n│    │    ├── contact-controller.ts\n│    │    ├── user-controller.ts\n│    ├── errors\n│    │    ├── response-error.ts\n│    ├── middlewares\n│    │    ├── auth-middleware.ts\n│    │    ├── error-middleware.ts\n│    ├── models\n│    │    ├── address-model.ts\n│    │    ├── contact-model.ts\n│    │    ├── page.ts\n│    │    ├── user-model.ts\n│    ├── routes\n│    │    ├── api.ts\n│    │    ├── public-api.ts\n│    ├── services\n│    │    ├── address-service.ts\n│    │    ├── contact-service.ts\n│    │    ├── user-service.ts\n│    ├── types\n│    │    ├── user-request.ts\n│    ├── validations\n│    │    ├── address-validation.ts\n│    │    ├── contact-validation.ts\n│    │    ├── user-validation.ts\n│    │    ├── validation.ts\n│    ├── main.ts\n├── tests\n│    ├── address.test.ts\n│    ├── contact.test.ts\n│    ├── test-util.ts\n│    ├── user.test.ts\n├── .env.example\n├── .gitignore\n├── LICENSE\n├── README.md\n├── babel.config.json\n├── package.json\n├── tsconfig.json\n```\n\n## Postman\n\n- [View API Documentation](https://documenter.getpostman.com/view/26058900/2sAY4yegUt) : https://documenter.getpostman.com/view/26058900/2sAY4yegUt\n\n## Author\n\n- [Gilbert Hutapea](https://www.linkedin.com/in/gilberthutapea/)\n\n## License\n\nMIT License\n\nCopyright (c) 2024 Gilbert Hutapea\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fberthutapea%2Ftypescript-express-prisma-starter","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fberthutapea%2Ftypescript-express-prisma-starter","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fberthutapea%2Ftypescript-express-prisma-starter/lists"}