This project costs me $22/month to be hosted on Vultr.
Please consider supporting my work if you use & find it useful. â¤ď¸
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
- Sanctum
- Socialite
- Vite
- Vue 3
- TailwindCSS (w/
@tailwindcss/forms
and@tailwindcss/aspect-ratio
) - Vue Router
- Vuex
- Axios
- 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
- 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 | |
---|---|
superadmin@superadmin.com | password |
admin@admin.com | password |
user@user.com | 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
âââ .browserslistrc
âââ .editorconfig
âââ .env.example
âââ .env.travis
âââ .eslintrc.js
âââ .gitattributes
âââ .github
â  âââ FUNDING.yml
â  âââ dependabot.yml
â  âââ labeler.yml
â  âââ workflows
â  âââ changelog.yml
â  âââ codeql.yml
â  âââ create-release.yml
â  âââ dependency-review.yml
â  âââ deploy.yml
â  âââ gitguardian.yml
â  âââ greetings.yml
â  âââ labeler.yml
â  âââ laravel.yml
â  âââ manual.yml
â  âââ node.js.yml
â  âââ php.yml
â  âââ release.yml
â  âââ sentry.yml
â  âââ stale.yml
âââ .gitignore
âââ .npmrc
âââ .prettierignore
âââ .scripts
â  âââ deploy.sh
âââ .styleci.yml
âââ .travis.yml
âââ LICENSE
âââ README.md
âââ SECURITY.md
âââ app
â  âââ Console
â  â  âââ Kernel.php
â  âââ Exceptions
â  â  âââ Handler.php
â  â  âââ SocialProviderDeniedException.php
â  âââ Http
â  â  âââ Controllers
â  â  â  âââ AppSettingsController.php
â  â  â  âââ AppleSocialController.php
â  â  â  âââ Auth
â  â  â  â  âââ AuthController.php
â  â  â  â  âââ ForgotPasswordController.php
â  â  â  â  âââ PasswordController.php
â  â  â  â  âââ RegisterController.php
â  â  â  â  âââ ResetPasswordController.php
â  â  â  â  âââ SocialiteController.php
â  â  â  â  âââ VerificationController.php
â  â  â  âââ Controller.php
â  â  â  âââ DashboardController.php
â  â  â  âââ ImpersonateController.php
â  â  â  âââ PermissionsController.php
â  â  â  âââ ProfileController.php
â  â  â  âââ RolesController.php
â  â  â  âââ ServerInfoController.php
â  â  â  âââ UserController.php
â  â  â  âââ UsersController.php
â  â  âââ Kernel.php
â  â  âââ Middleware
â  â  â  âââ AddContentSecurityPolicyHeaders.php
â  â  â  âââ Authenticate.php
â  â  â  âââ EncryptCookies.php
â  â  â  âââ PreventRequestsDuringMaintenance.php
â  â  â  âââ RedirectIfAuthenticated.php
â  â  â  âââ TrimStrings.php
â  â  â  âââ TrustHosts.php
â  â  â  âââ TrustProxies.php
â  â  â  âââ VerifyCsrfToken.php
â  â  âââ Requests
â  â  â  âââ AppSettings
â  â  â  âââ Permissions
â  â  â  â  âââ CreatePermissionRequest.php
â  â  â  â  âââ GetPermissionsRequest.php
â  â  â  â  âââ UpdatePermissionRequest.php
â  â  â  âââ Roles
â  â  â  â  âââ CreateRoleRequest.php
â  â  â  â  âââ UpdateRoleRequest.php
â  â  â  âââ Users
â  â  â  âââ CreateUserRequest.php
â  â  â  âââ GetUserRolesRequest.php
â  â  â  âââ ImpersonateUserRequest.php
â  â  â  âââ UpdateUserRequest.php
â  â  âââ Resources
â  â  âââ Permissions
â  â  â  âââ PermissionResource.php
â  â  â  âââ PermissionsCollection.php
â  â  âââ Users
â  â  âââ RoleResource.php
â  â  âââ RolesCollection.php
â  âââ Jobs
â  â  âââ PersonalDataExportJob.php
â  âââ Mail
â  â  âââ ExceptionOccured.php
â  âââ Models
â  â  âââ Impersonation.php
â  â  âââ Permission.php
â  â  âââ Role.php
â  â  âââ Setting.php
â  â  âââ SocialiteProvider.php
â  â  âââ User.php
â  âââ Notifications
â  â  âââ PersonalDataExportedNotification.php
â  â  âââ ResetPasswordNotification.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
â  âââ android-chrome-192x192.png
â  âââ android-chrome-512x512.png
â  âââ app.php
â  âââ apple-touch-icon.png
â  âââ cache
â  â  âââ .gitignore
â  â  âââ packages.php
â  â  âââ routes-v7.php
â  â  âââ services.php
â  âââ favicon-16x16.png
â  âââ favicon-32x32.png
â  âââ favicon.ico
â  âââ ssr
â  âââ android-chrome-192x192.png
â  âââ android-chrome-512x512.png
â  âââ app2.mjs
â  âââ apple-touch-icon.png
â  âââ assets
â  â  âââ About-8055ba51.mjs
â  â  âââ Account-db07883a.mjs
â  â  âââ Admin-1aef526f.mjs
â  â  âââ AdminLayout-b06d3e9f.mjs
â  â  âââ AppSettings-493dc486.mjs
â  â  âââ Dashboard-00d0a96f.mjs
â  â  âââ Errors-cfd7b346.mjs
â  â  âââ ForgotPassword-ca93934f.mjs
â  â  âââ Home-092f52e0.mjs
â  â  âââ Login-3d895534.mjs
â  â  âââ NotFound-52f67599.mjs
â  â  âââ Password-0f549b05.mjs
â  â  âââ Permissions-d779932d.mjs
â  â  âââ PhpInfo-c54b8303.mjs
â  â  âââ Profile-8dc4ce3e.mjs
â  â  âââ Register-c8d7fa41.mjs
â  â  âââ ResetPassword-4e7ca3b7.mjs
â  â  âââ Roles-53fcb449.mjs
â  â  âââ RolesBadges-5ee6b7bc.mjs
â  â  âââ Settings-a3568c63.mjs
â  â  âââ SocialiteLogins-6af0e372.mjs
â  â  âââ Success-4b3d058c.mjs
â  â  âââ Terms-3b1605fc.mjs
â  â  âââ Users-fcead5b0.mjs
â  â  âââ VerifyEmail-3b245fb1.mjs
â  â  âââ default.css_vue_type_style_index_0_src_true_lang-6d22712f.mjs
â  â  âââ workbox-window.prod.es5-77e1b1e1.mjs
â  â  âââ zoho-monocrome-black-b48ed5c0.mjs
â  âââ favicon-16x16.png
â  âââ favicon-32x32.png
â  âââ favicon.ico
â  âââ js-bundle-stats.html
â  âââ manifest.webmanifest
â  âââ pluginWebUpdateNotice
â  âââ webUpdateNoticeInjectScript.global.js
â  âââ webUpdateNoticeInjectStyle.css
â  âââ web_version_by_plugin.json
âââ composer.json
âââ composer.lock
âââ config
â  âââ app.php
â  âââ auth.php
â  âââ broadcasting.php
â  âââ cache.php
â  âââ cors.php
â  âââ database.php
â  âââ debugbar.php
â  âââ exceptions.php
â  âââ filesystems.php
â  âââ hashing.php
â  âââ laravel-https.php
â  âââ laravel-logger.php
â  âââ laravel-page-speed.php
â  âââ laravelpwa.php
â  âââ logging.php
â  âââ mail.php
â  âââ personal-data-export.php
â  âââ queue.php
â  âââ roles.php
â  âââ sanctum.php
â  âââ sentry.php
â  âââ services.php
â  âââ session.php
â  âââ settings.php
â  âââ users.php
â  âââ view.php
âââ database
â  âââ .gitignore
â  âââ factories
â  â  âââ UserFactory.php
â  âââ migrations
â  â  âââ 2014_10_00_000000_create_settings_table.php
â  â  âââ 2014_10_00_000001_add_group_column_on_settings_table.php
â  â  âââ 2014_10_12_000000_create_users_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_08_19_000000_create_failed_jobs_table.php
â  â  âââ 2019_12_14_000001_create_personal_access_tokens_table.php
â  â  âââ 2021_04_26_093603_create_jobs_table.php
â  â  âââ 2022_09_05_192055_update_users_table.php
â  â  âââ 2022_11_02_051027_update_settings_table.php
â  â  âââ 2022_11_28_073632_create_socialite_providers_table.php
â  â  âââ 2022_12_06_061947_create_impersonations_table.php
â  âââ seeders
â  âââ AppSettingsSeeder.php
â  âââ ConnectRelationshipsSeeder.php
â  âââ DatabaseSeeder.php
â  âââ PermissionsTableSeeder.php
â  âââ RolesTableSeeder.php
â  âââ UsersTableSeeder.php
âââ env.d.ts
âââ package-lock.json
âââ package.json
âââ phpunit.xml
âââ postcss.config.js
âââ prettier.config.js
âââ prettierrc.json
âââ public
â  âââ .htaccess
â  âââ android-chrome-192x192.png
â  âââ android-chrome-512x512.png
â  âââ apple-touch-icon.png
â  âââ css
â  â  âââ app.css
â  âââ favicon-16x16.png
â  âââ favicon-32x32.png
â  âââ favicon.ico
â  âââ images
â  â  âââ icons
â  â  âââ icon-128x128.png
â  â  âââ icon-144x144.png
â  â  âââ icon-152x152.png
â  â  âââ icon-192x192.png
â  â  âââ icon-384x384.png
â  â  âââ icon-512x512.png
â  â  âââ icon-72x72.png
â  â  âââ icon-96x96.png
â  â  âââ splash-1125x2436.png
â  â  âââ splash-1242x2208.png
â  â  âââ splash-1242x2688.png
â  â  âââ splash-1536x2048.png
â  â  âââ splash-1668x2224.png
â  â  âââ splash-1668x2388.png
â  â  âââ splash-2048x2732.png
â  â  âââ splash-640x1136.png
â  â  âââ splash-750x1334.png
â  â  âââ splash-828x1792.png
â  âââ index.php
â  âââ js
â  â  âââ app.js
â  â  âââ resources_js_Views_ForgotPassword_vue.js
â  â  âââ resources_js_Views_Home_vue.js
â  â  âââ resources_js_Views_Login_vue.js
â  â  âââ resources_js_Views_Password_vue.js
â  â  âââ resources_js_Views_Profile_vue.js
â  â  âââ resources_js_Views_Register_vue.js
â  â  âââ resources_js_Views_ResetPassword_vue.js
â  â  âââ resources_js_Views_Settings_vue.js
â  â  âââ resources_js_Views_VerifyEmail_vue.js
â  â  âââ resources_js_Views_Welcome_vue.js
â  â  âââ s-code.min.js
â  âââ mix-manifest.json
â  âââ robots.txt
â  âââ serviceworker.js
â  âââ sw.ts
â  âââ web.config
âââ 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
â  â  âââ plugs.png
â  â  âââ vendor-logos
â  â  âââ vultr-1.webp
â  â  âââ vultr-2.png
â  â  âââ zoho-monocrome-black.png
â  â  âââ zoho-monocrome-white.png
â  âââ js
â  â  âââ app.js
â  â  âââ bootstrap.js
â  â  âââ components
â  â  â  âââ AppFooter.vue
â  â  â  âââ AppNav.vue
â  â  â  âââ BmcButtons.vue
â  â  â  âââ CircleSvg.vue
â  â  â  âââ Errors.vue
â  â  â  âââ GHButton.vue
â  â  â  âââ GHButtons.vue
â  â  â  âââ OctoCat.vue
â  â  â  âââ Pagination.vue
â  â  â  âââ PatreonButton.vue
â  â  â  âââ PerPage.vue
â  â  â  âââ ReloadPrompt.vue
â  â  â  âââ Success.vue
â  â  â  âââ VerifyNotice.vue
â  â  â  âââ VultrReferral.vue
â  â  â  âââ account
â  â  â  â  âââ AccountAdministration.vue
â  â  â  â  âââ AccountAuthentication.vue
â  â  â  â  âââ AccountData.vue
â  â  â  â  âââ AccountPrivacy.vue
â  â  â  âââ admin
â  â  â  â  âââ AdminNavBar.vue
â  â  â  â  âââ AdminSidebar.vue
â  â  â  â  âââ RolesTable.vue
â  â  â  â  âââ RolesTableRow.vue
â  â  â  â  âââ UsersTable.vue
â  â  â  â  âââ UsersTableRow.vue
â  â  â  âââ auth
â  â  â  â  âââ SocialiteLogins.vue
â  â  â  âââ common
â  â  â  â  âââ AppButton.vue
â  â  â  â  âââ AppDeleteModal.vue
â  â  â  â  âââ AppModal.vue
â  â  â  â  âââ AppSwitch.vue
â  â  â  â  âââ AppTable.vue
â  â  â  â  âââ AppToast.vue
â  â  â  âââ form
â  â  â  â  âââ AppSettingTextInput.vue
â  â  â  â  âââ AppSettingTextarea.vue
â  â  â  â  âââ AppSettingToggle.vue
â  â  â  âââ loaders
â  â  â  â  âââ AnimatedTableLoader.vue
â  â  â  âââ roles
â  â  â  â  âââ PermissionFormModal.vue
â  â  â  â  âââ RoleFormModal.vue
â  â  â  â  âââ RolesBadges.vue
â  â  â  âââ users
â  â  â  âââ UserDownloadData.vue
â  â  â  âââ UserForm.vue
â  â  â  âââ UserFormModal.vue
â  â  âââ layouts
â  â  â  âââ AdminLayout.vue
â  â  âââ middleware
â  â  â  âââ auth.js
â  â  â  âââ guest.js
â  â  â  âââ middlewarePipeline.js
â  â  â  âââ roleAdmin.js
â  â  â  âââ roleSuperAdmin.js
â  â  â  âââ roleUser.js
â  â  âââ router
â  â  â  âââ index.js
â  â  â  âââ routes.js
â  â  âââ services
â  â  â  âââ analytics.js
â  â  â  âââ asteroids.js
â  â  â  âââ common.js
â  â  â  âââ excanvas.js
â  â  â  âââ s-code.js
â  â  â  âââ s-code.min.js
â  â  â  âââ users.js
â  â  âââ store
â  â  â  âââ index.js
â  â  â  âââ modules
â  â  â  â  âââ auth.js
â  â  â  â  âââ sidebar.js
â  â  â  â  âââ toast.js
â  â  â  âââ mutation-types.js
â  â  âââ views
â  â  âââ App.vue
â  â  âââ Blank.vue
â  â  âââ admin
â  â  â  âââ Admin.vue
â  â  â  âââ AppSettings.vue
â  â  â  âââ Permissions.vue
â  â  â  âââ PhpInfo.vue
â  â  â  âââ Roles.vue
â  â  â  âââ Users.vue
â  â  âââ pages
â  â  âââ About.vue
â  â  âââ Dashboard.vue
â  â  âââ ForgotPassword.vue
â  â  âââ Home.vue
â  â  âââ Login.vue
â  â  âââ NotFound.vue
â  â  âââ Register.vue
â  â  âââ ResetPassword.vue
â  â  âââ Terms.vue
â  â  âââ VerifyEmail.vue
â  â  âââ auth
â  â  âââ settings
â  â  âââ Account.vue
â  â  âââ Password.vue
â  â  âââ Profile.vue
â  â  âââ Settings.vue
â  âââ lang
â  â  âââ en
â  â  âââ auth.php
â  â  âââ pagination.php
â  â  âââ passwords.php
â  â  âââ personal-data-exports.php
â  â  âââ validation.php
â  âââ views
â  âââ app.blade.php
â  âââ emails
â  â  âââ exception.blade.php
â  âââ errors
â  â  âââ 401.blade.php
â  â  âââ 403.blade.php
â  â  âââ 500.blade.php
â  â  âââ 503.blade.php
â  â  âââ layout.blade.php
â  âââ socialite
â  â  âââ callback.blade.php
â  â  âââ denied.blade.php
â  âââ welcome.blade.php
âââ routes
â  âââ api.php
â  âââ channels.php
â  âââ console.php
â  âââ web.php
âââ server.php
âââ tailwind.config.js
âââ tailwindcss-perspective.js
âââ tsconfig.json
âââ tsconfig.vite-config.json
âââ vite.config.ts
76 directories, 380 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!