# PraisonAI PPT - PowerPoint Bible Verses Generator
[](https://www.python.org/downloads/)
[](https://opensource.org/licenses/MIT)
A professional Python package for creating beautiful PowerPoint presentations from Bible verses stored in JSON format. Each verse gets its own slide with proper formatting and styling.
## ✨ Features
- 📦 **Proper Python Package** - Installable via pip with entry points
- 📖 **Dynamic verse loading** from JSON files
- 🎨 **Professional slide formatting** with proper placeholders
- 🎨 **Text highlighting** - Highlight specific words or phrases in verses
- 📑 **Multi-part verse support** for long verses
- 🔧 **Command-line interface** with flexible options
- 🐍 **Python API** for programmatic use
- 📁 **Built-in examples** included with the package
- 📝 **Template file** for quick start
- ✨ **Auto-generated filenames** or custom output names
- 🎯 **Error handling** and user-friendly feedback
## 📋 Requirements
- Python 3.7 or higher
- python-pptx library (automatically installed)
## 🚀 Installation
### Prerequisites
Install `uv` (fast Python package installer):
```bash
curl -LsSf https://astral.sh/uv/install.sh | sh
```
### Method 1: Install with uv (Recommended)
```bash
# Clone the repository
git clone <repository-url>
cd ppt-package
# Install in editable mode with uv
uv pip install -e .
```
### Method 2: Install from Source (Standard)
```bash
# Clone the repository
git clone <repository-url>
cd ppt-package
# Install the package with uv
uv pip install .
```
### Method 3: Traditional pip Installation
```bash
# If you prefer pip over uv
pip install -e .
```
### Method 4: Install Dependencies Only
```bash
uv pip install -r requirements.txt
```
## 📁 Package Structure
```
ppt-package/
├── praisonaippt/ # Main package
│ ├── __init__.py # Package initialization
│ ├── core.py # Presentation creation logic
│ ├── utils.py # Utility functions
│ ├── loader.py # JSON loading & validation
│ └── cli.py # Command-line interface
├── examples/ # Example JSON files
│ ├── verses.json # Default example
│ ├── tamil_verses.json # Tamil verses example
│ ├── sample_verses.json # Simple example
│ ├── only_one_reason_sickness.json
│ └── template.json # Empty template
├── docs/ # Documentation
├── tests/ # Test suite (optional)
├── setup.py # Package setup
├── pyproject.toml # Modern Python config
├── requirements.txt # Dependencies
├── LICENSE # MIT License
└── README.md # This file
```
## 📖 JSON File Format
Create your verses in JSON format following this structure:
```json
{
"presentation_title": "Your Presentation Title",
"presentation_subtitle": "Your Subtitle",
"sections": [
{
"section": "Section Name",
"verses": [
{
"reference": "Book Chapter:Verse (Version)",
"text": "The actual verse text here.",
"highlights": ["word1", "phrase to highlight"]
}
]
}
]
}
```
### Highlighting Feature (New! 🎨)
You can now highlight specific words or phrases in your verses:
- Add a `"highlights"` array to any verse (optional)
- Highlighted text appears in **bold orange** color
- Case-insensitive matching
- Supports both single words and phrases
**Example:**
```json
{
"reference": "John 3:16 (NIV)",
"text": "For God so loved the world that he gave his one and only Son, that whoever believes in him shall not perish but have eternal life.",
"highlights": ["loved", "eternal life"]
}
```
**See full documentation:** [docs/HIGHLIGHTS_FEATURE.md](docs/HIGHLIGHTS_FEATURE.md)
### Quick Start Template
Use the included template to get started:
```bash
# Copy the template from examples
cp examples/template.json my_verses.json
# Edit with your verses
nano my_verses.json # or use your favorite editor
# Generate presentation
praisonaippt -i my_verses.json
```
## 💻 Usage
### Command-Line Interface
#### Basic Usage
Use default `verses.json` in current directory:
```bash
praisonaippt
```
#### Specify Input File
```bash
praisonaippt -i my_verses.json
```
#### Specify Output File
```bash
praisonaippt -i verses.json -o my_presentation.pptx
```
#### Use Custom Title
```bash
praisonaippt -i verses.json -t "My Custom Title"
```
#### Use Built-in Examples
```bash
# List available examples
praisonaippt --list-examples
# Use a specific example
praisonaippt --use-example tamil_verses
praisonaippt --use-example sample_verses
```
#### Show Version
```bash
praisonaippt --version
```
#### Show Help
```bash
praisonaippt --help
```
### Python API
You can also use the package programmatically in your Python code:
```python
from praisonaippt import create_presentation, load_verses_from_file
# Load verses from file
data = load_verses_from_file("verses.json")
# Create presentation
if data:
output_file = create_presentation(
data,
output_file="my_presentation.pptx",
custom_title="My Custom Title" # Optional
)
print(f"Created: {output_file}")
```
#### Using Built-in Examples
```python
from praisonaippt import create_presentation
from praisonaippt.loader import get_example_path, load_verses_from_file
# Get path to example
example_path = get_example_path("tamil_verses")
# Load and create
data = load_verses_from_file(example_path)
create_presentation(data, output_file="tamil_presentation.pptx")
```
#### List Available Examples
```python
from praisonaippt.loader import list_examples
examples = list_examples()
for example in examples:
print(f"- {example}")
```
### Advanced Usage
**Combine multiple options:**
```bash
praisonaippt -i verses.json -o output.pptx -t "Amazing Grace"
```
**Use example with custom output:**
```bash
praisonaippt --use-example tamil_verses -o tamil_output.pptx
```
## 📊 Output
The package creates a PowerPoint presentation with:
- **Title Slide**: Shows the presentation title and subtitle
- **Section Slides**: One for each section in your JSON (skipped if using custom title)
- **Verse Slides**: One slide per verse (or multiple if the verse is long)
### Slide Formatting:
- **Verse Text**: 24pt, centered, black
- **Reference**: 18pt, centered, gray, italic
- **Section Titles**: 36pt, blue (#003366)
- **Layout**: Professional blank layout with custom text boxes
## 🛡️ Error Handling
- ✅ Validates JSON file existence and format
- ✅ Provides helpful error messages
- ✅ Auto-generates output filename if not specified
- ✅ Handles long verses by splitting them across multiple slides
- ✅ Sanitizes filenames for cross-platform compatibility
## 📚 Examples
### Example 1: Quick Start
```bash
# Install the package with uv
uv pip install -e .
# Use built-in example
praisonaippt --use-example verses
```
### Example 2: Create from Template
```bash
# Copy template
cp examples/template.json my_verses.json
# Edit the file with your verses
# Then generate
praisonaippt -i my_verses.json
```
### Example 3: Custom Title
```bash
praisonaippt -i verses.json -t "God's Promises"
```
### Example 4: Python Script
```python
from praisonaippt import create_presentation, load_verses_from_file
# Load your verses
data = load_verses_from_file("my_verses.json")
# Create presentation
if data:
create_presentation(data, output_file="output.pptx")
```
### Example 5: With Text Highlighting
```bash
# Use the highlights example
praisonaippt --use-example highlights_example
# Or create your own with highlights in the JSON
praisonaippt -i my_highlighted_verses.json
```
## 🔧 Development
### Running Tests
```bash
# Install development dependencies
uv pip install -e .[dev]
# Run tests (when implemented)
pytest tests/
```
### Contributing
1. Fork the repository
2. Create a feature branch
3. Make your changes
4. Test thoroughly
5. Submit a pull request
## 🐛 Troubleshooting
### Common Issues:
1. **"Command not found: praisonaippt"**
- Make sure you installed the package: `uv pip install -e .` or `pip install -e .`
- Check that your Python scripts directory is in PATH
2. **"File not found" error**
- Verify the JSON file exists
- Use absolute path if needed: `praisonaippt -i /full/path/to/verses.json`
3. **"Invalid JSON" error**
- Validate your JSON syntax using a JSON validator
- Ensure all quotes are properly closed
- Check that commas are in the right places
4. **Empty presentation**
- Verify your JSON has a "sections" array
- Check that verses array is not empty
5. **Import errors**
- Reinstall the package: `uv pip install -e .`
- Check that python-pptx is installed: `uv pip install python-pptx`
## 💡 Tips
- Keep verse text concise for better readability
- Use consistent reference formatting (e.g., "Book Chapter:Verse (Version)")
- Organize verses into logical sections
- Test with a small JSON file first
- Use the template file as a starting point
- Check available examples with `--list-examples`
- Long verses are automatically split across multiple slides
## 📄 License
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
## 🙏 Acknowledgments
- Built with [python-pptx](https://python-pptx.readthedocs.io/)
- Inspired by the need for easy Bible verse presentation creation
## 📞 Support
If you encounter any issues or have questions:
1. Check the troubleshooting section above
2. Review the examples in the `examples/` directory
3. Open an issue on GitHub
## 🚀 Quick Reference
```bash
# Installation with uv (recommended)
uv pip install -e .
# Or with pip
pip install -e .
# Basic usage
praisonaippt
# With custom file
praisonaippt -i my_verses.json
# Use example
praisonaippt --use-example tamil_verses
# List examples
praisonaippt --list-examples
# Help
praisonaippt --help
```
---
**Made with ❤️ for creating beautiful Bible verse presentations**
Raw data
{
"_id": null,
"home_page": "https://github.com/MervinPraison/PraisonAIPPT",
"name": "praisonaippt",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.7",
"maintainer_email": null,
"keywords": "powerpoint, pptx, bible, verses, presentation, generator, praisonai",
"author": "MervinPraison",
"author_email": null,
"download_url": "https://files.pythonhosted.org/packages/91/19/b77f468116be68d86f936d69146d771c169608767be1f439c382794ca80f/praisonaippt-1.0.0.tar.gz",
"platform": null,
"description": "# PraisonAI PPT - PowerPoint Bible Verses Generator\n\n[](https://www.python.org/downloads/)\n[](https://opensource.org/licenses/MIT)\n\nA professional Python package for creating beautiful PowerPoint presentations from Bible verses stored in JSON format. Each verse gets its own slide with proper formatting and styling.\n\n## \u2728 Features\n\n- \ud83d\udce6 **Proper Python Package** - Installable via pip with entry points\n- \ud83d\udcd6 **Dynamic verse loading** from JSON files\n- \ud83c\udfa8 **Professional slide formatting** with proper placeholders\n- \ud83c\udfa8 **Text highlighting** - Highlight specific words or phrases in verses\n- \ud83d\udcd1 **Multi-part verse support** for long verses\n- \ud83d\udd27 **Command-line interface** with flexible options\n- \ud83d\udc0d **Python API** for programmatic use\n- \ud83d\udcc1 **Built-in examples** included with the package\n- \ud83d\udcdd **Template file** for quick start\n- \u2728 **Auto-generated filenames** or custom output names\n- \ud83c\udfaf **Error handling** and user-friendly feedback\n\n## \ud83d\udccb Requirements\n\n- Python 3.7 or higher\n- python-pptx library (automatically installed)\n\n## \ud83d\ude80 Installation\n\n### Prerequisites\n\nInstall `uv` (fast Python package installer):\n```bash\ncurl -LsSf https://astral.sh/uv/install.sh | sh\n```\n\n### Method 1: Install with uv (Recommended)\n\n```bash\n# Clone the repository\ngit clone <repository-url>\ncd ppt-package\n\n# Install in editable mode with uv\nuv pip install -e .\n```\n\n### Method 2: Install from Source (Standard)\n\n```bash\n# Clone the repository\ngit clone <repository-url>\ncd ppt-package\n\n# Install the package with uv\nuv pip install .\n```\n\n### Method 3: Traditional pip Installation\n\n```bash\n# If you prefer pip over uv\npip install -e .\n```\n\n### Method 4: Install Dependencies Only\n\n```bash\nuv pip install -r requirements.txt\n```\n\n## \ud83d\udcc1 Package Structure\n\n```\nppt-package/\n\u251c\u2500\u2500 praisonaippt/ # Main package\n\u2502 \u251c\u2500\u2500 __init__.py # Package initialization\n\u2502 \u251c\u2500\u2500 core.py # Presentation creation logic\n\u2502 \u251c\u2500\u2500 utils.py # Utility functions\n\u2502 \u251c\u2500\u2500 loader.py # JSON loading & validation\n\u2502 \u2514\u2500\u2500 cli.py # Command-line interface\n\u251c\u2500\u2500 examples/ # Example JSON files\n\u2502 \u251c\u2500\u2500 verses.json # Default example\n\u2502 \u251c\u2500\u2500 tamil_verses.json # Tamil verses example\n\u2502 \u251c\u2500\u2500 sample_verses.json # Simple example\n\u2502 \u251c\u2500\u2500 only_one_reason_sickness.json\n\u2502 \u2514\u2500\u2500 template.json # Empty template\n\u251c\u2500\u2500 docs/ # Documentation\n\u251c\u2500\u2500 tests/ # Test suite (optional)\n\u251c\u2500\u2500 setup.py # Package setup\n\u251c\u2500\u2500 pyproject.toml # Modern Python config\n\u251c\u2500\u2500 requirements.txt # Dependencies\n\u251c\u2500\u2500 LICENSE # MIT License\n\u2514\u2500\u2500 README.md # This file\n```\n\n## \ud83d\udcd6 JSON File Format\n\nCreate your verses in JSON format following this structure:\n\n```json\n{\n \"presentation_title\": \"Your Presentation Title\",\n \"presentation_subtitle\": \"Your Subtitle\",\n \"sections\": [\n {\n \"section\": \"Section Name\",\n \"verses\": [\n {\n \"reference\": \"Book Chapter:Verse (Version)\",\n \"text\": \"The actual verse text here.\",\n \"highlights\": [\"word1\", \"phrase to highlight\"]\n }\n ]\n }\n ]\n}\n```\n\n### Highlighting Feature (New! \ud83c\udfa8)\n\nYou can now highlight specific words or phrases in your verses:\n- Add a `\"highlights\"` array to any verse (optional)\n- Highlighted text appears in **bold orange** color\n- Case-insensitive matching\n- Supports both single words and phrases\n\n**Example:**\n```json\n{\n \"reference\": \"John 3:16 (NIV)\",\n \"text\": \"For God so loved the world that he gave his one and only Son, that whoever believes in him shall not perish but have eternal life.\",\n \"highlights\": [\"loved\", \"eternal life\"]\n}\n```\n\n**See full documentation:** [docs/HIGHLIGHTS_FEATURE.md](docs/HIGHLIGHTS_FEATURE.md)\n\n### Quick Start Template\n\nUse the included template to get started:\n\n```bash\n# Copy the template from examples\ncp examples/template.json my_verses.json\n\n# Edit with your verses\nnano my_verses.json # or use your favorite editor\n\n# Generate presentation\npraisonaippt -i my_verses.json\n```\n\n## \ud83d\udcbb Usage\n\n### Command-Line Interface\n\n#### Basic Usage\n\nUse default `verses.json` in current directory:\n```bash\npraisonaippt\n```\n\n#### Specify Input File\n\n```bash\npraisonaippt -i my_verses.json\n```\n\n#### Specify Output File\n\n```bash\npraisonaippt -i verses.json -o my_presentation.pptx\n```\n\n#### Use Custom Title\n\n```bash\npraisonaippt -i verses.json -t \"My Custom Title\"\n```\n\n#### Use Built-in Examples\n\n```bash\n# List available examples\npraisonaippt --list-examples\n\n# Use a specific example\npraisonaippt --use-example tamil_verses\npraisonaippt --use-example sample_verses\n```\n\n#### Show Version\n\n```bash\npraisonaippt --version\n```\n\n#### Show Help\n\n```bash\npraisonaippt --help\n```\n\n### Python API\n\nYou can also use the package programmatically in your Python code:\n\n```python\nfrom praisonaippt import create_presentation, load_verses_from_file\n\n# Load verses from file\ndata = load_verses_from_file(\"verses.json\")\n\n# Create presentation\nif data:\n output_file = create_presentation(\n data,\n output_file=\"my_presentation.pptx\",\n custom_title=\"My Custom Title\" # Optional\n )\n print(f\"Created: {output_file}\")\n```\n\n#### Using Built-in Examples\n\n```python\nfrom praisonaippt import create_presentation\nfrom praisonaippt.loader import get_example_path, load_verses_from_file\n\n# Get path to example\nexample_path = get_example_path(\"tamil_verses\")\n\n# Load and create\ndata = load_verses_from_file(example_path)\ncreate_presentation(data, output_file=\"tamil_presentation.pptx\")\n```\n\n#### List Available Examples\n\n```python\nfrom praisonaippt.loader import list_examples\n\nexamples = list_examples()\nfor example in examples:\n print(f\"- {example}\")\n```\n\n### Advanced Usage\n\n**Combine multiple options:**\n```bash\npraisonaippt -i verses.json -o output.pptx -t \"Amazing Grace\"\n```\n\n**Use example with custom output:**\n```bash\npraisonaippt --use-example tamil_verses -o tamil_output.pptx\n```\n\n## \ud83d\udcca Output\n\nThe package creates a PowerPoint presentation with:\n- **Title Slide**: Shows the presentation title and subtitle\n- **Section Slides**: One for each section in your JSON (skipped if using custom title)\n- **Verse Slides**: One slide per verse (or multiple if the verse is long)\n\n### Slide Formatting:\n- **Verse Text**: 24pt, centered, black\n- **Reference**: 18pt, centered, gray, italic\n- **Section Titles**: 36pt, blue (#003366)\n- **Layout**: Professional blank layout with custom text boxes\n\n## \ud83d\udee1\ufe0f Error Handling\n- \u2705 Validates JSON file existence and format\n- \u2705 Provides helpful error messages\n- \u2705 Auto-generates output filename if not specified\n- \u2705 Handles long verses by splitting them across multiple slides\n- \u2705 Sanitizes filenames for cross-platform compatibility\n\n## \ud83d\udcda Examples\n\n### Example 1: Quick Start\n```bash\n# Install the package with uv\nuv pip install -e .\n\n# Use built-in example\npraisonaippt --use-example verses\n```\n\n### Example 2: Create from Template\n```bash\n# Copy template\ncp examples/template.json my_verses.json\n\n# Edit the file with your verses\n# Then generate\npraisonaippt -i my_verses.json\n```\n\n### Example 3: Custom Title\n```bash\npraisonaippt -i verses.json -t \"God's Promises\"\n```\n\n### Example 4: Python Script\n```python\nfrom praisonaippt import create_presentation, load_verses_from_file\n\n# Load your verses\ndata = load_verses_from_file(\"my_verses.json\")\n\n# Create presentation\nif data:\n create_presentation(data, output_file=\"output.pptx\")\n```\n\n### Example 5: With Text Highlighting\n```bash\n# Use the highlights example\npraisonaippt --use-example highlights_example\n\n# Or create your own with highlights in the JSON\npraisonaippt -i my_highlighted_verses.json\n```\n\n## \ud83d\udd27 Development\n\n### Running Tests\n\n```bash\n# Install development dependencies\nuv pip install -e .[dev]\n\n# Run tests (when implemented)\npytest tests/\n```\n\n### Contributing\n\n1. Fork the repository\n2. Create a feature branch\n3. Make your changes\n4. Test thoroughly\n5. Submit a pull request\n\n## \ud83d\udc1b Troubleshooting\n\n### Common Issues:\n\n1. **\"Command not found: praisonaippt\"**\n - Make sure you installed the package: `uv pip install -e .` or `pip install -e .`\n - Check that your Python scripts directory is in PATH\n\n2. **\"File not found\" error**\n - Verify the JSON file exists\n - Use absolute path if needed: `praisonaippt -i /full/path/to/verses.json`\n\n3. **\"Invalid JSON\" error**\n - Validate your JSON syntax using a JSON validator\n - Ensure all quotes are properly closed\n - Check that commas are in the right places\n\n4. **Empty presentation**\n - Verify your JSON has a \"sections\" array\n - Check that verses array is not empty\n\n5. **Import errors**\n - Reinstall the package: `uv pip install -e .`\n - Check that python-pptx is installed: `uv pip install python-pptx`\n\n## \ud83d\udca1 Tips\n\n- Keep verse text concise for better readability\n- Use consistent reference formatting (e.g., \"Book Chapter:Verse (Version)\")\n- Organize verses into logical sections\n- Test with a small JSON file first\n- Use the template file as a starting point\n- Check available examples with `--list-examples`\n- Long verses are automatically split across multiple slides\n\n## \ud83d\udcc4 License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n## \ud83d\ude4f Acknowledgments\n\n- Built with [python-pptx](https://python-pptx.readthedocs.io/)\n- Inspired by the need for easy Bible verse presentation creation\n\n## \ud83d\udcde Support\n\nIf you encounter any issues or have questions:\n1. Check the troubleshooting section above\n2. Review the examples in the `examples/` directory\n3. Open an issue on GitHub\n\n## \ud83d\ude80 Quick Reference\n\n```bash\n# Installation with uv (recommended)\nuv pip install -e .\n\n# Or with pip\npip install -e .\n\n# Basic usage\npraisonaippt\n\n# With custom file\npraisonaippt -i my_verses.json\n\n# Use example\npraisonaippt --use-example tamil_verses\n\n# List examples\npraisonaippt --list-examples\n\n# Help\npraisonaippt --help\n```\n\n---\n\n**Made with \u2764\ufe0f for creating beautiful Bible verse presentations**\n",
"bugtrack_url": null,
"license": null,
"summary": "PraisonAI PPT - Create beautiful PowerPoint presentations from Bible verses in JSON format",
"version": "1.0.0",
"project_urls": {
"Bug Reports": "https://github.com/MervinPraison/PraisonAIPPT/issues",
"Homepage": "https://github.com/MervinPraison/PraisonAIPPT",
"Source": "https://github.com/MervinPraison/PraisonAIPPT"
},
"split_keywords": [
"powerpoint",
" pptx",
" bible",
" verses",
" presentation",
" generator",
" praisonai"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "271639506949165da8a4e5f8631f9a2eb152d5a8afad4bdd84ba9795b14fe4ac",
"md5": "7219c748dbaef12756e3eb6d117b83cd",
"sha256": "72a2270aa5460a91f801985ca69d4432cb428a1cef16fc2016bd9ddae3ce37c8"
},
"downloads": -1,
"filename": "praisonaippt-1.0.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "7219c748dbaef12756e3eb6d117b83cd",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.7",
"size": 12439,
"upload_time": "2025-10-26T00:29:01",
"upload_time_iso_8601": "2025-10-26T00:29:01.600049Z",
"url": "https://files.pythonhosted.org/packages/27/16/39506949165da8a4e5f8631f9a2eb152d5a8afad4bdd84ba9795b14fe4ac/praisonaippt-1.0.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "9119b77f468116be68d86f936d69146d771c169608767be1f439c382794ca80f",
"md5": "7eff913f569d34866bfad9945f64ea9e",
"sha256": "c90093c90ad02cac756505641e12ba3484194ad06136d6482568604877aa0fe1"
},
"downloads": -1,
"filename": "praisonaippt-1.0.0.tar.gz",
"has_sig": false,
"md5_digest": "7eff913f569d34866bfad9945f64ea9e",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.7",
"size": 37364,
"upload_time": "2025-10-26T00:29:03",
"upload_time_iso_8601": "2025-10-26T00:29:03.091279Z",
"url": "https://files.pythonhosted.org/packages/91/19/b77f468116be68d86f936d69146d771c169608767be1f439c382794ca80f/praisonaippt-1.0.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-10-26 00:29:03",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "MervinPraison",
"github_project": "PraisonAIPPT",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"requirements": [
{
"name": "python-pptx",
"specs": [
[
">=",
"0.6.21"
]
]
}
],
"lcname": "praisonaippt"
}