# Blueprint

**Version**: `0.1.0`  
**Author**: Harsh Raval  

---

## 🌟 Overview

**Blueprint** is a Python-based tool to generate professional project folder structures.  
It supports **ASCII connectors**, ignores files/folders from `.gitignore` or `.blueprintrc`, and outputs **tree**, **Markdown**, **JSON**, or **YAML** formats.  

It is designed for developers to **quickly visualize project structures**, generate documentation, and maintain consistency.

---

## 🔥 Features

- **ASCII-only connectors** for universal support.  
- **File/folder ignoring** using `.gitignore` or `.blueprintrc`.  
- **Supports multiple output formats**: tree, markdown, JSON, YAML.  
- **Customizable depth** for tree output.  
- **Show/Hide hidden files**.  
- **Optional icons and color support** (disabled by default for ASCII output).  
- **Automatic configuration** via `.blueprintrc`.  
- **Cross-platform support** for Windows, macOS, Linux.  
- **Installable via pip** for quick setup.  

---

## 🚀 Technologies

| **Technology**   | **Description**                                                        |
|------------------|------------------------------------------------------------------------|
| Python           | Core language for CLI and project tree generation.                     |
| JSON/YAML        | For machine-readable project structure output.                         |
| pip              | Easy installation and package management.                              |

---

## 🗂 Project Structure

Example folder layout generated by Blueprint:

```bash
project-root/
+-- src/
|   +-- main.py
|   +-- utils/
|       +-- helpers.py
+-- tests/
+-- README.md
+-- requirements.txt
```

---

## ⚡️ Getting Started

### 1. Install via pip

```bash
pip install blueprint
```

### 2. Run Blueprint

Generate your project structure:

```bash
# Display project tree in console
blueprint .

# Save output to Markdown
blueprint . -f markdown -o blueprint.md

# Save output to JSON
blueprint . -f json -o blueprint.json
```

### 3. Optional `.blueprintrc` Configuration

Create a `.blueprintrc` in your project root:

```json
{
  "format": "markdown",
  "ignore": ["venv", "*.pyc", "node_modules"],
  "depth": 3,
  "show_hidden": false,
  "icons": false
}
```

Blueprint will automatically read this configuration file.

---

## 🛠 Available CLI Options

```
Usage: blueprint [path] [options]

Options:
  -h, --help           Show this help message
  -f, --format         Output format (tree, markdown, json, yaml)
  -o, --output         Save output to file
  -d, --depth          Max depth of tree
  --no-files           Show directories only
  --show-hidden        Include hidden files/folders
  -i, --ignore         Comma-separated ignore patterns
  --no-summary         Hide folder/file summary
  --icons              Include icons in output
  -v, --version        Show version
```

---

## 🌱 Future Roadmap

- **Extended output formats** like HTML and PDF.  
- **Integration with IDEs** for automated structure generation.  
- **Predefined templates** for common project types (Python, Node.js, React).  

---

## 🤝 Contribution Guidelines

Contributions are welcome!  

1. Fork the repository.  
2. Create a new branch (`git checkout -b feature/NewFeature`).  
3. Commit your changes (`git commit -m 'Add new feature'`).  
4. Push to the branch (`git push origin feature/NewFeature`).  
5. Open a pull request.  

---

## 📄 License

**Blueprint** is licensed under the **MIT License**.  

---

## 🌐 Connect with Me

- **GitHub**: [@mrharshraval](https://github.com/mrharshraval)  
- **LinkedIn**: [@mrharshraval](https://linkedin.com/in/mrharshraval)

---
