Code Monkey home page Code Monkey logo

ci-blox / ignition-go Goto Github PK

View Code? Open in Web Editor NEW
181.0 33.0 84.0 11.93 MB

Bootstrap4 /Codeigniter 3 Modular (HMVC) App Building Framework - to build enterprise class web applications... Versions: CodeIgniter 3.1.9 AdminLTE 3.0.5 Bootstrap 4.5.0

Home Page: http://ci-blox.github.io/Ignition-Go/

License: Other

PHP 51.89% HTML 0.93% JavaScript 32.02% CSS 11.27% Hack 0.72% SCSS 3.17%
modular gulp codeigniter enterprise framework mysql admin-dashboard php php7 adminlte

ignition-go's Introduction

Ignition Go | Donate

 Status:

A Modular (HMVC) App Building Framework - complete with front end, REST api, and 2 admin areas (Admin / Secure)

  • create "blox" modules to build enterprise class web applications
  • uses Codeigniter 3.x and Bootstrap 4.x.x
  • can be used as a quickstart project starter/boilerplate
  • What are blox? "Blox" are just pluggable modules or applets that are commonly used in web applications. Ignition Go includes a web-based generator (see BuildABlox). Planned example "blox" would be a bulk emailer, report manager, and many more!!!

Documentation

Documentation is now available: [Ignition-Go Documentation on GitHub] (http://ci-blox.github.io/Ignition-Go/#/concepts/ACL) Take a look at the key concepts documents and also see the /docs folder for more.

Server Requirements (Preferred)

  • PHP 7.3 you can run in lower (5.6) but the recommended version for production to use is PHP 7.3 for your projects. PHP 7.3 is now supported in the latest code and anything below PHP 7.3 is no longer officially supported.
  • Apache 2.4+ with rewrite mod enabled
  • MySQL 5.5+ or MariaDb

Installing

****NOTE: now using Yarn for packages (so Bower is not needed / optional).

  1. GIT clone this repository

Example: git clone https://github.com/ci-blox/Ignition-Go.git myigoapp

  1. Either:
    2a) use Yarn and Gulpjs (highly recommended for non-experts) - go to step 3
    -or-
    2b) map your webserver to the 'public' folder to use pre-installed versions of packages
    (skip to step 8)

  2. Install NPM node.js: package manager for node modules, and [install Yarn] (https://yarnpkg.com/lang/en/docs/install/)

  3. Change directory to new site/web app root
    Example: cd myigoapp

  4. Install all the packages and components
    Type: yarn install

  5. Create an empty mySql or MariaDb database (default db name is ci_blox) and a user (default is root/no password). Note that the database.php file in application/config contains these configuration settings.

Example: use a tool like HeidiSQL or phpMyAdmin and create both a database and a user with privileges that new database

  1. Run 'gulp' (note that gulp will run continuously in 'watch' mode, watching for css and js changes).
    then
    EITHER type: gulp
    OR.. type: gulp serve OR.. type: gulp build which just rebuilds the JS and CSS

  2. (Optional, required if no gulp or in production) In Apache, map the 'public' folder to localhost or other url

Example: in your httpd-vhosts.conf file, add new <VirtualHost> section and restart Apache

  1. Go to http://[your-web-root-from-step-7]/install/init in your browser to finish using install wizard

eg if you used gulp, goto http://localhost:8080/install/init
if you had created virtual host igotestlocal.com, then go to http://igotestlocal.com/install/init in your browser

Features

Ignition Go is a jumpstart for your rapid development:

  • Multi-faceted (e.g. Frontend Website, Authorized User Only modules, Admin Panel, and API) website in a single application
  • Modular design using CodeIgniter HMVC extension
  • Custom config files (sites.php, locale.php) for easy configuration of website behavior
  • Frontend with multiple themes (with over 16 free Bootswatch themes)
  • Admin Panel with AdminLTE v3 theme
  • Includes usage of many other 3rd party optional libraries via Composer, NPM or Yarn
  • API Site to handle RESTful endpoints
  • User authentication (optional) for secure area in Frontend Website (Sign Up, Login, Forgot Password, et al)
  • User authentication for Admin Panel (Login, Change Password, et al)
  • Preset layouts and templates
  • Preset asset pipeline (e.g. minify scripts, image optimization) via Gulp (reference from gulp-starter 2.0 branch)
  • Buildablox blox module/form builder to generate blox and CRUD form views with Bootstrap theme, form validation
  • Breadcrumb and Pagination handling
  • Multilingual support
  • Email config setup
  • CLI utility functions (e.g. cron job, database backup)
  • Guzzle client integrated as library (use instead of Curl)
  • Use gulp serve to instantly see updates to code

Folder Structure

Folder structure (most but not all folders shown). **=not available yet

application/                    --- Main application (CodeIgniter) source folder
    config/                     --- Config files
        production/             --- Override Configuration when ENVIRONMENT is set as "production"
    controllers/                --- Controllers for Frontend Website; extends from MX_Controller, Base_Controller or Front_Controller
        Cli.php                 --- Utility function that can only be called from command line
        Home.php                --- Default controller for Frontend Website        
    core/                       --- Extending CodeIgniter core classes; can also be used within modules (MY_????.php); Also extendable controllers here
    helpers/                    --- Contains custom helper functions being used throughout this repo
    language/                   --- Preset language files
    lib/                        --- Custom libraries (e.g. Data Importer)
    models/                     --- Sample model extending from MY_Model
    toolblox/ **                --- Each blox module can be installed or removed
    modules/                    --- Each module can be accessed by http://{base_url}/{module_name}/{module_controller}/, etc.
        admin/                  --- Module for Admin Panel
            config/             --- Configuration for Admin Panel (overriding application/config/)
            controllers/        --- Controllers for Admin Panel; also extends from MY_Controller
            helpers/            --- Helper classes, e.g. to generate AdminLTE widgets
            lib/                --- Libraries admin 
            models/             --- Models only being used in Admin panel
            views/              --- Views for Admin Panel; can reuse Frontend views, or override by using same path/filename
        api/                    --- A module specific for REST API endpoints
        buildablox/             --- A module to generate and add/remove blox
        logs/                   --- A module for viewing the daily logs
        securinator/            --- A module for roles, permissions, security settings
        translate/              --- A module to edit  (and auto-generate**) translations
    third_party/
        MX/                     --- Required for HMVC extension
    views/                      --- Views for Frontend Website
public/                         --- SITE ROOT (point Apache here)
public/assets/
    css/                        --- Custom CSS files append to each site
    dist/                       --- Minified scripts, stylesheets (and optionally) optimized images via Gulp tasks
    fonts/                      --- Font files copied via Gulp tasks
    img/                        --- Source image files before optimization
    js/                         --- Custom CSS files append to each site
    uploads/                    --- Default directory of upload files, where permission should set as writable
gulpfile.js/                    --- Task runner following gulp-starter 2.0 practice
sql/                            --- MySQL files
igocore/                         --- Ignition Go core files
igocore/system/                         --- CodeIgniter core files (clean CI3 installation with modifications only to reference IGO core)

Asset Customization (e.g. additional js/css files)

A gulp configuration (gulpfile.js) is included. It utilizes package and component tools from these sites:

  • NPM node.js: package manager for node modules
  • Yarn: package manager
  • GulpJS gulp: task runner to compile, combine, and minify
  • Guzzle guzzle: integrated for use as a REST client or for complex curl operations

Help wanted please: contact us to help enhance this amazing web app builder!

Please contact us to contribute.

Acknowledgements

Special thanks to the Bonfire project and those who contributed to it - many features and infrastructure concepts were inspired or incorporated outright from that project. Also thanks to all the projects like GuzzlePHP and countless others that are open source, whose components are incorporated and allow this initiative to exist. Finally, thanks especially to the CodeIgniter team, with whom CodeIgniter continues to thrive!

ignition-go's People

Contributors

boblennes avatar dependabot[bot] avatar kenjis avatar larsenharvey avatar shinsoublue avatar stylecibot avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ignition-go's Issues

Where are the change password / register new user etc.

I have installed and got it working - I cannot say "all working", as many of the items mentioned in the README are not there and certainly do not function.
Reading the documents gave me to believe that this takes up from where bonfire left off - very disappointed, bonfire does way more out of the box, stuff I do not wish to code and develop - like auth and registration and user management - all of which bonfire does quite well, saves me lots of work.
Ignition-Go should be Ignition-Pause-not-yet-ready-to-go
Also the yarn install does little, I needed to download the zip file and unpack into the document root - so install instructions need work too.
Pity, I thought the upgrades to bootstrap and jquery etc would be worth having and hence spent time going after this only to find it is only a shell. Fortunately bonfire 0.84 with codeigniter 3.1.8 is simple to achieve.
Wish you all the best, and suggest you alter your definition of the project to reflect actual deliverable and not a wish list of what might be possible.

Blox is not like Wordpress Plugin

My Views:

  1. One table should be used for all modules i.e we dont create tables everytime we create a module/plugin. We just upload a zipped file which has a config for fields and other options.

  2. A module can have its own uri e.g. a "Contents module" for creating pages can have its own uri ending with /content/name-of-contet (e.g. /content/about) Though it would be better for pages if the uri ended with /page-name. (This is what i thought blox could do it quickly before i tried it).

Good luck...

Modules Folder

Just for curiosity, is there any reason to move /modules folder from application/modules to igocore/modules?

In readme.md file, you specified /modules folder under the application but there is only api available, the others reside in igocore/modules.

Issue with installing on nginx

I have multiple web apps over my server. so I use nginx and set root folders in config.
File Structure
/var/www/html/projname

nginx block
location /projname{
index index.php;
root /var/www/html/projname/public;
try_files $uri $uri/ /projname/public/index.php?$args;
}

When I hit http://domain.tld/projname/install/init
It says, Your Web Root should be set to the public folder,but it's not. It's pointing to the Root folder.
Am I mission something?

Just Downloaded and Try

But admin password is incorrect. Im using quickstart branch. No other way to reset the admin password?

Cannot install the latest version

Hi, i've downloaded the master version. Try to install it on local machine, and i get

image

I don't get any error if i run the sql via PhpMyadmin. I'm using Php 7.1.7. I have followed the install steps btw. What should i do to fix it? Thanks..

Time of the build really long with Gulp

Since more than 12 hours yet the build phase with gulp was not completed

root:/srv/ignition/gulpfile.js# ps -eo pid,cmd,etime | grep gulp

9462 gulp 12:19:03

The current status after 12 hours:
root:/srv/ignition# gulp

[22:33:47] Using gulpfile /srv/ignition/gulpfile.js
[22:33:47] Starting 'default'...
[22:33:47] Starting 'build'...
[22:33:47] Starting 'clean'...
[22:33:47] Finished 'clean' after 28 ms
[22:33:47] Starting 'copy:fonts'...
[22:33:47] Finished 'copy:fonts' after 14 ms
[22:33:47] Starting 'copy:scripts'...
[22:33:47] Finished 'copy:scripts' after 518 μs
[22:33:47] Starting 'copy'...
[22:33:47] Finished 'copy' after 15 μs
[22:33:47] Starting 'images'...
[22:33:47] Starting 'cssmin:frontend'...
[22:33:47] Starting 'cssmin:admin'...
[22:33:47] Starting 'uglify:frontend'...
[22:33:47] Starting 'uglify:admin'...
[22:33:47] gulp-imagemin: Minified 0 images
[22:33:47] Finished 'images' after 68 ms
[22:33:49] Finished 'cssmin:frontend' after 1.96 s
[22:33:49] Finished 'cssmin:admin' after 1.95 s
[22:33:49] Starting 'cssmin'...
[22:33:49] Finished 'cssmin' after 7.25 μs
[22:33:49] Finished 'uglify:admin' after 1.94 s
[22:33:49] Finished 'uglify:frontend' after 1.94 s
[22:33:49] Starting 'uglify'...
[22:33:49] Finished 'uglify' after 7.94 μs
[22:33:49] Finished 'build' after 2.02 s
[22:33:49] Starting 'watch'...
[10:06:58] Starting 'uglify:frontend'...
[10:06:58] Starting 'uglify:admin'...
[10:06:58] Starting 'cssmin:admin'...
[10:06:58] Starting 'cssmin:frontend'...
[10:06:58] Finished 'uglify:admin' after 35 ms
[10:06:58] Starting 'watch:js-admin'...
[10:06:58] Finished 'watch:js-admin' after 34 μs
[10:06:58] Finished 'cssmin:admin' after 74 ms
[10:06:58] Starting 'watch:css-admin'...
[10:06:58] Finished 'watch:css-admin' after 24 μs
[10:06:58] Finished 'cssmin:frontend' after 68 ms
[10:06:58] Starting 'watch:css-frontend'...
[10:06:58] Finished 'watch:css-frontend' after 27 μs
[10:07:00] Finished 'uglify:frontend' after 1.43 s
[10:07:00] Starting 'watch:js-frontend'...
[10:07:00] Finished 'watch:js-frontend' after 22 μs

Error : dbname.users doesn't exist

Last step of the installation, Ignition-Go throwing the following error message :

Error Number: 1146
Table 'inventory.users' doesn't exist

When I check the related files, User_model.php has an insert method which is calling parent::insert function. Parent class, which is IGO_Model, has a protected $table_name property. This property has been set 'users' in User_Model.php.

Authenticated Controllers

When I create a module with an admin, public, and authenticated controller, if I go to view that module while I'm signed in, it shows a login button anyway in the upper right as well as a read only view of the module itself (which seems more appropriate for a public view unless of course this is by design). Regardless of how the module is supposed to display to an authenticated user, it certainly shouldn't be showing a login button that disappears and kicks me back to the home page (as I'm already signed in) when I click on it.

PHP Mcrypt Extension

As you might know, in Php 7.2 edition, Mcrypt deprecated so Ingition-Go can't go next step in install. I did some research on internet for windows edition of the extension but no success. If it's not mandatory, could you please remove from installation?

Blox Errors and no table created

I got the following error: (written on Public.php)
Message: Undefined variable: createSave
Filename: files/controller.php
Line Number: 316

Also: Admin Backend does not give the option to edit blox module.
** Alot of things dont work on admin backend and also the URL to admin is not /Admin or /somethingeasy

Installation failed with pre-installed versions

Hi there,
As requested I cloned the project and map the 'public' folder
like this with my virtual host

<VirtualHost *:80>
	ServerName mybesite	
	DocumentRoot /var/www/v1/public
	<Directory /var/wwwww/v1/public/>
		Options +Indexes +Includes +FollowSymLinks +MultiViews    
		FollowSymLinks options  
		AllowOverride All
		Require local  
	</Directory>  
</VirtualHost>

When I go on website in my brower, it's work like charm and display : Kickstart your applications with Ignition Go. etc..
But /install/init or /admin still return 404

I don't use xamp or wamp
Server version: Apache/2.4.41 (Ubuntu)
php 7.1
mysql 5.5

Performance log [Request]

Amazing work. I want to use it for an API REST, how is it performance compared with other micro frameworks like lumen etc..? (Why I would use this? Because ci). Thank you.

Error when run gulp

I got error when try to run gulp
Please check attached file and give me solution
gulp-error

new installation

Hello
I'm trying to install ignition go but there are problems
I use php 7.3
I followed the guide
1 I configured virtual host, mine is virtualhost: 8880
2 I fixed IGO_ROUTER (STRPOS) problem, temporarily I posed @ to 'each'
3 I loaded the sql file
4 ... if I go to localhost: 8880 / install / init, page not found (404) appears
how can i install ignition go?
config / config.php file
`$ base_url = 'http: // localhost: 8880';
if (isset ($ _ SERVER ['HTTP_HOST']) && preg_match ('/ ^ (([0-9a-f:] +]) (d {1,3} (d {1 , 3}) {3}) | [a-z0-9 -.] +) (: D +)? $ / I ', $ _SERVER [' HTTP_HOST ']))
{
$ base_url = (is_https ()? 'https':' http ').': //'.$_SERVER ['HTTP_HOST']
.substr ($ _ SERVER ['SCRIPT_NAME'], 0, strpos ($ _ SERVER ['SCRIPT_NAME'], basename ($ _ SERVER ['SCRIPT_FILENAME'])));
}

$ config ['base_url'] = $ base_url;`

Is ACL included?

Hi, is ACL included in this framework? Thanks for the great framework by the way.

The QuickStart version doesn't contain dependencies

I install the quickStart version but it seems to be the same as the master:
The front-end appears, but no database was create and no dependencies were includes.
If i call the url /install/init the screen ask me to run bower and gulp.
ignition

Module Creation

@boblennes

I've noticed some minor issues in Module creation (especially pertaining to unix based case sensitive systems). Models for some reason are output with lowercase names, and the folders themselves (mainly module->module_name->Admin are written with uppercase names which both cause errors before renaming.

Missing bootstrap css and js file after install

Hi, after i install the framework and run the application. I get 404 error message regarding the missing bootstrap css and js file. I have followed the tutorials by using nodejs and gulp. Please advise. Btw i'm using windows 10. Thanks.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.