Skip to content

josedaniel/express-boilerplate

Repository files navigation

πŸš€ Express Boilerplate

A basic boilerplate for building Express.js applications.

✨ Features:

  • πŸ› οΈ Modular route and controller structure
  • βš™οΈ Middleware support for request handling
  • πŸ–ΌοΈ Handlebars templating engine for views
  • πŸ“‚ Static file serving (CSS, JS, etc.)
  • 🌍 Environment-based configuration
  • πŸ“„ Example .env file for environment variables
  • βœ… Pre-configured ESLint and Prettier for code quality
  • πŸ”„ Nodemon for development server auto-reloading

πŸ—‚οΈ Project Structure:

express-boilerplate/
β”œβ”€β”€ bruno-data/             # Placeholder for data-related files
β”œβ”€β”€ client/                 # Placeholder for client-side code
β”œβ”€β”€ config/                 # Configuration files
β”‚   β”œβ”€β”€ middleware/         # Custom middleware
β”‚   β”œβ”€β”€ api.routes.js       # API route definitions
β”‚   β”œβ”€β”€ auth.routes.js      # Authentication route definitions
β”‚   β”œβ”€β”€ service.routes.js   # Service route definitions
β”‚   └── website.routes.js   # Website route definitions
β”œβ”€β”€ controllers/            # Route handlers/controllers
β”‚   β”œβ”€β”€ api.controller.js   # API controller logic
β”‚   β”œβ”€β”€ auth.controller.js  # Authentication controller logic
β”‚   β”œβ”€β”€ service.controller.js # Service controller logic
β”‚   └── website.controller.js # Website controller logic
β”œβ”€β”€ helpers/                # Utility/helper functions
β”œβ”€β”€ public/                 # Static files (CSS, JS, images)
β”‚   β”œβ”€β”€ css/                # Stylesheets
β”‚   └── js/                 # JavaScript files
β”œβ”€β”€ views/                  # Handlebars templates
β”‚   β”œβ”€β”€ layouts/            # Layout templates
β”‚   β”œβ”€β”€ main.hbs            # Main layout
β”‚   └── home.hbs            # Home page template
β”œβ”€β”€ .env                    # Environment variables file
β”œβ”€β”€ .env.sample             # Example environment variables file
β”œβ”€β”€ .editorconfig           # Editor configuration
β”œβ”€β”€ .gitignore              # Git ignore rules
β”œβ”€β”€ eslint.config.mjs       # ESLint configuration
β”œβ”€β”€ index.js                # Main application entry point
β”œβ”€β”€ nodemon.json            # Nodemon configuration
β”œβ”€β”€ package.json            # Project dependencies
β”œβ”€β”€ pnpm-lock.yaml          # Lock file for pnpm
β”œβ”€β”€ readme.md               # Project documentation
└── tsconfig.json           # TypeScript configuration (if applicable)

πŸ›€οΈ Roadmap:

  • πŸ”§ Add configurations to enable/disable route families
  • ⚑ Install a default pm2 configuration
  • πŸ€– Create some defaults for Copilot
  • ✨ Add and Improve documentation: client side tooling, bruno, esm.

About

πŸš€ A modular Express.js boilerplate with Handlebars, ESLint, Prettier, and development tools.

Resources

License

Stars

Watchers

Forks

Packages

No packages published