Are you tired of manually setting up the structure and configuration for your Express.js projects? Meet ExpressCraft, a powerful and user-friendly command-line tool designed to automate the process of generating fully configured Express applications in no time!
Whether you're a seasoned developer or just starting your journey in Node.js and Express, ExpressCraft streamlines your workflow and gets you coding faster.
What is ExpressCraft?
ExpressCraft is an npx package that allows you to generate a fully scaffolded Express application with just a single command. With configurable options such as choosing your language (JavaScript/TypeScript), CSS framework, template engine, database, ORM, and more, you can tailor your app to fit your needs. No more manual project setups, just instant configurations!
Key Features:
- Full configuration customization for Express projects
- Quick project scaffolding with tailored options for frameworks, databases, and more
- Automated setup for testing, linting, version control, and API documentation
- Ready-to-go project directory and file structure, pre-configured with the necessary dependencies
π Why Use ExpressCraft?
When working on Express applications, we often spend a lot of time on repetitive tasks like setting up folder structures, configuring databases, or integrating CSS frameworks. With ExpressCraft, all that grunt work is done for you. Here's why you'll love it:
- Save Time: ExpressCraft simplifies the setup process, allowing you to focus on coding your appβs features rather than wasting time configuring the environment.
- Fully Configurable: Choose the tools and technologies that suit your project best β from package managers to CSS frameworks to databases and template engines.
- Seamless Developer Experience: The intuitive CLI guides you through the entire setup process with simple prompts.
- Perfect for Teams and Projects: Kickstart team projects or hackathon ideas with a unified structure from day one.
- Open Source: It's open source, and we invite the developer community to contribute and help improve the tool.
π Quick Start Guide
Get started with ExpressCraft in just three easy steps:
1. Installation
To install ExpressCraft, you'll need Node.js and npm installed on your system. You can install the package globally using the following command:
npm install -g expresscraft
2. Generate a New Express App
Once installed, create your Express app by running:
npx expresscraft
Youβll be prompted to fill in a few details like project name, description, database, and template engine. Once done, ExpressCraft generates a complete Express project tailored to your needs.
3. Run Your Project
After generating the project, navigate to your project folder and start the server:
cd my-app
npm run dev
Thatβs it! Your server is up and running, and you can start developing your Express app instantly.
π§ What Makes ExpressCraft Stand Out?
ExpressCraft isn't just about creating a basic Express app. It provides rich options for customization to suit your specific needs, including:
Modules and Frameworks
ExpressCraft supports the following modules and frameworks:
Package Manager
Package Manager | Description |
---|---|
NPM is the default package manager for the JavaScript runtime environment Node.js. | |
Yarn is a package manager for your code. It allows you to use and share code with other developers from around the world. |
Language
Language | Description |
---|---|
JavaScript is a programming language that conforms to the ECMAScript specification. | |
TypeScript is a superset of JavaScript that compiles to plain JavaScript. |
Version Control
Version Control | Description |
---|---|
Git is a distributed version control system for tracking changes in source code during software development. | |
Apache Subversion is a software versioning and revision control system distributed as open source under the Apache License. |
Template Engine
Template Engine | Description |
---|---|
EJS is a simple templating language that lets you generate HTML markup with plain JavaScript. | |
Pug is a high-performance template engine heavily influenced by Haml and implemented with JavaScript for Node.js and browsers. | |
Twig is a modern template engine for PHP. | |
Handlebars provides the power necessary to let you build semantic templates effectively with no frustration. |
CSS Framework
CSS Framework | Description |
---|---|
Tailwind CSS is a utility-first CSS framework for rapidly building custom designs. | |
Bootstrap is an open-source front-end framework for developing websites and web applications. | |
Bulma is a free, open-source CSS framework based on Flexbox and used by more than 200,000 developers. | |
Foundation is a family of responsive front-end frameworks that make it easy to design beautiful responsive websites, apps, and emails. | |
Materialize is a modern responsive front-end framework based on Material Design. | |
Semantic is a development framework that helps create beautiful, responsive layouts using human-friendly HTML. |
Database
Database | Description |
---|---|
MySQL is an open-source relational database management system. | |
PostgreSQL is a powerful, open-source object-relational database system. | |
SQLite is a C-language library that implements a small, fast, self-contained, high-reliability, full-featured, SQL database engine. | |
MongoDB is a general-purpose, document-based, distributed database built for modern application developers and for the cloud era. |
ORM
ORM | Description |
---|---|
Prisma is an open-source database toolkit. It replaces traditional ORMs and makes database access easy with an auto-generated query builder for TypeScript & Node.js. | |
Sequelize is a promise-based Node.js ORM for Postgres, MySQL, MariaDB, SQLite, and Microsoft SQL Server. | |
TypeORM is an ORM that can run in NodeJS, Browser, Cordova, PhoneGap, Ionic, React Native, NativeScript, Expo, and Electron platforms and can be used with TypeScript and JavaScript. | |
Mongoose is a MongoDB object modeling tool designed to work in an asynchronous environment. | |
Drizzle is a lightweight, fast, and simple ORM for Node.js, built on top of Knex. |
Testing
Testing | Description |
---|---|
Jest is a delightful JavaScript Testing Framework with a focus on simplicity. | |
Mocha is a feature-rich JavaScript test framework running on Node.js and in the browser, making asynchronous testing simple and fun. | |
Jasmine is a behavior-driven development framework for testing JavaScript code. |
Authentication
Authentication | Description |
---|---|
Passport is authentication middleware for Node.js. Extremely flexible and modular, Passport can be unobtrusively dropped into any Express-based web application. | |
JSON Web Token (JWT) is a compact, URL-safe means of representing claims to be transferred between two parties. |
Linting
Linting | Description |
---|---|
ESLint is a tool for identifying and reporting on patterns found in ECMAScript/JavaScript code. | |
TSLint has been deprecated in favor of ESLint. |
API Documentation
API Documentation | Description |
---|---|
Swagger is a set of open-source tools built around the OpenAPI Specification that can help you design, build, document, and consume REST APIs. | |
Postman is a collaboration platform for API development. |
Getting Started
After Installing ExpressCraft, you can create a new Express application by running the following command:
npx expresscraft
This will prompt you to enter the name of your application, and then generate a new directory with the specified name containing the Express application scaffold.
Once the application has been generated, you can navigate to the new directory and start the server by running:
_____ ____ __ _
| ____|_ ___ __ _ __ ___ ___ ___ / ___|_ __ __ _ / _| |_
| _| \ \/ / '_ \| '__/ _ \/ __/ __| | | '__/ _` | |_| __|
| |___ > <| |_) | | | __/\__ \__ \ |___| | | (_| | _| |_
|_____/_/\_\ .__/|_| \___||___/___/\____|_| \__,_|_| \__|
|_|
β¨ Welcome to Express Generator CLI tool.β¨
π― Version: 1.4.0
ποΈ Author: @Ravikisha
This tool will help you to generate a new project with a template in Express js with all the necessary files, folders π and dependencies ποΈ.
π Let's get started by asking some questions to setup your project π
? What is your project name? Ecommerce
? What is your project description?(optional) Ecommerce Application for NetFlix
? What is your project author?(optional) Ravi Kishan
? What is your project Package Manager? NPM
? What is your project language? TypeScript
? What is your project Version Control? Git
? What is your project template engine? EJS
? What is your project CSS Framework? Tailwind CSS
? What is your project database? PostgreSQL
? What is your project ORM? Prisma
? What is your project testing? Jest
? What is your project authentication? Passport.js
? What is your project linting? TSLint
? What is your project API Documentation? Swagger
β
Generating Project....
β
Folder created successfully.
β
Project created successfully.
β
Setup Details in Project.
β
Git initialized successfully.
β
EJS initialized successfully.
β
Tailwind CSS initialized successfully.
π Run the following command to generate the database schema:
---------------------------
npx prisma generate
---------------------------
β
Database and ORM setup complete.
Jest configuration written to "C:\Users\ravi\Desktop\ExpressCraft\Ecommerce\jest.config.js".
β
Jest installed successfully
npm WARN deprecated tslint@6.1.3: TSLint has been deprecated in favor of ESLint. Please see https://github.com/palantir/tslint/issues/4534 for more information.
β
TSLint installed successfully
β
Swagger installed successfully
π Thanks for using ExpressCraft .....
π Your project is ready!
π Get started with the following commands:
π Run Your Project:
1οΈβ£ Open your terminal
2οΈβ£ Go to your project directory
-----------------------------------
cd Ecommerce
-----------------------------------
3οΈβ£ Run the following command
------------ π» Dev Mode --------------
npm run dev
------------ π Production Mode --------------
npm start
-----------------------------------
π Happy Coding! π
π If you like ExpressCraft, give us a star on GitHub
This prompt will ask you a series of questions to set up your project. Once you have answered all the questions, the project will be generated with the specified configuration.
β¨ Contribute and Collaborate: Join the ExpressCraft Open-Source Community!
ExpressCraft is open source, and weβre actively seeking contributions to enhance and expand its functionality. Whether youβve got ideas for new features or want to help squash some bugs, your contributions are welcome!
How to Contribute
- Fork the GitHub Repository
- Make your changes
- Submit a pull request, and weβll review it!
Every contribution helps, and itβs a great way to give back to the developer community while improving your own skills.
π Let's Build the Future of Express Apps Together
ExpressCraft is just getting started, and with your help, we can make it an indispensable tool for Node.js and Express developers worldwide. Whether you're looking to build personal projects, scale enterprise applications, or contribute to open-source, ExpressCraft has got you covered.
Be sure to check out the project on GitHub, leave a β star if you like it, and help us build something awesome together.
About the Author
Hi, I'm Ravi Kishan, the creator of ExpressCraft. Iβm passionate about building tools that make development faster and more enjoyable. You can find me on GitHub. Feel free to reach out if you want to collaborate on open-source projects!
Top comments (0)