jhumanj / laravel-vue-tailwind-spa
A Laravel-Vue-Tailwind SPA starter project template.
Requires
- php: ^7.3|^8.0
- fideloper/proxy: ^4.4
- fruitcake/laravel-cors: ^2.0
- guzzlehttp/guzzle: ^7.0.1
- laravel/framework: ^8.34
- laravel/socialite: ^5.2
- laravel/tinker: ^2.6
- laravel/ui: ^3.2
- tymon/jwt-auth: ^1.0.2
Requires (Dev)
- doctrine/dbal: ^2.12
- facade/ignition: ^2.5
- fakerphp/faker: ^1.9.1
- laravel/dusk: ^6.8
- mockery/mockery: ^1.4.2
- nunomaduro/collision: ^5.0
- phpunit/phpunit: ^9.3.3
README
A Laravel-Vue-Tailwind SPA starter kit. Forked from cretueusebiu/laravel-vue-spa.
Features
- Laravel 8
- Vue + VueRouter + Vuex + VueI18n + ESlint
- Pages with dynamic import and custom layouts
- Login, register, email verification and password reset
- Authentication with JWT
- Socialite integration
- TailwindCSS v2
Installation
composer create-project --prefer-dist JhumanJ/laravel-vue-tailwind-spa
- Edit
.env
and set your database connection details - (When installed via git clone or download, run
php artisan key:generate
andphp artisan jwt:secret
) php artisan migrate
npm install
Usage
Development
# Build and watch
npm run watch
Production
npm run production
Socialite
This project comes with GitHub as an example for Laravel Socialite.
To enable the provider create a new GitHub application and use https://example.com/api/oauth/github/callback
as the Authorization callback URL.
Edit .env
and set GITHUB_CLIENT_ID
and GITHUB_CLIENT_SECRET
with the keys form your GitHub application.
For other providers you may need to set the appropriate keys in config/services.php
and redirect url in OAuthController.php
.
Email Verification
To enable email verification make sure that your App\User
model implements the Illuminate\Contracts\Auth\MustVerifyEmail
contract.
Testing
# Run unit and feature tests vendor/bin/phpunit # Run Dusk browser tests php artisan dusk
Credits
- cretueusebiu for creating the original Laravel Vue SPA
- Tailwind Kit for all their Tailwind templates
Changelog
Please see CHANGELOG for more information what has changed recently.