# ARPEGGIO CLI The Arpeggio CLI tool provides an interface for managing projects based on the [Arpeggio template](https://github.com/isaacdecoded/arpeggio), enforcing the practice of __Domain-driven Design (DDD)__, __Clean Architecture__ and __Command and Query Responsibility Segregation (CQRS)__ approaches. ### Requirements - [Git](https://git-scm.com/book/en/v2/Getting-Started-Installing-Git) - [Rust](https://www.rust-lang.org/tools/install) ### Installation ```sh cargo install arpeggio ``` ### Usage Most relevant commands included in the Arpeggio CLI are: - Create a new project ```sh arpeggio new ``` - Add a bounded context to current project directory ```sh arpeggio add bounded-context ``` - Add an aggregate to specified bounded context ```sh arpeggio add aggregate [BOUNDED_CONTEXT_NAME] ``` - And finally, add components to specified aggregate and bounded context, for example: ```sh arpeggio add entity [AGGREGATE_NAME] [BOUNDED_CONTEXT_NAME] ``` ```sh arpeggio add command [AGGREGATE_NAME] [BOUNDED_CONTEXT_NAME] ``` ```sh arpeggio add controller [AGGREGATE_NAME] [BOUNDED_CONTEXT_NAME] ``` ```sh arpeggio add repository [AGGREGATE_NAME] [BOUNDED_CONTEXT_NAME] [--domain] [--infrastructure] ``` For more information, this is possible to explore the commands and its arguments by using the _--help_ flag: ```sh arpeggio --help ```