logicent / crudle
Crudle
Installs: 10
Dependents: 0
Suggesters: 0
Security: 0
Stars: 10
Watchers: 3
Forks: 1
Open Issues: 0
Type:project
Requires
- php: ^7.4.0
- bizley/migration: ^4.1
- bizley/quill: ^3.3
- imaginary/yii2-fomantic-ui: ~2
- kint-php/kint: ^1.1
- knplabs/knp-snappy: ^1.2
- league/csv: ^9.7
- league/flysystem: ^1.0
- mikehaertl/phpwkhtmltopdf: ^2.2
- myclabs/php-enum: ^1.8
- phpoffice/phpspreadsheet: ^1.17
- phpoffice/phpword: ^0.18.1
- schmunk42/yii2-giiant: @stable
- spatie/db-dumper: ^2.21
- thamtech/yii2-uuid: ^1.2
- thamtech/yii2-yaml: ^0.3.2
- vlucas/phpdotenv: ^5.3
- yidas/phpspreadsheet-helper: ^1.3
- yii2mod/yii2-enum: *
- yiisoft/yii2: ~2.0.14
- yiisoft/yii2-bootstrap: ~2.0.0
- yiisoft/yii2-imagine: ^2.3
- yiisoft/yii2-jui: ^2.0
- yiisoft/yii2-redis: ^2.0
- yiisoft/yii2-shell: ^2.0
- yiisoft/yii2-swiftmailer: ~2.0.0
- zelenin/yii2-semantic-ui: ~2
Requires (Dev)
- codeception/specify: ~0.4.3
- codeception/verify: ~0.3.1
- yiisoft/yii2-debug: ~2.0.0
- yiisoft/yii2-faker: ~2.0.0
- yiisoft/yii2-gii: ~2.0.0
This package is auto-updated.
Last update: 2025-03-10 13:15:20 UTC
README
Note: This is a beta version of the software. You are advised to proceed with caution!
Introduction
Overview
A free and open source web development starter kit for building ready to go enterprise applications.
Installation
Prerequisites
- Git
- Composer
- NPM
Option 1: via Composer
- Run
composer create-project logicent/crudle:dev-main && cd crudle
Option 2: via CLI
- Run
git clone git@github.com:logicent/crudle.git && cd crudle
- Run
composer install
Continue:
- Create a database and update
sites/.env
settings - Run
./crudle migrate --migrationPath sites/database/migrations'
- Run
cat sites/database/scripts/crdl_People.sql | mysql -u <my_root_user> -p <my_db_name>
- Run
./crudle user/user/create-superuser 'my_password'
and./crudle user/rbac/init
- Run
./crudle serve -t sites/web
in local environment or use preferred web server in production
System Architecture
Context
Crudle (CRUD logic extensions) is a meta framework for rapid application development and customization using a modified project template, some predefined coding conventions and a fully-fledged admin backend built with Fomantic UI.
Containers
- backend (App)
- codegen (Kit)
- modules (Ext)
Components
Main page - to provide custom interaction components built for end-users
- Workspace - view the workspaces created to show favorite menus and widgets
- Dashboard - view the dashboards created using the dashboard + widgets tool
- Report - view the reports created with report builder to show query result
Setup page - to provide visibility and customization tools for end-users
- System - configure general settings and layout (UI) preferences and menus
- Data Tool - import and/or export data, create/modify domain master models
- Email Sending - create email notifications, templates, check email queues
- Data Storage - configure backups and manage file storage and system cache
- People - add users, user groups, roles and permissions and view user logs
- Printing - create print styles, print formats and configure print devices
App modules - contains core app functionality like auth, crud, email, map etc
- backend/database provides tool to interact with DB connection and storage
- backend/main to define app-level enums and provide reusable app functions
- backend/listing to display a set of records in multi-record visualization
- backend/workflow to define approval routing, change triggers and statuses
Ext modules
- modules/web_cms - to set up a website for data publishing and interaction
Sites
- sites/config to define global config settings
- sites/database to define DB scripts and seeds
- sites/storage to hold shared data & resources
- sites/web to define global JS and CSS scripts
Technology Stack
Programming Languages and Frameworks
- PHP 8.0 using Yii2 and JavaScript using jQuery
- Yii2-crudle dockerized (optional - todo later)
- Deploy via deployer (optional - todo later)
Templating
- Twig (to consider)
Databases Supported
- MySQL 8.0 (or equivalent MariaDB version)
- SQLite (to be tested)
- PostgreSQL (todo later)
- SQLite (offline) (todo later)
UI Frameworks, Components and Libraries
- Fomantic UI 2.9
- HTMX 2
- Fullcalendar 5.11
- LeafletJS 1.9
Web Servers
- PHP built-in web server via
./crudle serve -t sites/web
(Development) - Nginx via PHP-FPM (Production)
- RoadRunner 2 (todo later)
Process Manager (to consider)
- Development
- Production
Job Queues
- Redis (todo later)
Caching
- Redis (todo later)
Realtime
- Web sockets using HTMX 2 (todo later)
Command Line
- Using built-in commands via console app
Roadmap
Now:
- Increase the UI layout width, add a pinable sidebar and editable menus
- Improve all the end-user system tools, app preferences and performance
- Upgrade to latest Yii2 using PHP 8.0 and MySQL 8.0 and Fomantic UI 2.9
Next:
- Add multi-tenant (sites) support in template + init script for instances
- Email templates for sending mails + attachments of documents and reports
- Print templates and formatting styles (script) for documents and reports
- Create Yii extensions for the tools and starter kit as composer packages
Later:
- Write UI, workflows and DB tests using either PestPHP or PHPUnit
- Use hybrid of Php Auth Manager (predefined) and Db Auth Manager (user-defined)
- Upgrade to Yii3 (with CycleORM datamapper) using Bulma and Buefy
Want to contribute? Thank you for considering to make a contribution to Crudle. New contributors to improve the solution further or help provide support to issues are most welcome.
License Crudle is released under the BSD-3-Clause.