Getting Started

Requirements

Installation Steps

  1. Download the project with git clone https://github.com/laravel-enso/enso.git --depth 1

  2. Within the project folder run composer install

  3. Create a database for your site (see the Laravel database documentation), copy or rename the .env.example file to .env, edit the database configuration information, and run php artisan key:generate

  4. In order to serve the back-end API, take a look at the Local Development Server section of the Laravel installation documentation and consider using Valet for a better experience

    Important: once you're chosen your app's name and set the APP_URL in your .env file, make sure you also add the domain to the list of domains in the SANCTUM_STATEFUL_DOMAINS. For example:

    ...
    APP_URL=http://enso.test
    ...
    SANCTUM_STATEFUL_DOMAINS=localhost,127.0.0.1,127.0.0.1:8000,localhost:8080,::1,enso.test
    
  5. Run php artisan migrate --seed

  6. Open the client folder, copy the .env.example file, save it as .env and set the URL for the back-end API (which you've configured at step 4)

  7. Run yarn && yarn build

  8. Launch the site and log into the project with user: admin@laravel-enso.com, password: password

  9. For live reload / hot module replacement functionality run client/yarn serve

Optional

  1. Setup the configuration files as needed in config/enso/*.php
  2. You may remove the following files from the cloned repository:
    • .styleci.yml
    • .travis.yml
    • docker-compose.yml (if not using Docker)

Enjoy!

Docker

Laravel Enso comes with a simple docker environment to help with development. By default, it has two containers, the enso container and the enso-mysql container. There is also an optional phpmyadmin container that can be used by removing the commented lines in docker-compose.yml.

Containers

  • The enso container runs the apache webserver and has yarn & composer installed.
  • The enso-mysql container handle's the database the default user is root with a blank password and the default database is enso
  • The enso-phpmyadmin container is optional and attaches a phpMyAdmin instance the the enso-mysql database.

Steps to use

  • Rename .env.example to .env and fill out the appropriate variables.
  • Run docker-compose up to start the containers. To daemonize the process run docker-compose up --build -d.
  • Enter into the enso container to begin the enso installation with docker exec -it enso bash
  • Install laravel enso following the guide.

Known issues

  • When you run php artisan migrate --seed, you may hit an error in the form SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 767 bytes. If so:
    • See this post for details on how to address the error.
    • After addressing the error, drop all tables from your site database (or delete and recreate the database), then run php artisan migrate --seed again.

Features

A solid starting project, based on Laravel 6, VueJS 2 (the build is done with VueCli, Bulma, integrated themes from Bulmaswatch, all the VueJS goodies such as VueEx and VueRouter, with features like:

  • Structure generator - powerful CLI that allows easy creation of new complex structures, generating all the needed files:

    • system files for:
      • structure migration that adds menus and permissions and permission groups
      • front-end routes & CRUD pages
      • back-end routes
    • boilerplate files for:
      • models and table migrations
      • form controller, builder and template
      • table controller, builder and template
      • select controller
      • request validator
  • Customizable and powerful datatables:

    • JSON templates
    • server side
    • multi-argument full column search
    • customizable column visibility
    • state save in localStorage for each table
    • automatic action buttons generation, depending on user permissions
    • custom action buttons as needed
    • beautiful tag rendering for boolean flag columns
    • easy display of flag/type columns values
    • server-side excel export for every table
  • Beautiful forms:

    • JSON templates
    • server side
    • validation
    • customizable
  • Vue select - server side builder with parameter conditioning, including pivot parameters

  • Advanced user groups / roles / permissions structure

  • Log management - view, download, clear

  • User action logger, so you can keep track of who's done what

  • User impersonation for easy support and debugging

  • Application interface tutorials based on the awesome Intro.js

  • Localisation support

  • Charts component with server side data builder, based on Chart.js

  • Comments component with support for tagging users

  • Documents component with upload, download and inline view

  • Ability to track who created, updated and deleted models, using traits

  • File uploader and file management library

  • Avatar functionality for all users

  • Ability to track the different versions of a model through its lifetime

  • Front-end date-picker and time-picker, based on Flatpickr

  • Server-side type-ahead

  • User, application-wide preferences - every user has the ability to choose his theme (from 10 variants), set the menu style, app language and more

  • Queueable jobs

  • Push notifications - working out of the box (requires Pusher)

  • Beautiful email notifications, that can published and customized to your heart's desire

  • Automatic breadcrumbs generation

  • Application-wide timestamp formatting customization through the configuration file

  • Separate front-end state support, so that it's easier to keep your application's logic and data separated from enso's

  • Optimistic concurrency control with versioning, via the Versioning and Versions the packages

  • many more helpers and hidden gems

Important

Recommended

If you are using this project please consult the Changelog on every update.