A Laravel Website and Admin Framework for your everyday Websites build in Laravel. This project is the core framework for Laravel Starter. Please check this out for the detailed Features list and more.
- titan-starter
- I have started from scratch with a new test driven version. The end goal is to focus on TDD, more generic and easier to customize and help speed up your website development.
- User: [email protected]
- Password: github
Titan is nicely packaged for you so that you only have to do the following;
- install laravel
- composer require titan package
- *create database
- *setup virtual host/ host file
- run titan:setup command
- run titan:install command
- run titan:migrate command (optional)
- *open browser
Then you have your Titan Admin Starter project with all the features ready to start your coding.
Update your project's composer.json
file.
composer require bpocallaghan/titan
php artisan titan:setup
It will do the following:
php artisan titan:publish --files=website
- Update
app\User.php
- Update
routes\web.php
- Update
app\Http\Kernel.php
- Update
app\Http\Handler.php
- Update
config\app.php
php artisan titan:install
It will do the following:
- Update
.env
php artisan migrate
php artisan titan:db:seed
php artisan titan:publish --files=auth
php artisan titan:migrate --name=
It will do the following:
- Specify the 'table types' you would like to migrate
blog, documents, faq, locations, news, newsletter_subscribers, photos, testimonials, shop
(Optional)
Mail Layout
php artisan vendor:publish --tag=laravel-notifications
Mail Component
php artisan vendor:publish --tag=laravel-mail
It will publish the mail blade files to your project for you to edit.
php artisan migrate
This will create the 'core/minimum' tables needed (users table will be altered). You can run php artisan migrate --name=blog
to include the migration tables.
php artisan titan:db:seed
This will seed the core tables to get started
- roles
- banners
- pages
- navigation_admin
php artisan titan:publish --files=website
This will copy all Website
related files to your application.
- views, controllers and database seeds
- webpack.mix.js and packages.json
- resource/assets and public/assets (css, js, fonts, images)
Open routes\web.php
and uncomment the home
route.
Open app\Http\Kernel.php
and add the below to the end of $routeMiddleware
list.
'role' => \Bpocallaghan\Titan\Http\Middleware\ValidateRole::class,
'auth.admin' => \Bpocallaghan\Titan\Http\Middleware\AuthenticateAdmin::class,
This is to register the Admin Middlewares
- AuthenticateAdmin - If the user logging in has the
admin
role. - ValidateRole - Admin users can have multiple roles, filter the navigation on those roles.
The publish commands are used to copy the files from titan to your own application for customization. For example, you need to add or change a field in a table or update text or design in blade files.
php artisan titan:publish --files=app
php artisan titan:publish --files=assets
php artisan titan:publish --files=auth
php artisan titan:publish --files=banner
php artisan titan:publish --files=config
php artisan titan:publish --files=database
php artisan titan:publish --files=events
php artisan titan:publish --files=helpers
php artisan titan:publish --files=pages
php artisan titan:publish --files=public
php artisan titan:publish --files=routes
php artisan titan:publish --files=website
php artisan titan:publish --files=app
This will copy all Models
, Views
and Controllers
to your application.
This will also copy all routes
and RouteServiceProvider
to your application.
php artisan titan:publish --files=assets
This will copy all assets (css, js, fonts, images)
and webpack.js, package.json
to your application.
php artisan titan:publish --files=auth
This will copy all Auth related Models
, Views
and Controllers
to your application.
php artisan titan:publish --files=banner
This will copy all Banner related Models
, Views
and Controllers
to your application.
php artisan titan:publish --files=config
This will copy the config file of titan to your application. You can change the admin skin (blue, red, green, etc)
php artisan titan:publish --files=database
This will copy the database/seeds
and database/migrations
to your application.
php artisan titan:publish --files=events
This will copy all Events
, Listeners
, Mails
and Notifications
to your application.
php artisan titan:publish --files=helpers
This will copy all Helpers
, and HelperServiceProvider
to your application.
php artisan titan:publish --files=public
This will copy all public (compiled css, js and also fonts and images)
to your application.
php artisan titan:publish --files=routes
This will copy all routes
, and RouteServiceProvider
to your application.
php artisan titan:publish --files=website
This will copy all Website
related files to your application (views, controllers, assets).
Note: If you are not going to run php artisan titan:publish --files=routes
, remember to add the routes to your application.
- install command, remove laravel installed files (public/svg)
- create config file (don't load routes, etc)
create new packages for
- *banners
- *activity
- *google analytics
- and more