Useful classes you can use for every Laravel project
10,852
58
4
Package Data
Maintainer Username: bpocallaghan
Maintainer Contact: bpocallaghan@gmail.com (Ben-Piet O'Callaghan)
Package Create Date: 2016-04-07
Package Last Update: 2023-03-15
Home Page: http://bpocallaghan.co.za
Language: Blade
License: MIT
Last Refreshed: 2024-04-26 03:12:02
Package Statistics
Total Downloads: 10,852
Monthly Downloads: 11
Daily Downloads: 1
Total Stars: 58
Total Watchers: 4
Total Forks: 15
Total Open Issues: 2

Titan

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.

Preview project here

  • User: github@bpocallaghan.co.za
  • 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
  • *open browser

Then you have your Titan Admin Starter project with all the features ready to start your coding.

Installation

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
(Optional)
php artisan vendor:publish --tag=laravel-notifications

It will publish the mail blade files to your project for you to edit.

Installation steps in Detail

php artisan migrate

This will create all the tables needed (users table will be altered).

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.

Commands

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=config
php artisan titan:publish --files=database
php artisan titan:publish --files=events
php artisan titan:publish --files=helpers
php artisan titan:publish --files=public
php artisan titan:publish --files=routes
php artisan titan:publish --files=website
php artisan titan:publish --files=website

This will copy all Website related files to your application (views, controllers, assets).

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=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.

TODO

  • install command, remove laravel installed files (auth controllers and views, public/svg)
  • add titan:publish --type=banner (to copy only banner files to application)
  • create config file (don't load routes, etc)

create new packages for

  • *banners
  • *activity
  • *google analytics
  • and more