Boilerplate Hexagonal

screenshot of Boilerplate Hexagonal

A boilerplate with an hexagonal CQRS Symfony base project

Overview

The Hexagonal Boilerplate is designed to facilitate a robust software development experience through the application of hexagonal architecture principles. This architectural pattern emphasizes the importance of separating concerns, allowing developers to build applications that are modular, adaptable, and resilient against changes. By organizing the core business logic at the center and surrounding it with various external interfaces, this framework provides an excellent structure for scalable software development.

Built with React and Symfony, the boilerplate serves as an ideal learning tool. It simplifies the development environment by incorporating Docker, which manages multiple services, making it easier for developers to focus on building their applications without the usual hassle of configuration and setup.

Features

  • Hexagonal Architecture: Promotes a clear separation of business logic from external systems, improving modularity and maintainability.
  • Core Business Logic: Encapsulated within the innermost layer, ensuring it remains unaffected by changes in external interfaces.
  • Use of Ports and Adapters: Defines clear interfaces for interaction, allowing easy swapping of external components.
  • Docker Integration: Streamlines the development environment by managing services such as NodeJS, PHP, Nginx, MySQL, and Traefik.
  • Taskfile Usage: Utilizes Taskfile for command shortcuts instead of GNU Make, simplifying the process of building and managing Docker containers.
  • Easy Installation: Comes with a straightforward installation process, with convenient scripts available for Linux-based systems.
  • Development Dashboard: Provides access to Traefik dashboard and Symfony Profiler, enhancing the development experience and making monitoring easier.
docker
Docker

A website that uses Docker for containerization to streamline development, testing, and deployment workflows. This includes features such as containerization of dependencies, automated builds and deployments, and container orchestration to ensure scalability and availability.