A Laravel + Socialite + Vite + Vue 3 + TailwindCSS SPA Boilerplate. Laravel with user authentication, registration with email verification, social media authentication, password recovery, user management, and roles/permissions management. Uses official TailwindCSS. While the front end is part of this repository it is a completely separated Vue 3 front end compiled using ViteJS.
- Laravel 11.x
- Laravel Sanctum
- Socialite
- Vite
- Vue 3
- TailwindCSS (w/
@tailwindcss/forms
and@tailwindcss/aspect-ratio
) - Vue Router
- Pinia
- Axios
- Vue I18n
- Headless UI
- Heroicons
- Font Awesome 6
- ESLint with Prettier
- Users Area
- Admin Area
- About Page
- Terms Page
- Users Managemenet
- User Impersonation
- User Data Download
- User Account Self Deletion.
- Manage Social Media Logins through GUI
- Roles Management
- Permissions Management
- Google Analytics (optional)
- Social Authentication with Facebook, Twitter, Instagram, GitHub, TikTok, Google, YouTube, Microsoft, Twitch, and Apple
- Optional Sentry.io Laravel Monitoring
- Optional Sentry.io VueJs Monitoring
The following Sanctum features are implemented in this Vue SPA:
- β Laravel 11
- β Vue 3
- β VueRouter
- β Pinia
- β Vue I18n Multi-Language
- β Login
- β Password Reset
- β Registration
- β Admin Panel
- β Profile Management
- β User Management
- β Roles Management
- β Permissions Management
- β Password Change
- β E-Mail Verification
- β Posts Management
- β Frontend Blog
- β TailwindCSS
- β Browser Sessions - Other Device Logout
- β User Activity Logs
- Run
git clone https://github.com/jeremykenedy/laravel-spa.git laravel-spa
- Create a MySQL database for the project
mysql -u root -p
, if using Vagrant:mysql -u homestead -psecret
create database laravelSpa;
\q
- From the projects root run
cp .env.example .env
- Configure your
.env
file (VERY IMPORTANT) - Run
composer install
from the projects root folder - From the projects root folder run
sudo chmod -R 755 ../laravel-spa
- 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.
- From the projects root folder run
npm install
- From the projects root folder run
npm run dev
ornpm run build
- You can lint assets with
npm run lint
- You can clean the syntax with
npm run clean
- From the projects root folder run
yarn install
- From the projects root folder run
yarn run dev
oryarn run build
- You can lint assets with
yarn run lint
- You can clean the syntax with
yarn run clean
- From the projects root folder run
php artisan config:cache
Password | |
---|---|
[email protected] | password |
[email protected] | password |
[email protected] | password |
- Facebook API (Will work with local dev callback)
- Twitter API
- Instagram API
- GitHub API (Will work with local dev callback)
- YouTube API
- Google API
- LinkedIn API (Will work with local dev callback)
- Twitch API (Will work with local dev callback)
- Microsoft API
- TikTok API
- Apple API
- ZoHo API (Will work with local dev callback)
- StackExchange API (Will work with local dev callback)
- GitLab API (Will work with local dev callback)
- Reddit API Register (Will work with local dev callback)
- Snapchat API
- Meetup API
- Atlassian
- See full list of providers: https://socialiteproviders.github.io
LaravelSpa
βββ .editorconfig
βββ .env.example
βββ .eslintrc.js
βββ .eslintrc.json
βββ .gitattributes
βββ .github
β βββ FUNDING.yml
β βββ dependabot.yml
β βββ labeler.yml
β βββ workflows
β βββ build-changelog.yml
β βββ codacy.yml
β βββ codeql.yml
β βββ dependency-review.yml
β βββ deploy.yml
β βββ gitguardian.yml
β βββ greetings.yml
β βββ labeler.yml
β βββ laravel.yml
β βββ node.js.yml
β βββ php.yml
β βββ sentry.yml
β βββ stale.yml
βββ .gitignore
βββ .prettierignore
βββ .prettierrc.json
βββ .scripts
β βββ deploy.sh
βββ .styleci.yml
βββ LICENSE
βββ README.md
βββ SECURITY.md
βββ app
β βββ Console
β β βββ Kernel.php
β βββ Exceptions
β β βββ Handler.php
β β βββ SocialProviderDeniedException.php
β βββ Http
β β βββ Controllers
β β β βββ Admin
β β β β βββ AppSettingsController.php
β β β β βββ DashboardController.php
β β β β βββ ServerInfoController.php
β β β βββ Api
β β β β βββ ActivityLogController.php
β β β β βββ BrowserSessionController.php
β β β β βββ CategoryController.php
β β β β βββ PermissionsController.php
β β β β βββ PostController.php
β β β β βββ ProfileController.php
β β β β βββ RolesController.php
β β β β βββ UserController.php
β β β β βββ UsersController.php
β β β βββ Auth
β β β β βββ AuthenticatedSessionController.php
β β β β βββ ConfirmPasswordController.php
β β β β βββ ForgotPasswordController.php
β β β β βββ ImpersonateController.php
β β β β βββ LoginController.php
β β β β βββ PasswordController.php
β β β β βββ RegisterController.php
β β β β βββ ResetPasswordController.php
β β β β βββ SocialiteController.php
β β β β βββ VerificationController.php
β β β βββ Controller.php
β β β βββ HomeController.php
β β βββ Kernel.php
β β βββ Middleware
β β β βββ Authenticate.php
β β β βββ EncryptCookies.php
β β β βββ PreventRequestsDuringMaintenance.php
β β β βββ RedirectIfAuthenticated.php
β β β βββ TrimStrings.php
β β β βββ TrustHosts.php
β β β βββ TrustProxies.php
β β β βββ ValidateSignature.php
β β β βββ VerifyCsrfToken.php
β β βββ Requests
β β β βββ Admin
β β β β βββ AdminDashboardRequest.php
β β β β βββ ShowAppSettingsRequest.php
β β β β βββ ShowServerInfoRequest.php
β β β β βββ UpdateAppSettingsRequest.php
β β β βββ Auth
β β β β βββ LoginRequest.php
β β β β βββ RegisterRequest.php
β β β βββ Categories
β β β β βββ DeleteCategoryRequest.php
β β β β βββ RestoreCategoryRequest.php
β β β β βββ ShowCategoryRequest.php
β β β β βββ StoreCategoryRequest.php
β β β β βββ UpdateCategoryRequest.php
β β β βββ Permissions
β β β β βββ CreatePermissionRequest.php
β β β β βββ GetPermissionsRequest.php
β β β β βββ UpdatePermissionRequest.php
β β β βββ Posts
β β β β βββ DeletePostRequest.php
β β β β βββ RestorePostRequest.php
β β β β βββ ShowPostRequest.php
β β β β βββ StorePostRequest.php
β β β β βββ UpdatePostRequest.php
β β β βββ Roles
β β β β βββ CreateRoleRequest.php
β β β β βββ GetUserRolesRequest.php
β β β β βββ UpdateRoleRequest.php
β β β βββ StoreRoleRequest.php
β β β βββ StoreUserRequest.php
β β β βββ UpdateProfileRequest.php
β β β βββ User
β β β βββ Users
β β β βββ CreateUserRequest.php
β β β βββ DeleteUserRequest.php
β β β βββ ImpersonateUserRequest.php
β β β βββ LeaveImpersonateUserRequest.php
β β β βββ RestoreUserRequest.php
β β β βββ UpdateUserRequest.php
β β β βββ VerifyUserRequest.php
β β β βββ ViewUserRequest.php
β β βββ Resources
β β βββ ActivityLogs
β β β βββ ActivityLogResource.php
β β β βββ ActivityLogsCollection.php
β β βββ Categories
β β β βββ CategoryResource.php
β β β βββ GategoriesCollection.php
β β βββ Permissions
β β β βββ PermissionResource.php
β β β βββ PermissionsCollection.php
β β βββ Posts
β β β βββ PostResource.php
β β β βββ PostsCollection.php
β β βββ Roles
β β β βββ RoleResource.php
β β β βββ RolesCollection.php
β β βββ Users
β β βββ UserResource.php
β β βββ UsersCollection.php
β βββ Jobs
β β βββ PersonalDataExportJob.php
β βββ Mail
β β βββ ExceptionOccured.php
β βββ Models
β β βββ Category.php
β β βββ CategoryPost.php
β β βββ Impersonation.php
β β βββ Permission.php
β β βββ Post.php
β β βββ Role.php
β β βββ Setting.php
β β βββ SocialiteProvider.php
β β βββ User.php
β βββ Notifications
β β βββ PersonalDataExportedNotification.php
β β βββ ResetPasswordNotification.php
β β βββ SendActivationEmail.php
β β βββ SendGoodbyeEmail.php
β β βββ SendPasswordResetEmail.php
β β βββ VerifyEmailNotification.php
β βββ Providers
β β βββ AppServiceProvider.php
β β βββ AuthServiceProvider.php
β β βββ BroadcastServiceProvider.php
β β βββ EventServiceProvider.php
β β βββ RouteServiceProvider.php
β β βββ ViewComposerServiceProvider.php
β βββ Services
β β βββ AppleToken.php
β βββ Traits
β β βββ AppSettingsTrait.php
β β βββ SocialiteProvidersTrait.php
β βββ View
β βββ Composers
β βββ GaComposer.php
β βββ GaEnabledComposer.php
βββ artisan
βββ bootstrap
β βββ app.php
β βββ cache
β β βββ .gitignore
β β βββ packages.php
β β βββ services.php
β βββ ssr
βββ composer.json
βββ composer.lock
βββ config
β βββ activitylog.php
β βββ app.php
β βββ auth.php
β βββ broadcasting.php
β βββ browser-sessions.php
β βββ cache.php
β βββ cors.php
β βββ database.php
β βββ debugbar.php
β βββ exceptions.php
β βββ filesystems.php
β βββ hashing.php
β βββ laravel-https.php
β βββ laravel-page-speed.php
β βββ laravelpwa.php
β βββ logging.php
β βββ mail.php
β βββ media-library.php
β βββ personal-data-export.php
β βββ queue.php
β βββ request-docs.php
β βββ roles.php
β βββ sanctum.php
β βββ sentry.php
β βββ services.php
β βββ session.php
β βββ settings.php
β βββ sitemap.php
β βββ users.php
β βββ view.php
βββ database
β βββ .gitignore
β βββ factories
β β βββ UserFactory.php
β βββ migrations
β β βββ 0001_01_01_000000_create_users_table.php
β β βββ 0001_01_01_000001_create_cache_table.php
β β βββ 0001_01_01_000002_create_jobs_table.php
β β βββ 2014_10_00_000000_create_settings_table.php
β β βββ 2014_10_00_000001_add_group_column_on_settings_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
β β βββ 2019_12_14_000001_create_personal_access_tokens_table.php
β β βββ 2022_09_30_181156_create_posts_table.php
β β βββ 2022_09_30_181227_create_categories_table.php
β β βββ 2022_11_28_073632_create_socialite_providers_table.php
β β βββ 2022_12_06_061947_create_impersonations_table.php
β β βββ 2023_10_02_010617_create_category_post_table.php
β β βββ 2023_10_02_175025_create_media_table.php
β β βββ 2024_11_25_022836_create_permission_tables.php
β β βββ 2025_01_23_093055_create_activity_log_table.php
β β βββ 2025_01_23_093056_add_event_column_to_activity_log_table.php
β β βββ 2025_01_23_093057_add_batch_uuid_column_to_activity_log_table.php
β βββ seeders
β βββ AppSettingsSeeder.php
β βββ ConnectRelationshipsSeeder.php
β βββ DatabaseSeeder.php
β βββ PermissionTableSeeder.php
β βββ PermissionsTableSeeder.php
β βββ RolesTableSeeder.php
β βββ UsersTableSeeder.php
βββ eslint.config.js
βββ lang
β βββ en
β βββ auth.php
β βββ emails.php
β βββ pagination.php
β βββ passwords.php
β βββ validation.php
βββ package-lock.json
βββ package.json
βββ phpunit.xml
βββ postcss.config.js
βββ prettier.config.js
βββ public
β βββ .htaccess
β βββ android-chrome-192x192.png
β βββ android-chrome-512x512.png
β βββ apple-touch-icon.png
β βββ favicon-16x16.png
β βββ favicon-32x32.png
β βββ favicon.ico
β βββ favicon.png
β βββ images
β β βββ placeholder.jpg
β βββ index.php
β βββ robots.txt
β βββ serviceworker.js
β βββ site.webmanifest
β βββ sw.js
βββ resources
β βββ css
β β βββ app.css
β β βββ normalize.css
β βββ img
β β βββ 404.png
β β βββ favicon
β β β βββ android-chrome-192x192.png
β β β βββ android-chrome-512x512.png
β β β βββ apple-touch-icon.png
β β β βββ favicon-16x16.png
β β β βββ favicon-32x32.png
β β β βββ favicon.ico
β β β βββ favicon.png
β β β βββ site.webmanifest
β β βββ fonts
β β β βββ Leckerli_One
β β β β βββ LeckerliOne-Regular.ttf
β β β β βββ OFL.txt
β β β βββ Nunito
β β β β βββ Nunito-Italic-VariableFont_wght.ttf
β β β β βββ Nunito-VariableFont_wght.ttf
β β β β βββ OFL.txt
β β β β βββ README.txt
β β β β βββ static
β β β β βββ Nunito-Black.ttf
β β β β βββ Nunito-BlackItalic.ttf
β β β β βββ Nunito-Bold.ttf
β β β β βββ Nunito-BoldItalic.ttf
β β β β βββ Nunito-ExtraBold.ttf
β β β β βββ Nunito-ExtraBoldItalic.ttf
β β β β βββ Nunito-ExtraLight.ttf
β β β β βββ Nunito-ExtraLightItalic.ttf
β β β β βββ Nunito-Italic.ttf
β β β β βββ Nunito-Light.ttf
β β β β βββ Nunito-LightItalic.ttf
β β β β βββ Nunito-Medium.ttf
β β β β βββ Nunito-MediumItalic.ttf
β β β β βββ Nunito-Regular.ttf
β β β β βββ Nunito-SemiBold.ttf
β β β β βββ Nunito-SemiBoldItalic.ttf
β β β βββ Quicksand
β β β βββ OFL.txt
β β β βββ Quicksand-VariableFont_wght.ttf
β β β βββ README.txt
β β β βββ static
β β β βββ Quicksand-Bold.ttf
β β β βββ Quicksand-Light.ttf
β β β βββ Quicksand-Medium.ttf
β β β βββ Quicksand-Regular.ttf
β β β βββ Quicksand-SemiBold.ttf
β β βββ login.png
β β βββ login.webp
β β βββ plugs.png
β β βββ vendor-logos
β β βββ vultr-1.webp
β β βββ vultr-2.png
β β βββ zoho-monocrome-black.png
β β βββ zoho-monocrome-white.png
β βββ js
β β βββ app.js
β β βββ bootstrap.js
β β βββ components
β β β βββ LocaleSwitcher.vue
β β β βββ ToggleDarkMode.vue
β β β βββ admin
β β β β βββ CreateComp.vue
β β β β βββ EditComp.vue
β β β β βββ IndexComp.vue
β β β βββ auth
β β β β βββ SocialiteLogins.vue
β β β βββ common
β β β β βββ AdminMiniCard.vue
β β β β βββ AppButton.vue
β β β β βββ AppDeleteModal.vue
β β β β βββ AppModal.vue
β β β β βββ AppSwitch.vue
β β β β βββ AppTable.vue
β β β β βββ CKEditorComponent.vue
β β β β βββ CircleSvg.vue
β β β β βββ DropZone.vue
β β β β βββ ErrorsNotice.vue
β β β β βββ ImpersonateUser.vue
β β β β βββ LeaveImpersonation.vue
β β β β βββ LoadingCircle.vue
β β β β βββ NoRecordsCTA.vue
β β β β βββ PaginationComp.vue
β β β β βββ PerPage.vue
β β β β βββ SocialMediaLoginStatus.vue
β β β β βββ SocialMediaLoginStatusItem.vue
β β β β βββ SuccessNotice.vue
β β β β βββ TextEditorComponent.vue
β β β β βββ TinyMCEditor.vue
β β β β βββ UmoEditor.vue
β β β βββ form
β β β β βββ AppPasswordInput.vue
β β β β βββ AppSettingTextInput.vue
β β β β βββ AppSettingTextarea.vue
β β β β βββ AppSettingToggle.vue
β β β β βββ AppTextInput.vue
β β β βββ includes
β β β β βββ AdminBreadcrumb.vue
β β β β βββ AdminBreadcrumbContainer.vue
β β β β βββ AdminBreadcrumbSep.vue
β β β β βββ AdminNavBarLink.vue
β β β β βββ AdminNavbar.vue
β β β β βββ AdminSidebar.vue
β β β β βββ AdminSidebarLink.vue
β β β β βββ AppFooter.vue
β β β β βββ AppNav.vue
β β β β βββ BreadcrumbOld.vue
β β β β βββ NavLink.vue
β β β βββ loaders
β β β β βββ AnimatedTableLoader.vue
β β β βββ plugs
β β β β βββ BmcButtons.vue
β β β β βββ GHButton.vue
β β β β βββ GHButtons.vue
β β β β βββ OctoCat.vue
β β β β βββ PatreonButton.vue
β β β β βββ VultrReferral.vue
β β β βββ roles
β β β β βββ PermissionFormModal.vue
β β β β βββ RoleFormModal.vue
β β β β βββ RolesBadges.vue
β β β βββ users
β β β βββ UserForm.vue
β β β βββ UserFormModal.vue
β β βββ composables
β β β βββ activityLogs.js
β β β βββ auth.js
β β β βββ categories.js
β β β βββ darkmode.js
β β β βββ posts.js
β β β βββ profile.js
β β β βββ roles.js
β β β βββ users.js
β β βββ lang
β β β βββ bn.json
β β β βββ en.json
β β β βββ es.json
β β β βββ fr.json
β β β βββ pt-BR.json
β β β βββ zh-CN.json
β β βββ layouts
β β β βββ AdminLayout.vue
β β β βββ AuthenticatedLayout.vue
β β β βββ ErrorLayout.vue
β β β βββ GuestLayout.vue
β β βββ plugins
β β β βββ i18n.js
β β βββ routes
β β β βββ index.js
β β β βββ middleware.js
β β β βββ routes.js
β β βββ services
β β β βββ ability.js
β β β βββ analytics.js
β β β βββ asteroids.js
β β β βββ common.js
β β β βββ excanvas.js
β β β βββ s-code.js
β β β βββ s-code.min.js
β β β βββ utilities.js
β β βββ store
β β β βββ auth.js
β β β βββ index.js
β β β βββ lang.js
β β β βββ sidebar.js
β β β βββ toast.js
β β βββ validation
β β β βββ rules.js
β β βββ views
β β βββ admin
β β β βββ ActivityLog.vue
β β β βββ AdminPage.vue
β β β βββ AppSettings.vue
β β β βββ BrowserSessions.vue
β β β βββ DashboardPage.vue
β β β βββ PermissionsPage.vue
β β β βββ PhpInfo.vue
β β β βββ RolesPage.vue
β β β βββ UsersPage.vue
β β β βββ categories
β β β β βββ CategoryIndex.vue
β β β β βββ CreateCategory.vue
β β β β βββ EditCategory.vue
β β β βββ posts
β β β βββ AdminCreatePost.vue
β β β βββ AdminEditPost.vue
β β β βββ AdminPostsIndex.vue
β β βββ auth
β β β βββ Verify.vue
β β β βββ passwords
β β β βββ ConfirmPage.vue
β β β βββ RequestReset.vue
β β β βββ ResetPage.vue
β β βββ category
β β β βββ CatPostsPage.vue
β β βββ errors
β β β βββ NotFound.vue
β β βββ home
β β β βββ HomePage.vue
β β βββ kiosk
β β βββ login
β β β βββ LoginPage.vue
β β βββ misc
β β β βββ AboutPage.vue
β β β βββ PricingPage.vue
β β β βββ SupportPage.vue
β β β βββ TermsPage.vue
β β βββ pages
β β β βββ user-settings
β β β βββ AccountAuthentication.vue
β β β βββ AccountData.vue
β β β βββ AccountPage.vue
β β β βββ PasswordPage.vue
β β β βββ ProfilePage.vue
β β β βββ SettingsNav.vue
β β β βββ SettingsNavLink.vue
β β β βββ SettingsPage.vue
β β β βββ UserDownloadData.vue
β β βββ posts
β β β βββ PublicIndex.vue
β β β βββ PublicPostDetails.vue
β β βββ register
β β β βββ RegisterPage.vue
β β βββ templates
β β βββ Bare.vue
β β βββ Blank.vue
β βββ lang
β βββ pwa
β β βββ serviceworker.js
β β βββ sw.js
β βββ views
β βββ app.blade.php
β βββ auth
β β βββ login.blade.php
β β βββ passwords
β β β βββ confirm.blade.php
β β β βββ email.blade.php
β β β βββ reset.blade.php
β β βββ register.blade.php
β β βββ verify.blade.php
β βββ home.blade.php
β βββ layouts
β β βββ app.blade.php
β β βββ master.blade.php
β βββ socialite
β βββ callback.blade.php
β βββ denied.blade.php
βββ routes
β βββ api.php
β βββ channels.php
β βββ console.php
β βββ web.php
βββ tailwind.config.js
βββ tailwindcss-perspective.js
βββ vite.config.js
βββ vue.config.js
105 directories, 437 files
- Tree command can be installed using brew:
brew install tree
- File tree generated using command
tree -a -I '.git|node_modules|vendor|build|storage|tests|.DS_Store|.env'
Laravel-Spa is licensed under the MIT license. Enjoy!