nasirkhan / laravel-starter
A CMS like modular Laravel starter project.
Installs: 1 392
Dependents: 0
Suggesters: 0
Security: 0
Stars: 1 198
Watchers: 46
Forks: 417
Open Issues: 2
Type:project
Requires
- php: ^8.2
- arcanedev/log-viewer: ^11.0
- intervention/image-laravel: ^1.2
- laracasts/flash: ^3.2
- laravel/framework: ^11.0
- laravel/socialite: ^5.12
- laravel/tinker: ^2.9
- livewire/livewire: ^3.4
- nasirkhan/module-manager: ^2.0
- spatie/laravel-activitylog: ^4.8
- spatie/laravel-backup: ^8.6
- spatie/laravel-html: ^3.6
- spatie/laravel-medialibrary: ^11.4
- spatie/laravel-permission: ^6.4
- sqids/sqids: ^0.4.1
- unisharp/laravel-filemanager: ^2.9
- yajra/laravel-datatables-oracle: ^11.0
Requires (Dev)
- barryvdh/laravel-debugbar: ^3.12
- fakerphp/faker: ^1.23
- laravel/breeze: ^2.0
- laravel/pint: ^1.13
- laravel/sail: ^1.26
- mockery/mockery: ^1.6
- nunomaduro/collision: ^8.0
- phpunit/phpunit: ^10.5
- spatie/laravel-ignition: ^2.4
- dev-main
- v11.10.0
- v11.9.0
- v11.8.0
- v11.7.0
- v11.6.0
- v11.5.0
- v11.4.0
- v11.3.0
- v11.2.0
- v11.1.0
- v11.0.1
- v11.0.0
- v10.18.0
- v10.17.0
- v10.16.0
- v10.15.0
- v10.14.1
- v10.14.0
- v10.13.0
- v10.12.0
- v10.11.0
- v10.10.0
- v10.9.0
- v10.8.1
- v10.8.0
- v10.7.1
- v10.7.0
- v10.6.0
- v10.5.0
- v10.4.0
- v10.3.1
- v10.3.0
- v10.2.0
- v10.1.0
- v10.0.0
- v9.16.0
- v9.15.0
- v9.14.0
- v9.13.0
- v9.12.0
- v9.11.0
- v9.10.0
- v9.1.0
- v9.0.0
- v8.4.2
- v8.4.1
- v8.3.0
- v8.2.1
- v8.1.0
- v8.0.0
- v7.14.0
- v7.12.0
- v7.11.0
- v7.10.0
- v7.9.0
- v7.5.0
- v6.0.0
- v5.1.0
- v3.6.0
- v2.0.0
- v1.1.0
- v1.0.0
- dev-dev
- dev-formatter
- dev-tests
This package is auto-updated.
Last update: 2024-10-28 09:38:16 UTC
README
Laravel Starter (based on Laravel 11.x)
Laravel Starter is a Laravel 11.x based simple starter project. Most of the commonly needed features of an application like Authentication
, Authorisation
, Users
and Role management
, Application Backend
, Backup
, Log viewer
are available here. It is modular, so you may use this project as a base and build your own modules. A module can be used in any Laravel Starter
based project.
Here Frontend and Backend are completely separated with separate routes, controllers, and themes as well.
Please let me know your feedback and comments.
Reporting a Vulnerability
If you discover any security-related issues, please send an e-mail to Nasir Khan Saikat via nasir8891@gmail.com instead of using the issue tracker.
Appplication Demo
Check the following demo project. It is just a straight installation of the project without any modification.
Demo URL: https://laravel.nasirkhn.com
You may use the following account credentials to access the application backend.
User: super@admin.com
Pass: secret
User: user@user.com
Pass: secret
Demo Data
If you want to test the application on your local machine with additional demo data you may use the following command.
php artisan laravel-starter:insert-demo-data
There are options to truncate the posts, categories, tags, and comments
tables and insert new demo data.
--fresh
option will truncate the tables, without this command a new set of data will be inserted.
php artisan laravel-starter:insert-demo-data --fresh
Custom Commands
We have created a number of custom commands for the project. The commands are listed below with a brief about their use of it.
Create New module
To create a project use the following command, you have to replace the MODULE_NAME with the name of the module.
php artisan module:build MODULE_NAME
You may want to use --force
option to overwrite the existing module. if you use this option, it will replace all the existing files with the default stub files.
php artisan module:build MODULE_NAME --force
Clear All Cache
composer clear-all
this is a shortcut command to clear all cache including config, route, and more
Code Style Fix
We are now using Laravel Pint
to make the code style stay as clean and consistent as the Laravel Framework. Use the following command to apply CS-Fix.
composer pint
Along with Laravel Pint, we are using prettier
to format the blade templates. You can install the prettier
extension in your favorite editor.
The following command will format the blade templates.
npm run format
or if you are using yarn
then you can use the following command.
yarn format
Role - Permissions
Several custom commands are available to add and update role-permissions
. Please read the Role - Permission Wiki page, where you will find the list of commands with examples.
Features
The Laravel Starter
comes with several features which are the most common in almost all applications. It is a template project which means it is intended to be built in a way that it can be used for other projects.
It is a modular application, and some modules are installed by default. It will be helpful to use it as a base for future applications.
- Admin feature and public views are completely separated as
Backend
andFrontend
namespace. - Major features are developed as
Modules
. A module like Posts, Comments, and Tags are separated from the core features like User, Role, Permission
Core Features
- User Authentication
- Social Login
- Github
- Build in a way adding more is much easier now
- User Profile with Avatar
- Role-Permissions for Users
- Dynamic Menu System
- Language Switcher
- Localization enabled across the project
- Backend Theme
- Bootstrap 5, CoreUI
- Fontawesome 6
- Dark Mode
- Frontend Theme
- Tailwind
- Fontawesome 6
- Dark Mode
- Article Module
- Posts
- Categories
- Tags
- Comments
- wysiwyg editor
- File browser
- Application Settings
- External Libraries
- Bootstrap 5
- Fontawesome 6
- CoreUI
- Tailwind
- Datatables
- Select2
- Date Time Picker
- Backup (Source, Files, Database as Zip)
- Log Viewer
- Notification
- Dashboard and details view
User Guide
Installation
Follow the steps mentioned below to install and run the project. You may find more details about the installation in Installation Wiki.
- Open the terminal and run the following command, this will download and install the
Laravel Starter
and run the post-installation commands.
composer create-project nasirkhan/laravel-starter
- The default database is
sqlite
, if you want to change please update the database settings at.env
file - To create a link from the storage directory, run the following command from the project root:
php artisan storage:link
- If you run the
create-project
command fromLaravel Hard
then the site will be available at http://laravel-starter.test. You may create a virtualhost entry to access the application or runphp artisan serve
from the project root and visithttp://127.0.0.1:8000
After creating the new permissions use the following commands to update cashed permissions.
php artisan cache:forget spatie.permission.cache
Docker and Laravel Sail
This project is configured with Laravel Sail (https://laravel.com/docs/sail). You can use all the docker functionalities here. To install using docker and sail:
- Clone or download the repository
- Go to the project directory and run
composer install
- Create
.env
file by copying the.env-sail
. You may use the command to do thatcp .env-sail .env
- Update the database name and credentials in
.env
file - Run the command
sail up
(consider adding this to your alias:alias sail='[ -f sail ] && sh sail || sh vendor/bin/sail'
) - Run the command
sail artisan migrate --seed
- Link storage directory:
sail artisan storage:link
- Since Sail is already up, you can just visit http://localhost:80
Screenshots
Home Page
Login Page
Posts Page
Backend Dashboard