express-typescript-bullmq
is a CLI tool to generate a Node.js project structure with Express, TypeScript, BullMQ, and Redis. This tool helps streamline the setup process for creating an API with best practices and commonly used configurations.
- Automatically generates a Node.js project with a predefined structure.
- Includes Express for handling HTTP requests.
- Uses TypeScript for static type checking.
- Configures BullMQ for job processing.
- Integrates Redis for data storage and message brokering.
- Sets up ESLint for code quality and linting.
- Includes sample controllers, routes, models, and services.
To install the CLI tool globally, run:
npm install -g express-typescript-bullmq
After installing, you can use the CLI to generate a new project:
express-typescript-bullmq
You will be prompted to enter a project name. The CLI will create a new directory with the specified name and generate the project structure inside it.
The generated project structure looks like this:
project-name/
├── src/
│ ├── @types/
│ │ ├── custom-types.d.ts
│ │ └── ServiceResponse.ts
│ ├───prisma/
│ │ └── schema.prisma
│ ├── api/
│ │ ├── controllers/
│ │ │ └── user/
│ │ │ ├── user.command.controller.ts
│ │ │ └── user.query.controller.ts
│ │ ├── models/
│ │ │ └── user.model.ts
│ │ ├── routes/
│ │ │ └── user.routes.ts
│ │ ├── services/
│ │ │ └── user/
│ │ │ ├── user.command.service.ts
│ │ │ └── user.query.service.ts
│ │ ├── utils/
│ │ │ ├── middleware/
│ │ │ │ └── auth.ts
│ │ │ └── validations/
│ │ │ └── user.validations.ts
│ ├── config/
│ │ └── bullmq.ts
│ ├── app.ts
├── .env.example
├── .gitignore
├── package.json
├── README.md
└── tsconfig.json
- src/@types/: Custom TypeScript type definitions.
- src/prisma/: Prisma schema and migrations folder
- src/api/controllers/: Contains controllers for handling HTTP requests.
- src/api/models/: Defines data models for the application.
- src/api/routes/: Defines route handlers.
- src/api/services/: Contains business logic and service methods.
- src/api/utils/: Utility functions and middleware.
- src/config/: Configuration files for BullMQ and other services.
- src/app.ts: Main application entry point.
- .env.example: Sample environment variables file.
- .gitignore: Specifies files to ignore in the version control.
- package.json: Contains project metadata and dependencies.
- tsconfig.json: TypeScript compiler configuration.
Ensure you have Node.js and npm installed on your machine.
Navigate to the generated project directory and install the dependencies:
cd project-name
npm install
Rename the .env.example
file to .env
:
mv .env.example .env
Update the DATABASE_URL
in the .env
file with your database connection string.
Run the following command to apply Prisma migrations:
npx prisma migrate dev
To start the development server, run:
npm run dev
The server will start on http://localhost:3000
.
Contributions are welcome! Please open an issue or submit a pull request if you have suggestions for improvements or new features.
This project is licensed under the MIT License.
Developed by coutinhomarco. Feel free to reach out if you have any questions or need assistance.