@bodheesh/create-bodhi-node-app
v1.0.0
Published
Create a production-ready Node.js REST API with zero configuration
Maintainers
Readme
@bodhi/crud-api-generator
A powerful CLI tool that generates Express.js REST APIs or GraphQL endpoints from a simple JSON schema.
Features
- 🚀 Instant API generation from JSON schema
- 💾 Support for MongoDB, PostgreSQL, and Firebase
- 🔄 Auto-generated CRUD operations
- 📚 Swagger documentation generation
- ⚡ GraphQL support
- 🎯 Clean and maintainable code generation
Installation
npm install -g @bodhi/crud-api-generatorUsage
- Create a JSON schema file (e.g.,
schema.json):
{
"name": "User",
"fields": {
"name": {
"type": "String",
"required": true
},
"email": {
"type": "String",
"required": true,
"unique": true
},
"age": {
"type": "Number"
}
}
}- Generate the API:
bodhi-crud generate -s schema.json -d mongodb -t restOptions:
-s, --schema: Path to JSON schema file (required)-d, --database: Database type (mongodb, postgres, firebase) (default: mongodb)-t, --type: API type (rest, graphql) (default: rest)-o, --output: Output directory (default: ./generated)
Generated Structure
The tool will generate the following files:
generated/
├── models/
│ └── user.model.js
├── controllers/
│ └── user.controller.js
├── routes/
│ └── user.routes.js
└── swagger.jsonDatabase Support
MongoDB
- Uses Mongoose for schema definition and validation
- Generates complete CRUD operations
- Includes pagination and filtering
PostgreSQL (Coming Soon)
- Sequelize ORM integration
- Migration generation
- Complex queries support
Firebase (Coming Soon)
- Firestore integration
- Real-time updates
- Security rules generation
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
License
MIT
📦 rest-api ┣ 📂 src ┃ ┣ 📂 config ┃ ┃ ┣ 📄 index.js # Central configuration ┃ ┃ ┗ 📄 swagger.js # Swagger/OpenAPI configuration ┃ ┣ 📂 controllers ┃ ┃ ┣ 📂 auth ┃ ┃ ┃ ┗ 📄 auth.controller.js # Authentication controller ┃ ┃ ┗ 📂 user ┃ ┃ ┗ 📄 user.controller.js # User management controller ┃ ┣ 📂 middleware ┃ ┃ ┣ 📄 error.middleware.js # Global error handler ┃ ┃ ┗ 📂 validation ┃ ┃ ┣ 📄 auth.middleware.js # JWT authentication ┃ ┃ ┣ 📄 auth.validation.js # Auth input validation ┃ ┃ ┣ 📄 role.middleware.js # Role-based access control ┃ ┃ ┗ 📄 user.validation.js # User input validation ┃ ┣ 📂 models ┃ ┃ ┗ 📄 user.model.js # User model schema ┃ ┣ 📂 routes ┃ ┃ ┣ 📂 auth ┃ ┃ ┃ ┗ 📄 auth.routes.js # Auth routes ┃ ┃ ┗ 📂 user ┃ ┃ ┗ 📄 user.routes.js # User routes ┃ ┣ 📂 utils ┃ ┃ ┣ 📄 db.util.js # Database utilities ┃ ┃ ┣ 📄 error.util.js # Error classes ┃ ┃ ┣ 📄 logger.util.js # Logging utility ┃ ┃ ┗ 📄 response.util.js # Response formatter ┃ ┗ 📄 index.js # Application entry point ┣ 📂 logs # Log files directory ┣ 📄 .env.example # Environment variables example ┣ 📄 .gitignore # Git ignore file ┣ 📄 package.json # Project dependencies ┗ 📄 README.md # Project documentation
