Skip to content

A production-ready full-stack PHP framework for rapid development of data-driven web applications and APIs. Boost your PHP development speed for data-driven forms, charts, and dashboards by 10x! The best friend for indiehackers and small businesses.

License

Notifications You must be signed in to change notification settings

AlecBS/WizardsToolkit

Repository files navigation

Wizard's Toolkit (WTK)

Apache License 2.0 PHP Version MySQL Version PostgreSQL Maintenance

πŸš€ A powerful, production-ready full-stack development framework for building modern web applications. Enterprise-grade, Docker-ready, and continuously maintained since 2009.

πŸ“š Documentation β€’ πŸŽ“ Tutorials β€’ πŸ”₯ Live Demo β€’ ⚑ Quick Start

Table of Contents

Overview

Wizard's Toolkit (WTK) is a powerful full-stack development framework combining PHP, SQL, JavaScript, and MaterializeCSS. Originally created in 2009 and continuously maintained, WTK streamlines the development of data-driven websites and mobile applications. The framework has evolved through multiple PHP versions and is currently optimized for PHP 8.1 while maintaining compatibility with earlier versions.

It provides a comprehensive solution for building and maintaining full-featured data-driven websites and mobile apps quickly and efficiently. The repository includes SQL table definitions, initial data, PHP components, HTML templates, CSS styling, and JavaScript functionality, along with extensive documentation created via phpDocs and numerous demo files.

🌐 Website: https://wizardstoolkit.com

Key Features

  • Full-Stack Solution: Integrated PHP, SQL, JavaScript, and MaterializeCSS
  • Database Flexibility: Seamless support for both MySQL 8.3 and PostgreSQL
  • Docker-Ready: Complete development environment setup in under 2 minutes
  • Modern Stack:
    • Nginx with Alpine for lightweight performance
    • PHP 8.1 with PDO support
    • MySQL 8.3 or PostgreSQL latest
    • Development tools (phpMyAdmin for MySQL)
  • Enterprise-Grade: Production-tested since 2009 with continuous updates
  • Extensive Documentation: Includes API docs, demos, and tutorials
  • Version Compatibility: Supports PHP 5.4 through 8.1

Quick Start with Docker

Prerequisites

  1. For Windows Users:

    • WSL2 with Ubuntu 20.04 LTS
    • Docker Desktop
    • Docker Hub account (free)
  2. For Mac Users:

    • Docker Desktop
    • Docker Hub account (free)

Basic Setup

  1. Clone the Repository:

    git clone https://github.com/AlecBS/WizardsToolkit.git
    cd WizardsToolkit
  2. Initialize Environment:

    ./WTK.sh
  3. Choose and Setup Database:

    • For MySQL:
      ./SETUP_MYSQL.sh
    • For PostgreSQL: Automatic setup on first launch
  4. Verify Installation: Visit http://127.0.0.1/devUtils/testWTK.php to confirm:

    • Database connectivity
    • Environment variables
    • Email functionality
    • Set admin password

Access Points

Project Structure

WizardsToolkit/
β”œβ”€β”€ app/                # Application source files
β”œβ”€β”€ config/             # Configuration settings
β”œβ”€β”€ SQL/                # Database scripts and migrations
β”‚   β”œβ”€β”€ mySQL/          # MySQL specific scripts
β”‚   └── postgresql/     # PostgreSQL specific scripts
β”œβ”€β”€ Mounts/             # Docker volume mount points
└── *.sh                # Utility scripts

Configuration

Local Development Setup

  1. Host Configuration (Optional but recommended):

    # Add to /etc/hosts
    127.0.0.1   dev.wtk.com
    
  2. Environment Settings: Edit your database-specific config:

    # In phpMySQL.env or phpPG.env
    URL = "http://dev.wtk.com"  # or http://127.0.0.1

Database Configuration

Choose your preferred database:

MySQL (Default):

  • Use existing configuration
  • Data location: /Mounts/mydata
  • Access via phpMyAdmin or CLI

PostgreSQL:

  • Rename docker-composePG.yml to docker-compose.yml
  • Data location: /Mounts/pgdata
  • Connect using DBeaver or preferred client
  • Connection details:
    Database: pgwiztools
    Username: wizdba
    Password: See docker-compose.yml
    

Development Tools

Utility Scripts

  • WTK.sh: Initialize environment
  • START_CONTAINERS.sh: Launch services
  • STOP_CONTAINERS.sh: Stop all containers
  • REBUILD_CONTAINERS.sh: Rebuild environment
  • RESTART_WEBSITE.sh: Quick service restart
  • SETUP_MYSQL.sh: Initialize MySQL database
  • MYSQL.sh: MySQL CLI access

Database Management

MySQL (via phpMyAdmin)

Access phpMyAdmin at http://127.0.0.1:8080/ or http://dev.wtk.com:8080/

  1. Login:

    • Username: root
    • Password: (see docker-compose.yml)
  2. Basic Operations:

    • Select wiztools database from the left sidebar
    • Browse tables and data using the GUI interface
    • Execute SQL queries using the "SQL" tab
    • Import/Export data using the corresponding tabs
  3. Common Tasks:

    • View table structure: Click table name β†’ "Structure"
    • Browse data: Click table name β†’ "Browse"
    • Add records: Click table name β†’ "Insert"
    • Backup database: Export β†’ "Quick" or "Custom"

PostgreSQL

Connection Details:

  • Database: pgwiztools
  • Username: wizdba
  • Password: (see docker-compose.yml)

Recommended PostgreSQL GUI Client: DBeaver (free)

Note: Ensure no local PostgreSQL server is running before starting the Docker containers.

Documentation & Resources

License

This project is licensed under the Apache License 2.0 - see the LICENSE file for details.

Troubleshooting

Common Issues

  1. Docker Build Failure:

    export DOCKER_BUILDKIT=0
    ./WTK.sh  # Retry build
  2. Database Reset:

    ./STOP_CONTAINERS.sh
    rm -rf /Mounts/mydata  # For MySQL
    # or
    rm -rf /Mounts/pgdata  # For PostgreSQL
    ./START_CONTAINERS.sh
    ./SETUP_MYSQL.sh  # MySQL only
  3. Port Conflicts:

    • Ensure ports 80 and 443 are available
    • Stop any running web servers (Apache, Nginx)
    • Choose between MAMP or Docker, not both
  4. First-Time Setup:

    • Database initialization takes ~1-2 minutes
    • Monitor progress in DockerDesktop
    • Wait for database container to be fully ready
  5. Connection Issues:

    • Verify Docker containers are running
    • Check ports are not blocked by firewall
    • Ensure correct URL configuration in env files

Security

For security-related issues, please use our contact form.


Built and maintained with ❀️ since 2009

About

A production-ready full-stack PHP framework for rapid development of data-driven web applications and APIs. Boost your PHP development speed for data-driven forms, charts, and dashboards by 10x! The best friend for indiehackers and small businesses.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published