# ArchGenie CLI

A powerful Node.js CLI tool to quickly scaffold project folder structures based on popular software architecture patterns.

---

## Features

- Supports multiple architecture patterns like MVC, MVP, MVVM, PAC, HMVC, Layered, Microservices, Serverless, Clean Architecture, Hexagonal, Onion, REST, GraphQL, gRPC, Event-Driven, CQRS, Pub/Sub, Client-Server, P2P, and more.
- Easily switch between architectures with a simple command.
- Automatically initializes git repo, npm project, installs Express and Nodemon.
- Option to backup or delete existing project files before scaffolding a new structure.
- Helps enforce clean project organization for better maintainability.

---

## Installation

```bash
npm install -g archgenie
```

---

## Usage

```bash
archgenie@create <architecture-flag>
```

## Help

```bash
archgenie@create --help
```

### Available Flags

```
--mvc
--mvp
--mvvm
--pac
--hmvc
--layered
--monolithic
--microservices
--soa
--serverless
--clean
--hexagonal
--onion
--rest
--graphql
--grpc
--event_driven
--cqrs
--pub_sub
--client_server
--p2p
--master_slave
--leader_follower
--load_balanced_cluster
--blackboard
--pipes_filters
--microkernel
--service_mesh
--reactive
--help
--version
```

---

## Examples

```bash
archgen-cli --mvc
```

Creates folders for the MVC pattern including models, views, controllers, and related folders.

---

## How it works

- Checks if a previous architecture was scaffolded.
- Prompts you to delete existing files or back them up before creating the new folder structure.
- Initializes git and npm, installs dependencies (`express` and `nodemon`).
- Creates folders and adds basic `.gitignore` and `server.js` files.

---

## Version

`1.1.3`

---

## Author

Praveen KR  
Email: [coder.praveenkr@gmail.com](mailto:coder.praveenkr@gmail.com)  
LinkedIn: [https://www.linkedin.com/in/mepraveenkr/](https://www.linkedin.com/in/mepraveenkr/)  
GitHub: [https://github.com/frontenddeveloperpraveen](https://github.com/frontenddeveloperpraveen)

---

## License

MIT License

---

Feel free to contribute, raise issues, or request new architectures!
