Skip to main content

CLI tools to accelerate Wagtail web development with RhamaaCMS

Project description

Rhamaa CLI

A powerful CLI tool to accelerate Wagtail web development with prebuilt applications and project scaffolding.

🚀 Features

Project Management

  • Project Creation: Generate new Wagtail projects using RhamaaCMS template
  • App Registry System: Centralized registry of prebuilt applications
  • Auto Installation: Download and install apps directly from GitHub repositories

App Management

  • Prebuilt Apps: Ready-to-use applications for common use cases
  • Auto Download: Automatically download apps from GitHub repositories
  • Smart Extraction: Extract and organize files to proper project structure
  • Force Install: Overwrite existing apps when needed

Developer Experience

  • Rich Terminal UI: Beautiful ASCII art branding and colored output
  • Progress Indicators: Real-time download and installation progress
  • Error Handling: Comprehensive error messages and troubleshooting
  • Project Validation: Automatic detection of Wagtail projects

📦 Available Apps

App Name Category Description Repository
mqtt IoT MQTT integration for Wagtail with real-time messaging mqtt-apps
users Authentication Advanced user management system users-app
articles Content Blog and article management system articles-app
lms Education Complete Learning Management System lms-app

🛠 Installation

From PyPI (Beta)

# Install the latest beta version
pip install rhamaa==0.1.0b1

# Or install the latest pre-release
pip install --pre rhamaa

Development Setup

# Clone the repository
git clone https://github.com/RhamaaCMS/RhamaaCLI.git
cd RhamaaCLI

# Create virtual environment
python -m venv .venv
source .venv/bin/activate  # Linux/Mac
# .venv\Scripts\activate   # Windows

# Install in development mode
pip install -e .

📖 Usage

Basic Commands

# Show help and available commands
rhamaa

# Create a new Wagtail project
rhamaa start MyProject

# List available apps
rhamaa add --list
rhamaa registry list

# Install an app
rhamaa add mqtt

# Get app information
rhamaa registry info mqtt

# Force install (overwrite existing)
rhamaa add mqtt --force

App Installation Workflow

  1. Check Available Apps: rhamaa add --list
  2. Install App: rhamaa add <app_name>
  3. Follow Instructions: Add to INSTALLED_APPS and run migrations
  4. Configure: Check app's README for additional setup

Registry Management

# List all apps by category
rhamaa registry list

# Get detailed app information
rhamaa registry info <app_name>

# Update registry (coming soon)
rhamaa registry update

🏗 Project Structure

rhamaa/
├── __init__.py             # Package initialization
├── cli.py                  # Main CLI entry point and help system
├── registry.py             # App registry management
├── utils.py                # Utility functions (download, extract)
└── commands/               # Command modules directory
    ├── __init__.py         # Commands package init
    ├── add.py              # 'add' command implementation
    ├── start.py            # 'start' command implementation
    └── registry.py         # 'registry' command implementation

🔧 Development

Adding New Apps to Registry

Edit rhamaa/registry.py:

APP_REGISTRY = {
    "your_app": {
        "name": "Your App Name",
        "description": "App description",
        "repository": "https://github.com/RhamaaCMS/your-app",
        "branch": "main",
        "category": "Category"
    }
}

Testing Commands

# Test main command
rhamaa

# Test project creation
rhamaa start TestProject

# Test app installation
rhamaa add mqtt

# Test registry commands
rhamaa registry list
rhamaa registry info mqtt

Building Distribution

# Build distribution packages
python setup.py sdist bdist_wheel

# Install from local build
pip install dist/rhamaa-*.whl

🎯 Use Cases

For Wagtail Developers

  • Quickly bootstrap new projects with proven architecture
  • Add common functionality without writing from scratch
  • Standardize project structure across team

For Teams

  • Consistent project setup across developers
  • Reusable components and applications
  • Faster development cycles

For IoT Projects

  • MQTT integration with rhamaa add mqtt
  • Real-time data monitoring and management
  • Wagtail admin integration for IoT devices

🤝 Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Add tests if applicable
  5. Submit a pull request

📄 License

This project is part of the RhamaaCMS ecosystem.

🔗 Links


Made with ❤️ by the RhamaaCMS team

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

rhamaa-0.2.0b1.tar.gz (61.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

rhamaa-0.2.0b1-py3-none-any.whl (24.4 kB view details)

Uploaded Python 3

File details

Details for the file rhamaa-0.2.0b1.tar.gz.

File metadata

  • Download URL: rhamaa-0.2.0b1.tar.gz
  • Upload date:
  • Size: 61.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.7

File hashes

Hashes for rhamaa-0.2.0b1.tar.gz
Algorithm Hash digest
SHA256 faa42e43a9a7019b0e8a35116406714ffbbd28e521f7afa11cdb3bad880073d0
MD5 ae1cb90aa3725d9e2bd436f1c7376140
BLAKE2b-256 1b28bca7249e2aada765d3bb6f267a505bc32e4b4867dcc653017f258db9b6f6

See more details on using hashes here.

File details

Details for the file rhamaa-0.2.0b1-py3-none-any.whl.

File metadata

  • Download URL: rhamaa-0.2.0b1-py3-none-any.whl
  • Upload date:
  • Size: 24.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.7

File hashes

Hashes for rhamaa-0.2.0b1-py3-none-any.whl
Algorithm Hash digest
SHA256 d37d21697d6c1ee69393ff7993f1c8d535c8a082b0ad731036717ef4711e0f68
MD5 a868c4f4cd4378974d650642d0164e69
BLAKE2b-256 6d8a3f2de1cfd81b1f57ff427be9d5b4772a16f96a985882f255ad2fe7285764

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page