L55Starter is a Laravel 5.5.* starter project. The project aims to make it quicker to scaffold out a new project that
requires an ACL (access control list). The project has a basic admin panel with the bare necessities installed to manage
users, roles, and permissions using the spatie/laravel-permission package.
L55Starter project also uses the Laravel auth scaffolding so everything is already in place for user registration and
login.
An account verification system is also in place to verify account users email address on new account registration or
email address change.
For a Laravel 5.6.* framework version of the starter project go here.
The project uses the following packages.
Twitter Bootstrap 4 for styling. FontAwesome 5 for font icons, laracasts/flash for flash messaging. Select2 for select form fields. bootstrap-confirmation2 for confirm dialogs. spatie/laravel-permission for role and permission management.
The project was setup to use Apache 2 web server with a document root of "public_html" NOT "public" because I host all
my web applications on a WHM / cPanel VPS. I am sure with some minor tweaks the starter application could be used with
other setups. Like NGINX server for example.
Please note: it is possible to delete the admin user and role making it impossible to use the admin panel to create users, roles, and permissions. Do not delete the default admin user, role, or permissions unless you intended to do so.
Laravel is a web application framework with expressive, elegant syntax. We believe development must be an enjoyable and creative experience to be truly fulfilling. Laravel attempts to take the pain out of development by easing common tasks used in the majority of web projects, such as:
- Simple, fast routing engine.
- Powerful dependency injection container.
- Multiple back-ends for session and cache storage.
- Expressive, intuitive database ORM.
- Database agnostic schema migrations.
- Robust background job processing.
- Real-time event broadcasting.
Laravel is accessible, yet powerful, providing tools needed for large, robust applications.
To install clone the github project using git
git clone git@github.com:RodShaffer/l55starter.git
Change to the l55starter directory and run
composer install
Change permissions on the "bootstrap" and "storage" directories to make them write able.
sudo chmod -R 777 ./bootstrap
sudo chmod -R 777 ./storage
Setup a database and user, copy the ".env.example" file to ".env" and enter the database connection info into the copied ".env" config file.
Change everything else in the ".env" config file that is appropriate.
Make sure to also update all appropriate "MAIL_" variables with your "mailtrap.io" account settings in your applications
".env" config file if you would like to test the account verification system.
Modify all appropriate information in the "config/site.php" and "config/admin.php" configuration files.
Then run
php artisan key:generate
Migrate the database(php artisan migrate).
Seed the database(php artisan db:seed)
The database seeding will create three roles, one (admin) which is the main administrator account for the site and
therefore cannot be deleted through the admin panel GUI, two (user) this is the normal user account role, and three
(unverified) which is the unverified user account role.
Please note: Both the "user" and "unverified" roles are required for the account verification system to work correctly.
When a new user registers on the site, or an existing user changes their email address, the verification system, if need
be, removes the "user" role from the user, and assigns the "unverified" role to the user. When the user successfully
verifies their account the "unverified" role is removed and the "user" role is re-assigned.
The seeding will also setup the base permissions that are required to manage users, roles, permissions, and will create
the main administrator account and also assign the admin role to the newly created account. The admin user can then be
used to create more users, roles, and permissions.
Default admin login email is
admin@domain.com
Default admin password is
secret
Run npm install OR yarn install
Add a .htaccess to the "public_html" folder so routes get rewritten properly if needed. For an example look at
"public_html.htaccess.example" and replace "yourdomain.com" with the domain name your using for your web application.
The example .htaccess also redirects all requests to "https" so if your not using https for what ever reason make sure
to also change the "https" to "http" right before "yourdomain.com"
Browse to http://yourappdomain/admin to log into the admin panel
For the normal site
JavaScript and styles see "webpack.mix.site.js", "resources/assets/sass/app.scss", and
"resources/assets/sass/_variables.scss"
Layout file used "resources/views/layouts/app.blade.php"
For the admin panel
JavaScript and styles see "webpack.mix.admin.js", "resources/assets/sass/admin/admin.scss", and
"resources/assets/sass/admin/_variables.scss"
Layout file used "resources/views/admin/layouts/app.blade.php"
For further info check out my installation tutorial video and demonstration