Giter Club home page Giter Club logo

ignition-go's Introduction

Ignition Go | Click here to lend your support to: Ignition Go - development fund and make a donation at pledgie.com !

A Modular App Building Framework - complete with front end, REST api and admin area

  • create "blox" modules to build enterprise class web applications
  • uses Codeigniter 3.x and Bootstrap 3.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. Planned example "blox" would be a bulk emailer, report manager, and many more!!!

In progress (see below folder structure for progress), contact us to help build the most amazing web app builder ever!

Please contact us to contribute.

Server Requirements (Preferred)

Installing (MUST DO ALL STEPS!)

  1. Install NPM node.js: package manager for node modules

  2. GIT clone this repository
    Example: git clone https://github.com/ci-blox/Ignition-Go.git myigosite

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

  4. Install Bower bower: manager for bower components
    Type: npm install -g bower

  5. Install all the NPM and bower components
    Type: npm install then
    Type: bower install

  6. Install and run 'gulp' (note that gulp will run continuously in 'watch' mode, watching for css and js changes).
    Type: npm install gulp then
    EITHER type: gulp OR.. type: gulp serve

  7. (Optional, required in production) In Apache, map the public folder to localhost or other url Example: in your httpd-vhosts.conf file, add new section and restart Apache

  8. Create an empty mysql db Example: use HeidiSQL and create both a database and a user with privileges to new database

  9. Go to http://[your web root from step 5]/install/init in your browser to finish using install wizard eg if you had created virtual host igotestlocal.com, then go to http://igotestlocal.com/install/init in your browser

Features

Ignition Go will be a jumpstart for your rapid development:

  • Multi-faceted (e.g. Frontend Website, Authorized User Area, 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
  • Admin Panel with AdminLTE v2 theme
  • Includes usage of Sortable library and many other 3rd party optional libraries via Bower, Composer, or NPM
  • API Site to handle RESTful endpoints
  • User authentication (optional) for 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)
  • Frontend theme (default) is integrated to preview and work easily with over 16 free Bootswatch themes

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
        securinator/            --- A module for roles, permissions, security settings
        translate/ **           --- A module to 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
ignitcore/                         --- Ignition Go core files
ignitcore/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
  • Bower bower: manager for bower components
  • GulpJS gulp: task runner to compile, combine, and minify
  • Guzzle guzzle: integrated for use as a REST client or for complex curl operations

Documentation

There are several markdown files with information on various features. Here is a listing of some key concepts documents:

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.

ignition-go's People

Contributors

boblennes avatar kenjis avatar

Watchers

Rossel Gergely avatar

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.