Awesome
Larablog
A powerful open source Laravel Blog with WYSWYG and CRUD (Create Read Update Delete) built on Laravel 5.8 and Bootstrap 4
Table of contents
- Features
- Installation Instructions
- Seeds
- Commands
- Configs
- Routes
- Screenshots
- File Tree
- Opening an Issue
- License
Features
Larablog Features |
---|
Built on Laravel 5.8 |
Built on Bootstrap 4 |
Front End Built on Start Bootstrap - Clean Blog |
Admin Built on Paper Dashboard 2 |
Uses MySQL Database (can be changed) |
Uses Artisan to manage database migration, schema creations, and create/publish page controller templates |
Dependencies are managed with COMPOSER |
Laravel Scaffolding User and Administrator Authentication. |
CRUD (Create, Read, Update, Delete) User Management with Laravel Users Package |
CRUD (Create, Read, Update, Delete) Blog Posts |
CRUD (Create, Read, Update, Delete) Tags |
Built in CKEditor WYSWYG Editor |
Google reCaptcha Protection with Google API |
Robust File Manager using UniSharp Laravel File Manager Package |
Makes us of Laravel Mix to compile assets |
Makes use of Language Localization Files |
Active Nav states using Laravel Requests |
User Roles/ACL Implementation |
Admin PHP Information UI using Laravel PHP Info Package |
Activity Logging using Laravel-logger |
Uses Laravel built in mail services |
Automatic sitemap generation with Spatie Laravel Sitemap Package |
Automatic RSS Feed generation with Spatie Laravel Feed Package |
Uses Laravel Debugbar Package for local debugging |
Generate sitemap through the admin panel or the CLI with Artisan. |
Front-end bootstrap themes with admin management panel |
Installation Instructions
- Run
git clone https://github.com/jeremykenedy/larablog.git larablog
- Create a MySQL database for the project
mysql -u root -p
, if using Vagrant:mysql -u homestead -psecret
create database larablog;
\q
- From the projects root run
cp .env.example .env
- Configure your
.env
file - Run
composer install
from the projects root folder - From the projects root folder run:
php artisan vendor:publish --tag=laravelroles
- From the projects root folder run
php artisan key:generate
- From the projects root folder run
php artisan migrate
- From the projects root folder run
composer dump-autoload
- From the projects root folder run
php artisan db:seed
- Compile the front end assets with npm steps or yarn steps.
Build the Front End Assets with Mix
Using NPM:
- From the projects root folder run
npm install
- From the projects root folder run
npm run dev
ornpm run production
- You can watch assets with
npm run watch
Using Yarn:
- From the projects root folder run
yarn install
- From the projects root folder run
yarn run dev
oryarn run production
- You can watch assets with
yarn run watch
And thats it with the caveat of setting up and configuring your development environment. I recommend Laravel Homestead
Seeds
- DatabaseSeeder.php
- PermissionsTableSeeder.php
- RolesTableSeeder.php
- ConnectRelationshipsSeeder.php
- UsersTableSeeder.php
- TagTableSeeder.php
- PostTableSeeder.php
Seeded Roles
Role | Level |
---|---|
Unverified | Level 0 |
User | Level 1 |
Writer | Level 2 |
Moderator | Level 3 |
Admin | Level 4 |
Super Admin | Level 5 |
Seeded Permissions
- view.users
- create.users
- edit.users
- delete.users
- perms.super-admin
- perms.admin
- perms.moderator
- perms.writer
- perms.user
Seeded Users
Password | Access | |
---|---|---|
admin@admin.com | password | Super Admin Access |
- Controlled by the
.env
file.
Themes Seed List
Commands
Generate Site Map
- You can generate a XML sitemap which is located at
/sitemap.xml
with the following Artisan Command:
php artisan sitemap:generate
or php artisan sitemap:generate {limit}
{limit}
is the number of pages that the sitemap generator will limit to generating.
- The sitemaps default number of pages is controlled by the
.env
variableBLOG_SITEMAP_LIMIT
Configs
Config File
Here is a list of the custom config files that have been added or modified to the project:
- blog.php
- admin.php
- laravel-logger.php
- laravelPhpInfo.php
- laravelusers.php
- roles.php
- superadmin.php
- sitemap.php
- filesystems.php
Env Variables
Here is a list of the additonal added .env
variables:
INITIAL_SEEDED_SUPER_ADMIN_USERNAME='Admin'
INITIAL_SEEDED_SUPER_ADMIN_USEREMAIL='admin@admin.com'
INITIAL_SEEDED_SUPER_ADMIN_USERPASSWORD='password'
BLOG_APP_NAME="${APP_NAME}"
BLOG_DEFAULT_TITLE='Lara(b)log2'
BLOG_DEFAULT_SUBTITLE='An open source blog platform'
BLOG_DEFAULT_DESCRIPTION='Larablog 2 is an open source blog built on Laravel'
BLOG_DEFAULT_AUTHOR='Jeremy Kenedy'
BLOG_SITEMAP_LIMIT=100
BLOG_DEFAULT_IMAGE=
BLOG_HOME_IMAGE=
BLOG_AUTHORS_IMAGE=
BLOG_AUTHOR_IMAGE=
BLOG_CONTACT_IMAGE=
BLOG_SM_URL_TWITTER=
BLOG_SM_URL_FACEBOOK=
BLOG_SM_URL_LINKEDIN=
BLOG_SM_URL_GOOGLEPLUS=
BLOG_SM_URL_GITHUB=
BLOG_DISQUSSHORTNAME=null
BLOG_GOOGLEANALYTICSID=null
BLOG_RSS_FEED_URL='/blog.rss'
BLOG_RSS_FEED_TITLE='My Blog feed'
BLOG_DEFAULT_PAGES_PER_PAGE=10
BLOG_DEFAULT_REVERSE_PAGINATION_DIRECTION=false
BLOG_DEFAULT_CONTACT_EMAIL=null
BLOG_UPLOADS_ENVIRONMENT=null
BLOG_UPLOADS_WEBPATH=null
ADMIN_DEFAULT_PAGES_PER_PAGE=100
LARAVEL_LOGGER_ROLES_MIDDLWARE=permission:perms.super.admin
LARAVEL_LOGGER_MIDDLEWARE_ENABLED=true
LARAVEL_LOGGER_USER_MODEL=App\Models\User
LARAVEL_LOGGER_LAYOUT=layouts.admin
# https://www.google.com/recaptcha/admin#list
ENABLE_RECAPTCHA=false
RECAPTCHA_SITE=YOURGOOGLECAPTCHAsitekeyHERE
RECAPTCHA_SECRET=YOURGOOGLECAPTCHAsecretHERE
RECAPTCHA_CDN=https://www.google.com/recaptcha/api.js
Language Files
Routes
+--------+----------------------------------------+---------------------------------------------------+------------------------------+---------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------+
| Domain | Method | URI | Name | Action | Middleware |
+--------+----------------------------------------+---------------------------------------------------+------------------------------+---------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------+
| | GET|HEAD | / | home | App\Http\Controllers\BlogController@index | web,activity |
| | GET|HEAD | _debugbar/assets/javascript | debugbar.assets.js | Barryvdh\Debugbar\Controllers\AssetController@js | Barryvdh\Debugbar\Middleware\DebugbarEnabled |
| | GET|HEAD | _debugbar/assets/stylesheets | debugbar.assets.css | Barryvdh\Debugbar\Controllers\AssetController@css | Barryvdh\Debugbar\Middleware\DebugbarEnabled |
| | DELETE | _debugbar/cache/{key}/{tags?} | debugbar.cache.delete | Barryvdh\Debugbar\Controllers\CacheController@delete | Barryvdh\Debugbar\Middleware\DebugbarEnabled |
| | GET|HEAD | _debugbar/clockwork/{id} | debugbar.clockwork | Barryvdh\Debugbar\Controllers\OpenHandlerController@clockwork | Barryvdh\Debugbar\Middleware\DebugbarEnabled |
| | GET|HEAD | _debugbar/open | debugbar.openhandler | Barryvdh\Debugbar\Controllers\OpenHandlerController@handle | Barryvdh\Debugbar\Middleware\DebugbarEnabled |
| | GET|HEAD | activity | activity | jeremykenedy\LaravelLogger\App\Http\Controllers\LaravelLoggerController@showAccessLog | web,auth,activity |
| | DELETE | activity/clear-activity | clear-activity | jeremykenedy\LaravelLogger\App\Http\Controllers\LaravelLoggerController@clearActivityLog | web,auth,activity |
| | GET|HEAD | activity/cleared | cleared | jeremykenedy\LaravelLogger\App\Http\Controllers\LaravelLoggerController@showClearedActivityLog | web,auth,activity |
| | GET|HEAD | activity/cleared/log/{id} | | jeremykenedy\LaravelLogger\App\Http\Controllers\LaravelLoggerController@showClearedAccessLogEntry | web,auth,activity |
| | DELETE | activity/destroy-activity | destroy-activity | jeremykenedy\LaravelLogger\App\Http\Controllers\LaravelLoggerController@destroyActivityLog | web,auth,activity |
| | GET|HEAD | activity/log/{id} | | jeremykenedy\LaravelLogger\App\Http\Controllers\LaravelLoggerController@showAccessLogEntry | web,auth,activity |
| | POST | activity/restore-log | restore-activity | jeremykenedy\LaravelLogger\App\Http\Controllers\LaravelLoggerController@restoreClearedActivityLog | web,auth,activity |
| | GET|HEAD | admin | admin | App\Http\Controllers\Admin\AdminController@index | web,auth,permission:perms.user,activity |
| | GET|HEAD | admin/filemanager | unisharp.lfm.show | UniSharp\LaravelFilemanager\Controllers\LfmController@show | web,auth,\UniSharp\LaravelFilemanager\Middlewares\MultiUser,\UniSharp\LaravelFilemanager\Middlewares\CreateDefaultFolder |
| | GET|HEAD | admin/filemanager/crop | unisharp.lfm.getCrop | UniSharp\LaravelFilemanager\Controllers\CropController@getCrop | web,auth,\UniSharp\LaravelFilemanager\Middlewares\MultiUser,\UniSharp\LaravelFilemanager\Middlewares\CreateDefaultFolder |
| | GET|HEAD | admin/filemanager/cropimage | unisharp.lfm.getCropimage | UniSharp\LaravelFilemanager\Controllers\CropController@getCropimage | web,auth,\UniSharp\LaravelFilemanager\Middlewares\MultiUser,\UniSharp\LaravelFilemanager\Middlewares\CreateDefaultFolder |
| | GET|HEAD | admin/filemanager/cropnewimage | unisharp.lfm.getCropimage | UniSharp\LaravelFilemanager\Controllers\CropController@getNewCropimage | web,auth,\UniSharp\LaravelFilemanager\Middlewares\MultiUser,\UniSharp\LaravelFilemanager\Middlewares\CreateDefaultFolder |
| | GET|HEAD | admin/filemanager/delete | unisharp.lfm.getDelete | UniSharp\LaravelFilemanager\Controllers\DeleteController@getDelete | web,auth,\UniSharp\LaravelFilemanager\Middlewares\MultiUser,\UniSharp\LaravelFilemanager\Middlewares\CreateDefaultFolder |
| | GET|HEAD | admin/filemanager/deletefolder | unisharp.lfm.getDeletefolder | UniSharp\LaravelFilemanager\Controllers\FolderController@getDeletefolder | web,auth,\UniSharp\LaravelFilemanager\Middlewares\MultiUser,\UniSharp\LaravelFilemanager\Middlewares\CreateDefaultFolder |
| | GET|HEAD | admin/filemanager/doresize | unisharp.lfm.performResize | UniSharp\LaravelFilemanager\Controllers\ResizeController@performResize | web,auth,\UniSharp\LaravelFilemanager\Middlewares\MultiUser,\UniSharp\LaravelFilemanager\Middlewares\CreateDefaultFolder |
| | GET|HEAD | admin/filemanager/download | unisharp.lfm.getDownload | UniSharp\LaravelFilemanager\Controllers\DownloadController@getDownload | web,auth,\UniSharp\LaravelFilemanager\Middlewares\MultiUser,\UniSharp\LaravelFilemanager\Middlewares\CreateDefaultFolder |
| | GET|HEAD | admin/filemanager/errors | unisharp.lfm.getErrors | UniSharp\LaravelFilemanager\Controllers\LfmController@getErrors | web,auth,\UniSharp\LaravelFilemanager\Middlewares\MultiUser,\UniSharp\LaravelFilemanager\Middlewares\CreateDefaultFolder |
| | GET|HEAD | admin/filemanager/files/{base_path}/{file_name} | unisharp.lfm. | UniSharp\LaravelFilemanager\Controllers\RedirectController@getFile | |
| | GET|HEAD | admin/filemanager/folders | unisharp.lfm.getFolders | UniSharp\LaravelFilemanager\Controllers\FolderController@getFolders | web,auth,\UniSharp\LaravelFilemanager\Middlewares\MultiUser,\UniSharp\LaravelFilemanager\Middlewares\CreateDefaultFolder |
| | GET|HEAD | admin/filemanager/jsonitems | unisharp.lfm.getItems | UniSharp\LaravelFilemanager\Controllers\ItemsController@getItems | web,auth,\UniSharp\LaravelFilemanager\Middlewares\MultiUser,\UniSharp\LaravelFilemanager\Middlewares\CreateDefaultFolder |
| | GET|HEAD | admin/filemanager/newfolder | unisharp.lfm.getAddfolder | UniSharp\LaravelFilemanager\Controllers\FolderController@getAddfolder | web,auth,\UniSharp\LaravelFilemanager\Middlewares\MultiUser,\UniSharp\LaravelFilemanager\Middlewares\CreateDefaultFolder |
| | GET|HEAD | admin/filemanager/photos/{base_path}/{image_name} | unisharp.lfm. | UniSharp\LaravelFilemanager\Controllers\RedirectController@getImage | |
| | GET|HEAD | admin/filemanager/rename | unisharp.lfm.getRename | UniSharp\LaravelFilemanager\Controllers\RenameController@getRename | web,auth,\UniSharp\LaravelFilemanager\Middlewares\MultiUser,\UniSharp\LaravelFilemanager\Middlewares\CreateDefaultFolder |
| | GET|HEAD | admin/filemanager/resize | unisharp.lfm.getResize | UniSharp\LaravelFilemanager\Controllers\ResizeController@getResize | web,auth,\UniSharp\LaravelFilemanager\Middlewares\MultiUser,\UniSharp\LaravelFilemanager\Middlewares\CreateDefaultFolder |
| | GET|HEAD|POST|PUT|PATCH|DELETE|OPTIONS | admin/filemanager/upload | unisharp.lfm.upload | UniSharp\LaravelFilemanager\Controllers\UploadController@upload | web,auth,\UniSharp\LaravelFilemanager\Middlewares\MultiUser,\UniSharp\LaravelFilemanager\Middlewares\CreateDefaultFolder |
| | POST | admin/generate-sitemap | generate-sitemap | App\Http\Controllers\Admin\AdminController@generateSitemap | web,auth,permission:perms.user,activity |
| | GET|HEAD | admin/posts | admin.posts | App\Http\Controllers\Admin\PostController@index | web,auth,permission:perms.writer,activity |
| | POST | admin/posts | storepost | App\Http\Controllers\Admin\PostController@store | web,auth,permission:perms.writer,activity |
| | GET|HEAD | admin/posts/create | posts.create | App\Http\Controllers\Admin\PostController@create | web,auth,permission:perms.writer,activity |
| | DELETE | admin/posts/{post} | destroypost | App\Http\Controllers\Admin\PostController@destroy | web,auth,permission:perms.writer,activity |
| | PUT|PATCH | admin/posts/{post} | updatepost | App\Http\Controllers\Admin\PostController@update | web,auth,permission:perms.writer,activity |
| | GET|HEAD | admin/posts/{post}/edit | editpost | App\Http\Controllers\Admin\PostController@edit | web,auth,permission:perms.writer,activity |
| | GET|HEAD | admin/sitemap | sitemap-admin | App\Http\Controllers\Admin\AdminController@sitemap | web,auth,permission:perms.user,activity |
| | POST | admin/tags | storetag | App\Http\Controllers\Admin\TagController@store | web,auth,permission:perms.writer,activity |
| | GET|HEAD | admin/tags | showtags | App\Http\Controllers\Admin\TagController@index | web,auth,permission:perms.writer,activity |
| | GET|HEAD | admin/tags/create | createtag | App\Http\Controllers\Admin\TagController@create | web,auth,permission:perms.writer,activity |
| | PUT|PATCH | admin/tags/{tag} | updatetag | App\Http\Controllers\Admin\TagController@update | web,auth,permission:perms.writer,activity |
| | DELETE | admin/tags/{tag} | destroytag | App\Http\Controllers\Admin\TagController@destroy | web,auth,permission:perms.writer,activity |
| | GET|HEAD | admin/tags/{tag}/edit | edittag | App\Http\Controllers\Admin\TagController@edit | web,auth,permission:perms.writer,activity |
| | GET|HEAD | admin/themes | themes | App\Http\Controllers\Admin\ThemesManagementController@index | web,auth,permission:perms.writer,activity |
| | POST | admin/themes | storetheme | App\Http\Controllers\Admin\ThemesManagementController@store | web,auth,permission:perms.writer,activity |
| | GET|HEAD | admin/themes/create | createtheme | App\Http\Controllers\Admin\ThemesManagementController@create | web,auth,permission:perms.writer,activity |
| | PUT|PATCH | admin/themes/{theme} | updatetheme | App\Http\Controllers\Admin\ThemesManagementController@update | web,auth,permission:perms.writer,activity |
| | DELETE | admin/themes/{theme} | destroytheme | App\Http\Controllers\Admin\ThemesManagementController@destroy | web,auth,permission:perms.writer,activity |
| | GET|HEAD | admin/themes/{theme} | showtheme | App\Http\Controllers\Admin\ThemesManagementController@show | web,auth,permission:perms.writer,activity |
| | GET|HEAD | admin/themes/{theme}/edit | edittheme | App\Http\Controllers\Admin\ThemesManagementController@edit | web,auth,permission:perms.writer,activity |
| | POST | admin/update-blog-theme | update-blog-theme | App\Http\Controllers\Admin\ThemesManagementController@updateDefaultTheme | web,auth,permission:perms.writer,activity |
| | GET|HEAD | admin/uploads | admin-uploads | App\Http\Controllers\Admin\AdminController@uploads | web,auth,permission:perms.writer,activity |
| | GET|HEAD | api | api | App\Http\Controllers\Api\BlogController@index | api |
| | GET|HEAD | api/posts | api-posts | App\Http\Controllers\Api\BlogController@posts | api |
| | GET|HEAD | api/posts/all | api-all-posts | App\Http\Controllers\Api\BlogController@allPosts | api |
| | GET|HEAD | api/posts/author/{author} | api-posts-by-author | App\Http\Controllers\Api\BlogController@getPostsByAuthor | api |
| | GET|HEAD | api/posts/authors | api-posts-authors | App\Http\Controllers\Api\BlogController@getPostsAuthors | api |
| | GET|HEAD | api/posts/latest | api-latest-post | App\Http\Controllers\Api\BlogController@latestPost | api |
| | GET|HEAD | author/{author} | author | App\Http\Controllers\BlogController@author | web,activity |
| | GET|HEAD | authors | authors | App\Http\Controllers\BlogController@authors | web,activity |
| | GET|HEAD | blog.rss | feeds.blog | Spatie\Feed\Http\FeedController | web,activity |
| | POST | contact | contactSend | App\Http\Controllers\ContactController@contactSend | web,activity |
| | GET|HEAD | contact | contact | App\Http\Controllers\ContactController@index | web,activity |
| | POST | login | | App\Http\Controllers\Auth\LoginController@login | web,activity,guest |
| | GET|HEAD | login | login | App\Http\Controllers\Auth\LoginController@showLoginForm | web,activity,guest |
| | POST | logout | logout | App\Http\Controllers\Auth\LoginController@logout | web,activity |
| | POST | password/email | password.email | App\Http\Controllers\Auth\ForgotPasswordController@sendResetLinkEmail | web,activity,guest |
| | POST | password/reset | password.update | App\Http\Controllers\Auth\ResetPasswordController@reset | web,activity,guest |
| | GET|HEAD | password/reset | password.request | App\Http\Controllers\Auth\ForgotPasswordController@showLinkRequestForm | web,activity,guest |
| | GET|HEAD | password/reset/{token} | password.reset | App\Http\Controllers\Auth\ResetPasswordController@showResetForm | web,activity,guest |
| | GET|HEAD | phpinfo | laravelPhpInfo::phpinfo | jeremykenedy\LaravelPhpInfo\App\Http\Controllers\LaravelPhpInfoController@phpinfo | web,auth,permission:perms.super.admin |
| | GET|HEAD | register | register | App\Http\Controllers\Auth\RegisterController@showRegistrationForm | web,activity,guest |
| | POST | register | | App\Http\Controllers\Auth\RegisterController@register | web,activity,guest |
| | POST | search-users | search-users | jeremykenedy\laravelusers\app\Http\Controllers\UsersManagementController@search | web,auth,permission:perms.super.admin |
| | POST | users | users.store | jeremykenedy\laravelusers\app\Http\Controllers\UsersManagementController@store | web,auth,permission:perms.super.admin |
| | GET|HEAD | users | users | jeremykenedy\laravelusers\app\Http\Controllers\UsersManagementController@index | web,auth,permission:perms.super.admin |
| | GET|HEAD | users/create | users.create | jeremykenedy\laravelusers\app\Http\Controllers\UsersManagementController@create | web,auth,permission:perms.super.admin |
| | DELETE | users/{user} | user.destroy | jeremykenedy\laravelusers\app\Http\Controllers\UsersManagementController@destroy | web,auth,permission:perms.super.admin |
| | PUT|PATCH | users/{user} | users.update | jeremykenedy\laravelusers\app\Http\Controllers\UsersManagementController@update | web,auth,permission:perms.super.admin |
| | GET|HEAD | users/{user} | users.show | jeremykenedy\laravelusers\app\Http\Controllers\UsersManagementController@show | web,auth,permission:perms.super.admin |
| | GET|HEAD | users/{user}/edit | users.edit | jeremykenedy\laravelusers\app\Http\Controllers\UsersManagementController@edit | web,auth,permission:perms.super.admin |
| | GET|HEAD | {slug} | | App\Http\Controllers\BlogController@showPost | web,activity |
+--------+----------------------------------------+---------------------------------------------------+------------------------------+---------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------+
Screenshots
File Tree
Larablog
├── .editorconfig
├── .env.example
├── .env.travis
├── .gitattributes
├── .gitignore
├── .travis.yml
├── LICENSE
├── README.md
├── app
│ ├── Console
│ │ ├── Commands
│ │ │ └── GenerateSitemap.php
│ │ └── Kernel.php
│ ├── Exceptions
│ │ └── Handler.php
│ ├── Handlers
│ │ └── LfmConfigHandler.php
│ ├── Http
│ │ ├── Controllers
│ │ │ ├── Admin
│ │ │ │ ├── AdminController.php
│ │ │ │ ├── PostController.php
│ │ │ │ ├── TagController.php
│ │ │ │ └── ThemesManagementController.php
│ │ │ ├── Api
│ │ │ │ └── BlogController.php
│ │ │ ├── Auth
│ │ │ │ ├── ForgotPasswordController.php
│ │ │ │ ├── LoginController.php
│ │ │ │ ├── RegisterController.php
│ │ │ │ ├── ResetPasswordController.php
│ │ │ │ └── VerificationController.php
│ │ │ ├── BlogController.php
│ │ │ ├── ContactController.php
│ │ │ ├── Controller.php
│ │ │ └── HomeController.php
│ │ ├── Kernel.php
│ │ ├── Middleware
│ │ │ ├── Authenticate.php
│ │ │ ├── CheckForMaintenanceMode.php
│ │ │ ├── EncryptCookies.php
│ │ │ ├── RedirectIfAuthenticated.php
│ │ │ ├── TrimStrings.php
│ │ │ ├── TrustProxies.php
│ │ │ └── VerifyCsrfToken.php
│ │ ├── Requests
│ │ │ ├── ContactRequest.php
│ │ │ ├── DeleteThemeRequest.php
│ │ │ ├── DestroyPostRequest.php
│ │ │ ├── DestroyTagRequest.php
│ │ │ ├── GenerateSitemapRequest.php
│ │ │ ├── StorePostRequest.php
│ │ │ ├── StoreTagRequest.php
│ │ │ ├── StoreThemeRequest.php
│ │ │ ├── ThemeRequest.php
│ │ │ ├── UpdatePostRequest.php
│ │ │ ├── UpdateTagRequest.php
│ │ │ └── UpdateThemeRequest.php
│ │ └── ViewComposers
│ │ └── BlogSettingsComposer.php
│ ├── Logic
│ │ └── helpers.php
│ ├── Mail
│ │ └── ContactMail.php
│ ├── Models
│ │ ├── BlogSetting.php
│ │ ├── Post.php
│ │ ├── Tag.php
│ │ ├── Theme.php
│ │ └── User.php
│ ├── Providers
│ │ ├── AppServiceProvider.php
│ │ ├── AuthServiceProvider.php
│ │ ├── BroadcastServiceProvider.php
│ │ ├── ComposerServiceProvider.php
│ │ ├── EventServiceProvider.php
│ │ └── RouteServiceProvider.php
│ ├── Services
│ │ ├── BlogThemeServices.php
│ │ ├── Markdowner.php
│ │ ├── PostAuthors.php
│ │ ├── PostFormFields.php
│ │ ├── PostProcesses.php
│ │ ├── PostTemplates.php
│ │ ├── SitemapCrawlProfile.php
│ │ └── TagFormFields.php
│ └── Traits
│ └── CaptchaTrait.php
├── artisan
├── bootstrap
│ ├── app.php
│ └── cache
│ ├── .gitignore
│ ├── packages.php
│ └── services.php
├── composer.json
├── composer.lock
├── config
│ ├── admin.php
│ ├── app.php
│ ├── auth.php
│ ├── blog.php
│ ├── broadcasting.php
│ ├── cache.php
│ ├── database.php
│ ├── debug-server.php
│ ├── debugbar.php
│ ├── feed.php
│ ├── filesystems.php
│ ├── hashing.php
│ ├── image.php
│ ├── laravel-logger.php
│ ├── laravelPhpInfo.php
│ ├── laravelusers.php
│ ├── lfm.php
│ ├── logging.php
│ ├── mail.php
│ ├── queue.php
│ ├── roles.php
│ ├── services.php
│ ├── session.php
│ ├── sitemap.php
│ ├── superadmin.php
│ ├── tinker.php
│ ├── trustedproxy.php
│ └── view.php
├── database
│ ├── .gitignore
│ ├── factories
│ │ ├── PostFactory.php
│ │ ├── TagFactory.php
│ │ └── UserFactory.php
│ ├── migrations
│ │ ├── 2014_10_12_000000_create_users_table.php
│ │ ├── 2014_10_12_100000_create_password_resets_table.php
│ │ ├── 2016_01_15_105324_create_roles_table.php
│ │ ├── 2016_01_15_114412_create_role_user_table.php
│ │ ├── 2016_01_26_115212_create_permissions_table.php
│ │ ├── 2016_01_26_115523_create_permission_role_table.php
│ │ ├── 2016_02_09_132439_create_permission_user_table.php
│ │ ├── 2018_10_10_070913_create_posts_table.php
│ │ ├── 2018_10_10_070928_create_tags_table.php
│ │ ├── 2018_10_10_070949_create_post_tag_pivot_table.php
│ │ ├── 2018_10_28_070857_create_themes_table.php
│ │ └── 2018_10_29_042545_create_blog_settings_table.php
│ └── seeds
│ ├── BlogSettingsTableSeeder.php
│ ├── ConnectRelationshipsSeeder.php
│ ├── DatabaseSeeder.php
│ ├── PermissionsTableSeeder.php
│ ├── PostTableSeeder.php
│ ├── RolesTableSeeder.php
│ ├── TagTableSeeder.php
│ ├── ThemesTableSeeder.php
│ └── UsersTableSeeder.php
├── package.json
├── phpunit.xml
├── public
│ ├── .htaccess
│ ├── css
│ │ ├── admin.css
│ │ ├── app.css
│ │ └── bs3-modals.css
│ ├── favicon.ico
│ ├── fonts
│ │ ├── font-awesome
│ │ │ ├── fa-brands-400.eot
│ │ │ ├── fa-brands-400.svg
│ │ │ ├── fa-brands-400.ttf
│ │ │ ├── fa-brands-400.woff
│ │ │ ├── fa-brands-400.woff2
│ │ │ ├── fa-regular-400.eot
│ │ │ ├── fa-regular-400.svg
│ │ │ ├── fa-regular-400.ttf
│ │ │ ├── fa-regular-400.woff
│ │ │ ├── fa-regular-400.woff2
│ │ │ ├── fa-solid-900.eot
│ │ │ ├── fa-solid-900.svg
│ │ │ ├── fa-solid-900.ttf
│ │ │ ├── fa-solid-900.woff
│ │ │ └── fa-solid-900.woff2
│ │ └── nucleo
│ │ ├── nucleo-icons.eot
│ │ ├── nucleo-icons.ttf
│ │ ├── nucleo-icons.woff
│ │ └── nucleo-icons.woff2
│ ├── images
│ ├── index.php
│ ├── js
│ │ ├── admin.js
│ │ ├── app.js
│ │ └── jquery.dataTables.min.js
│ ├── mix-manifest.json
│ ├── photos
│ │ ├── 1
│ │ └── shares
│ ├── robots.txt
│ ├── sitemap.xml
│ └── svg
│ ├── 403.svg
│ ├── 404.svg
│ ├── 500.svg
│ └── 503.svg
├── resources
│ ├── admin
│ │ ├── js
│ │ │ ├── admin.js
│ │ │ ├── bootstrap.js
│ │ │ ├── bs-tooltips.js
│ │ │ └── set-ckeditor.js
│ │ └── sass
│ │ ├── _dropzone.scss
│ │ ├── _fab.scss
│ │ ├── _forms.scss
│ │ ├── _mixins.scss
│ │ ├── _nucleo-icons.scss
│ │ ├── _tables.scss
│ │ ├── _variables.scss
│ │ └── admin.scss
│ ├── js
│ │ ├── app.js
│ │ ├── bootstrap.js
│ │ └── components
│ │ └── ExampleComponent.vue
│ ├── lang
│ │ └── en
│ │ ├── admin.php
│ │ ├── auth.php
│ │ ├── emails.php
│ │ ├── forms.php
│ │ ├── larablog.php
│ │ ├── messages.php
│ │ ├── modals.php
│ │ ├── pagination.php
│ │ ├── passwords.php
│ │ ├── themes.php
│ │ ├── tooltips.php
│ │ └── validation.php
│ ├── sass
│ │ ├── _variables.scss
│ │ ├── app.scss
│ │ └── partials
│ │ └── _bs-visibility-classes.scss
│ └── views
│ ├── admin
│ │ ├── forms
│ │ │ └── generate-sitemap.blade.php
│ │ ├── modals
│ │ │ ├── delete-modal.blade.php
│ │ │ ├── delete-post-modal-form.blade.php
│ │ │ ├── delete-tag-modal-form.blade.php
│ │ │ ├── save-modal.blade.php
│ │ │ ├── save-post-modal-form.blade.php
│ │ │ └── upload-modal.blade.php
│ │ ├── pages
│ │ │ ├── home.blade.php
│ │ │ ├── sitemap.blade.php
│ │ │ └── uploads.blade.php
│ │ ├── partials
│ │ │ ├── drawer-nav.blade.php
│ │ │ ├── footer.blade.php
│ │ │ ├── loading-file-1.blade.php
│ │ │ ├── loading-spinner-1.blade.php
│ │ │ ├── messages.blade.php
│ │ │ ├── navbar.blade.php
│ │ │ └── sidebar.blade.php
│ │ ├── post
│ │ │ ├── create.blade.php
│ │ │ ├── edit.blade.php
│ │ │ ├── index.blade.php
│ │ │ └── partials
│ │ │ └── post-form.blade.php
│ │ ├── scripts
│ │ │ ├── delete-modal-script.blade.php
│ │ │ ├── post-form-scripts.blade.php
│ │ │ ├── save-modal-script.blade.php
│ │ │ ├── save-post-modal.blade.php
│ │ │ └── toggle-status.blade.php
│ │ ├── tag
│ │ │ ├── create.blade.php
│ │ │ ├── edit.blade.php
│ │ │ ├── index.blade.php
│ │ │ └── partials
│ │ │ └── tag-form.blade.php
│ │ └── themesmanagement
│ │ ├── create-theme.blade.php
│ │ ├── edit-theme.blade.php
│ │ ├── index.blade.php
│ │ ├── partials
│ │ │ ├── default-theme-form.blade.php
│ │ │ └── theme-table-list.blade.php
│ │ └── show-theme.blade.php
│ ├── auth
│ │ ├── login.blade.php
│ │ ├── passwords
│ │ │ ├── email.blade.php
│ │ │ └── reset.blade.php
│ │ ├── register.blade.php
│ │ └── verify.blade.php
│ ├── blog
│ │ ├── forms
│ │ │ └── contact-form.blade.php
│ │ ├── pages
│ │ │ ├── author.blade.php
│ │ │ ├── authors.blade.php
│ │ │ └── contact.blade.php
│ │ ├── partials
│ │ │ ├── analytics.blade.php
│ │ │ ├── disqus.blade.php
│ │ │ ├── disqusjs.blade.php
│ │ │ ├── footer.blade.php
│ │ │ ├── header-post.blade.php
│ │ │ ├── header.blade.php
│ │ │ ├── messages.blade.php
│ │ │ ├── nav.blade.php
│ │ │ ├── posts-pager.blade.php
│ │ │ ├── posts-roll.blade.php
│ │ │ └── social-media.blade.php
│ │ ├── post-layouts
│ │ │ └── standard.blade.php
│ │ └── roll-layouts
│ │ └── home.blade.php
│ ├── layouts
│ │ ├── admin.blade.php
│ │ ├── app.blade.php
│ │ └── auth.blade.php
│ └── mail
│ └── contact.blade.php
├── routes
│ ├── api.php
│ ├── channels.php
│ ├── console.php
│ └── web.php
├── server.php
├── tests
│ ├── CreatesApplication.php
│ ├── Feature
│ │ ├── ExampleTest.php
│ │ ├── MarkdownerTest.php
│ │ └── PostsTest.php
│ ├── TestCase.php
│ └── Unit
│ └── ExampleTest.php
├── webpack.mix.js
├── yarn-error.log
└── yarn.lock
- Tree command can be installed using brew:
brew install tree
- File tree generated using command
tree -a -I '.git|node_modules|vendor|storage|ckeditor'
Opening an Issue
Before opening an issue there are a couple of considerations:
- You are all awesome!
- Read the instructions and make sure all steps were followed correctly.
- Check that the issue is not specific to the development environment setup.
- Provide duplication steps.
- Attempt to look into the issue, and if you have a solution, make a pull request.
- Show that you have made an attempt to look into the issue.
- Check to see if the issue you are reporting is a duplicate of a previous reported issue.
- Following these instructions show me that you have tried.
- If you have a questions send me an email to jeremykenedy@gmail.com
- Need some help, I can do my best on Slack: https://opensourcehelpgroup.slack.com
- Please be considerate that this is an open source project that I provide to the community for FREE when opening an issue.
Open source projects are the community’s responsibility to use, contribute, and debug.
License
Larablog is licensed under the MIT license. Enjoy!