{"id":18299877,"url":"https://github.com/shuvoprogram/express-boilerplate-starter","last_synced_at":"2026-04-09T15:53:31.265Z","repository":{"id":237996922,"uuid":"795672058","full_name":"ShuvoProgram/express-boilerplate-starter","owner":"ShuvoProgram","description":"📦 A starter npm package for Express.js projects with TypeScript, Express, Mongoose, ESLint, Prettier, Husky, and Zod.","archived":false,"fork":false,"pushed_at":"2024-05-04T11:40:58.000Z","size":228,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-18T22:33:16.187Z","etag":null,"topics":["eslint","expressjs","http-status-code","husky","mongodb","prettier","typescript","zod"],"latest_commit_sha":null,"homepage":"","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/ShuvoProgram.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","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":"2024-05-03T19:22:04.000Z","updated_at":"2024-05-05T09:30:06.000Z","dependencies_parsed_at":"2024-11-05T15:10:45.782Z","dependency_job_id":"d4462621-49e7-482d-a443-86c3f45512e5","html_url":"https://github.com/ShuvoProgram/express-boilerplate-starter","commit_stats":null,"previous_names":["shuvoprogram/express-boilerplate-starter"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ShuvoProgram%2Fexpress-boilerplate-starter","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ShuvoProgram%2Fexpress-boilerplate-starter/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ShuvoProgram%2Fexpress-boilerplate-starter/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ShuvoProgram%2Fexpress-boilerplate-starter/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ShuvoProgram","download_url":"https://codeload.github.com/ShuvoProgram/express-boilerplate-starter/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248010030,"owners_count":21032839,"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":["eslint","expressjs","http-status-code","husky","mongodb","prettier","typescript","zod"],"created_at":"2024-11-05T15:10:36.394Z","updated_at":"2025-12-30T20:02:57.362Z","avatar_url":"https://github.com/ShuvoProgram.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Express Boilerplate Starter\n\nExpress Boilerplate Starter is a boilerplate project designed to help you quickly set up a new Express.js project with TypeScript. It includes pre-configured settings and dependencies for a seamless development experience.\n\n## Table of Contents\n\n- [Getting Started](#getting-started)\n- [Usage](#usage)\n- [Customization](#customization)\n- [Custom Folder Structure](#custom-folder-structure)\n- [Features](#features)\n- [Contributing](#contributing)\n- [Credits](#credits)\n- [License](#license)\n\n\n## Getting Started\n\nTo get started with Express Boilerplate Starter, follow these steps:\n\n1. Use `npx` to create a new project based on the starter:\n\n   ```sh\n   npx express-boilerplate-starter your_project_name\n   ```\n   This command will create a new directory with the specified name (your_repo_name), set up the project inside it, and install all the dependencies.\n2. Navigate into the newly created directory:\n\n   ```sh\n   cd your_project_name\n   ```\n3. Change some values in package.json to meet your project needs. You can modify the project name, description, author, and other configurations as necessary.\n4. Create `.env` file using the provided example in `.env.example`.\n5. Customize the README file to provide information specific to your project.\n6. Start the development server:\n\n   ```sh\n   npm run dev\n   ```\n\n\n\n## Usage\n\nAfter setting up your project, you can use the provided scripts and configuration to start developing your Express application. Here are the scripts below:\n\n- **`npm run dev`:**  Start the development server with hot reloading.\n\n- **`npm run start`:**  Run the production build of the project.\n\n- **`npm run lint`:**  Run ESLint to lint TypeScript files.\n\n- **`npm run lint:fix`:**  Run ESLint to lint TypeScript files and automatically fix fixable issues.\n\n- **`npm run build`:**  Build the project for production.\n\n- **`npm run prettier-watch`:**  Automatically format TypeScript files using Prettier on file change.\n\n- **`npm run prettier:fix`:**  Format all TypeScript files using Prettier.\n\n- **`npm run prepare`:**  Trigger Husky to set up Git hooks.\n\n\n## Customization\n\nCreate Express Boilerplate Starter can be customized to fit your specific requirements. You can modify configuration files, add or remove features, and integrate additional libraries or tools as needed.\n\n## Custom Folder Structure\n\nThe project follows a customized folder structure to organize its source code and resources efficiently. Here's an overview of the folder structure:\n\n- **src/common/**: Contains common files and utilities used across the project, such as `jwtHelper.ts` for custom user authentication token utils and `sendResponse.ts` for fetch data.\n- **src/app/modules/**: Contains resources organized by domain, with each resource folder containing `model.ts`, `interface.ts`, `controller.ts`, and `routes.ts` files for that specific resource.\n- **src/app/middlewares/**: Contains middleware functions used in the Express application such as `authMiddleware.ts` for check valid user, `globalErrorHandler` for handle any error of api and `validateRequest` for check valid user input.\n- **src/app/routes**: Contains routes are main file who integrate all individual routes.\n- **src/config/index**: Contains config `index.ts` file are managing environment variables.\n- **src/error/**: Contains error folder to handle api error.\n- **src/interface**: Contains interface folder including to `catchAsync.ts` to handle api validation, `common.ts` to handle common uses function, `error.ts` are used to handle incoming api errors.\n- **src/server.ts**: Entry point for the Express server.\n- **src/app.ts**: Defines the Express application.\n\n### Additional Files\n\n- **.env.example**: Example environment variables file.\n- **.gitignore**: Git ignore rules.\n- **package.json**: Node.js dependencies and scripts.\n- **README.md**: Project documentation.\n- **tsconfig.json**: TypeScript configuration file.\n\nThis folder structure provides a clear organization for the project's source code and resources, making it easier to navigate and maintain as the project grows.\n\n## Features\n\n- **TypeScript Support:** Write your Express application using TypeScript for enhanced type safety and developer productivity.\n- **Express.js Integration:** Utilize the powerful features of Express.js to build robust and scalable web applications.\n- **Mongoose Integration:** Seamlessly connect your Express application to MongoDB databases using Mongoose for data modeling and interaction.\n\n- **Nodemon Development:** Use Nodemon for automatic server restarts during development for a smooth development experience.\n- **Prettier Formatting:** Maintain consistent code style and formatting with Prettier, an opinionated code formatter.\n- **Husky Git Hooks:** Enforce code quality and standards with Husky pre-commit hooks for linting and formatting checks.\n- **GitHub Actions CI:** Set up continuous integration with GitHub Actions to automate testing and deployment workflows.\n\n\n## Contributing\n\nContributions to Create Express TypeScript Starter are welcome! To contribute, please follow these steps:\n\n1. Fork the repository and create a new branch.\n2. Make your changes and ensure that the code passes all tests.\n3. Submit a pull request with a clear description of the changes you've made.\n   \n## Credits\n\nExpress Boilerplate Starter was created by [Safar Khan Shuvo](https://www.linkedin.com/in/shuvok/) and is maintained by the open-source community.\n\n## License\nExpress Boilerplate Starter is licensed under the Apache-2.0 license.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshuvoprogram%2Fexpress-boilerplate-starter","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fshuvoprogram%2Fexpress-boilerplate-starter","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshuvoprogram%2Fexpress-boilerplate-starter/lists"}