Laravel Soundboard
Laravel 5.8, Bootstrap 4, Vue.js, BootstrapVue, and Argon Dashboard
An open source Laravel Soundboard with Admin Panel CRUD (Create Read Update Delete) built onTable of contents
- Features
- Installation Instructions
- Seeds
- Commands
- Configs
- Routes
- Screenshots
- File Tree
- Opening an Issue
- License
Features
Laravel Soundboard Features |
---|
Built on Laravel 5.8 |
Built on Bootstrap 4 |
Front End Built on Vue.js and BootstrapVue |
Admin Built on Argon Dashboard Laravel |
Uses webpack.js and eslint |
Uses MySQL Database (can be changed) |
Uses Artisan to manage database migration, schema creations, and create/publish page controller templates |
Dependencies are managed with COMPOSER |
CRUD (Create, Read, Update, Delete) User Management |
CRUD (Create, Read, Update, Delete) Sound Files |
Can record sounds directly to file system |
Makes use of Language Localization Files |
Active Nav states using Laravel Requests |
User Roles/ACL Implementation |
Admin PHP Information UI using Laravel PHP Info Package |
Activity Logging using Laravel-logger |
Email Error Handling with laravel-exception-notifier |
Front-end bootstrap themes with admin management panel from Bootswatch |
Pull Built in sounds files from Git Repository |
Admin uses email address based by Gravatar by Creativeorange |
Installation Instructions
- Run
git clone https://github.com/jeremykenedy/laravel-soundboard.git laravel-soundboard
- Create a MySQL database for the project
mysql -u root -p
, if using Vagrant:mysql -u homestead -psecret
create database soundboard;
\q
- From the projects root run
cp .env.example .env
- Configure your
.env
file - Run
composer install
from the projects root folder - Generate Application key from the projects root folder by running:
php artisan key:generate
- Pull in seeded sound files from the projects root folder by running:
php artisan get-sounds
- 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.
Build the Front End Assets with Webpack
Using NPM:
- From the projects root folder run
npm install
- From the projects root folder run
npm run dev
ornpm run production
- You can watch assets with
npm run watch
Using Yarn:
- From the projects root folder run
yarn install
- From the projects root folder run
yarn run dev
oryarn run production
- You can watch assets with
yarn run watch
Laravel Homestead
And thats it with the caveat of setting up and configuring your development environment. I recommendSeeds
- DatabaseSeeder.php
- PermissionsTableSeeder.php
- RolesTableSeeder.php
- ConnectRelationshipsSeeder.php
- SoundsTableSeeder.php
- ThemesTableSeeder.php
- SettingsTableSeeder.php
- UsersTableSeeder.php
Seeded Roles
Role | Level |
---|---|
Unverified | Level 0 |
User | Level 1 |
Admin | Level 4 |
Super Admin | Level 5 |
Seeded Permissions
Name | Slug |
---|---|
Can View Users | view.users |
Can Create Users | create.users |
Can Edit Users | edit.users |
Can Delete Users | delete.users |
Super Admin Permissions | perms.super-admin |
Admin Permissions | perms.admin |
User Permissions | perms.use |
Seeded Users
Password | Access | Config | Status | |
---|---|---|---|---|
[email protected] | password | Super Admin Access | Seeded from .env | Required |
[email protected] | password | Super Admin Access | Seeded from .env | Optional |
[email protected] | password | User Access | Seeded from .env | Optional |
- All Controlled by the
.env
file.
Themes Seed List
Commands
Pull Seeded Sound Files
- You can pull in the seeded sound files from GitHub with the following Artisan Command:
php artisan get-seeded-sounds
Pull Sound Files
- You can pull in sound files from GitHub with the following Artisan Command:
php artisan get-sounds
Configs
Config File
Here is a list of the custom config files that have been added or modified to the project:
Env Variables
Here is a list of the additonal added .env
variables:
INITIAL_SEEDED_SUPER_ADMIN_USERNAME='Super Admin'
INITIAL_SEEDED_SUPER_ADMIN_USEREMAIL='[email protected]'
INITIAL_SEEDED_SUPER_ADMIN_USERPASSWORD='password'
INITIAL_SEEDED_ADMIN_ENABLED=false
INITIAL_SEEDED_ADMIN_USERNAME='Admin'
INITIAL_SEEDED_ADMIN_USEREMAIL='[email protected]'
INITIAL_SEEDED_ADMIN_USERPASSWORD='password'
INITIAL_SEEDED_USER_ENABLED=false
INITIAL_SEEDED_USER_USERNAME='User'
INITIAL_SEEDED_USER_USEREMAIL='[email protected]'
INITIAL_SEEDED_USER_USERPASSWORD='password'
SOUNDBOARD_APP_NAME="${APP_NAME}"
SOUNDBOARD_DEFAULT_DESCRIPTION="SoundBoard is an open source soundboard built on Laravel and VueJS"
SOUNDBOARD_DEFAULT_AUTHOR="Jeremy Kenedy"
SOUNDBOARD_GOOGLEANALYTICSID=null
SOUNDBOARD_SOUNDS_REPO=https://github.com/jeremykenedy/jeremy-sound-board
# Roles Database Seeder Settings
ROLES_SEED_DEFAULT_PERMISSIONS=false
ROLES_SEED_DEFAULT_ROLES=false
ROLES_SEED_DEFAULT_RELATIONSHIPS=false
ROLES_SEED_DEFAULT_USERS=false
# Roles GUI Settings
ROLES_GUI_ENABLED=true
ROLES_GUI_MIDDLEWARE='role:super.admin'
ROLES_GUI_CREATE_ROLE_MIDDLEWARE_TYPE='super.admin'
ROLES_GUI_CREATE_PERMISSION_MIDDLEWARE_TYPE='super.admin'
ROLES_API_MIDDLEWARE='super.admin'
ROLES_API_CREATE_ROLE_MIDDLEWARE_TYPE='super.admin'
ROLES_API_CREATE_PERMISSION_MIDDLEWARE_TYPE='super.admin'
ROLES_GUI_BLADE_EXTENDED='layouts.app'
# Logger
LARAVEL_LOGGER_ROLES_MIDDLWARE=role:super.admin
LARAVEL_LOGGER_USER_MODEL=App\Models\User
LARAVEL_LOGGER_LOG_RECORD_FAILURES_TO_FILE=true
LARAVEL_LOGGER_FLASH_MESSAGE_BLADE_ENABLED=true
LARAVEL_LOGGER_LAYOUT=layouts.app
LARAVEL_LOGGER_BOOTSTRAP_VERSION=4
LARAVEL_LOGGER_BLADE_PLACEMENT_CSS=cs
# Error Emails
EMAIL_EXCEPTION_ENABLED=false
EMAIL_EXCEPTION_FROM="${MAIL_USERNAME}"
EMAIL_EXCEPTION_TO='[email protected], [email protected]'
EMAIL_EXCEPTION_CC=''
EMAIL_EXCEPTION_BCC=''
EMAIL_EXCEPTION_SUBJECT='Error on laravel-soundboard'
# octocat
SOUNDBOARD_OCTOCAT_ENABLED=true
Language Files
Routes
+--------+----------------------------------------+----------------------------------------------------------+-----------------------------------------------+-----------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------+
| Domain | Method | URI | Name | Action | Middleware |
+--------+----------------------------------------+----------------------------------------------------------+-----------------------------------------------+-----------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------+
| | GET|HEAD | / | home | App\Http\Controllers\FrontEndController@index | web,activity |
| | GET|HEAD | activity | activity | jeremykenedy\LaravelLogger\App\Http\Controllers\LaravelLoggerController@showAccessLog | web,auth,activity |
| | DELETE | activity/clear-activity | clear-activity | jeremykenedy\LaravelLogger\App\Http\Controllers\LaravelLoggerController@clearActivityLog | web,auth,activity |
| | GET|HEAD | activity/cleared | cleared | jeremykenedy\LaravelLogger\App\Http\Controllers\LaravelLoggerController@showClearedActivityLog | web,auth,activity |
| | GET|HEAD | activity/cleared/log/{id} | | jeremykenedy\LaravelLogger\App\Http\Controllers\LaravelLoggerController@showClearedAccessLogEntry | web,auth,activity |
| | DELETE | activity/destroy-activity | destroy-activity | jeremykenedy\LaravelLogger\App\Http\Controllers\LaravelLoggerController@destroyActivityLog | web,auth,activity |
| | GET|HEAD | activity/log/{id} | | jeremykenedy\LaravelLogger\App\Http\Controllers\LaravelLoggerController@showAccessLogEntry | web,auth,activity |
| | POST | activity/restore-log | restore-activity | jeremykenedy\LaravelLogger\App\Http\Controllers\LaravelLoggerController@restoreClearedActivityLog | web,auth,activity |
| | GET|HEAD | admin | admin | App\Http\Controllers\AdminController@index | web,auth,permission:perms.user,activity |
| | POST | api/sound/delete/{id} | | App\Http\Controllers\Api\ApiSoundsController@destroy | api,activity |
| | PATCH | api/sound/updateEnabled/{id} | | App\Http\Controllers\Api\ApiSoundsController@updateEnabled | api,activity |
| | GET|HEAD | api/sounds | | App\Http\Controllers\Api\ApiSoundsController@index | api,activity |
| | PUT | api/sounds/updateAll | | App\Http\Controllers\Api\ApiSoundsController@updateAllSortOrder | api,activity |
| | POST | api/upload-sound | upload-sound | App\Http\Controllers\Api\ApiSoundsController@uploadSound | api,activity |
| | GET|HEAD | filemanager | filemanager | App\Http\Controllers\AdminController@filemanager | web,auth,permission:perms.admin,activity |
| | GET|HEAD | files | unisharp.lfm.show | UniSharp\LaravelFilemanager\Controllers\LfmController@show | web,auth,\UniSharp\LaravelFilemanager\Middlewares\MultiUser,\UniSharp\LaravelFilemanager\Middlewares\CreateDefaultFolder |
| | GET|HEAD | files/crop | unisharp.lfm.getCrop | UniSharp\LaravelFilemanager\Controllers\CropController@getCrop | web,auth,\UniSharp\LaravelFilemanager\Middlewares\MultiUser,\UniSharp\LaravelFilemanager\Middlewares\CreateDefaultFolder |
| | GET|HEAD | files/cropimage | unisharp.lfm.getCropimage | UniSharp\LaravelFilemanager\Controllers\CropController@getCropimage | web,auth,\UniSharp\LaravelFilemanager\Middlewares\MultiUser,\UniSharp\LaravelFilemanager\Middlewares\CreateDefaultFolder |
| | GET|HEAD | files/cropnewimage | unisharp.lfm.getCropimage | UniSharp\LaravelFilemanager\Controllers\CropController@getNewCropimage | web,auth,\UniSharp\LaravelFilemanager\Middlewares\MultiUser,\UniSharp\LaravelFilemanager\Middlewares\CreateDefaultFolder |
| | GET|HEAD | files/delete | unisharp.lfm.getDelete | UniSharp\LaravelFilemanager\Controllers\DeleteController@getDelete | web,auth,\UniSharp\LaravelFilemanager\Middlewares\MultiUser,\UniSharp\LaravelFilemanager\Middlewares\CreateDefaultFolder |
| | GET|HEAD | files/deletefolder | unisharp.lfm.getDeletefolder | UniSharp\LaravelFilemanager\Controllers\FolderController@getDeletefolder | web,auth,\UniSharp\LaravelFilemanager\Middlewares\MultiUser,\UniSharp\LaravelFilemanager\Middlewares\CreateDefaultFolder |
| | GET|HEAD | files/doresize | unisharp.lfm.performResize | UniSharp\LaravelFilemanager\Controllers\ResizeController@performResize | web,auth,\UniSharp\LaravelFilemanager\Middlewares\MultiUser,\UniSharp\LaravelFilemanager\Middlewares\CreateDefaultFolder |
| | GET|HEAD | files/download | unisharp.lfm.getDownload | UniSharp\LaravelFilemanager\Controllers\DownloadController@getDownload | web,auth,\UniSharp\LaravelFilemanager\Middlewares\MultiUser,\UniSharp\LaravelFilemanager\Middlewares\CreateDefaultFolder |
| | GET|HEAD | files/errors | unisharp.lfm.getErrors | UniSharp\LaravelFilemanager\Controllers\LfmController@getErrors | web,auth,\UniSharp\LaravelFilemanager\Middlewares\MultiUser,\UniSharp\LaravelFilemanager\Middlewares\CreateDefaultFolder |
| | GET|HEAD | files/folders | unisharp.lfm.getFolders | UniSharp\LaravelFilemanager\Controllers\FolderController@getFolders | web,auth,\UniSharp\LaravelFilemanager\Middlewares\MultiUser,\UniSharp\LaravelFilemanager\Middlewares\CreateDefaultFolder |
| | GET|HEAD | files/jsonitems | unisharp.lfm.getItems | UniSharp\LaravelFilemanager\Controllers\ItemsController@getItems | web,auth,\UniSharp\LaravelFilemanager\Middlewares\MultiUser,\UniSharp\LaravelFilemanager\Middlewares\CreateDefaultFolder |
| | GET|HEAD | files/newfolder | unisharp.lfm.getAddfolder | UniSharp\LaravelFilemanager\Controllers\FolderController@getAddfolder | web,auth,\UniSharp\LaravelFilemanager\Middlewares\MultiUser,\UniSharp\LaravelFilemanager\Middlewares\CreateDefaultFolder |
| | GET|HEAD | files/photos/{base_path}/{image_name} | unisharp.lfm. | UniSharp\LaravelFilemanager\Controllers\RedirectController@getImage | |
| | GET|HEAD | files/rename | unisharp.lfm.getRename | UniSharp\LaravelFilemanager\Controllers\RenameController@getRename | web,auth,\UniSharp\LaravelFilemanager\Middlewares\MultiUser,\UniSharp\LaravelFilemanager\Middlewares\CreateDefaultFolder |
| | GET|HEAD | files/resize | unisharp.lfm.getResize | UniSharp\LaravelFilemanager\Controllers\ResizeController@getResize | web,auth,\UniSharp\LaravelFilemanager\Middlewares\MultiUser,\UniSharp\LaravelFilemanager\Middlewares\CreateDefaultFolder |
| | GET|HEAD | files/sound-files/{base_path}/{file_name} | unisharp.lfm. | UniSharp\LaravelFilemanager\Controllers\RedirectController@getFile | |
| | GET|HEAD|POST|PUT|PATCH|DELETE|OPTIONS | files/upload | unisharp.lfm.upload | UniSharp\LaravelFilemanager\Controllers\UploadController@upload | web,auth,\UniSharp\LaravelFilemanager\Middlewares\MultiUser,\UniSharp\LaravelFilemanager\Middlewares\CreateDefaultFolder |
| | POST | login | | App\Http\Controllers\Auth\LoginController@login | web,activity,guest |
| | GET|HEAD | login | login | App\Http\Controllers\Auth\LoginController@showLoginForm | web,activity,guest |
| | POST | logout | logout | App\Http\Controllers\Auth\LoginController@logout | web,activity |
| | POST | password/email | password.email | App\Http\Controllers\Auth\ForgotPasswordController@sendResetLinkEmail | web,activity,guest |
| | POST | password/reset | password.update | App\Http\Controllers\Auth\ResetPasswordController@reset | web,activity,guest |
| | GET|HEAD | password/reset | password.request | App\Http\Controllers\Auth\ForgotPasswordController@showLinkRequestForm | web,activity,guest |
| | GET|HEAD | password/reset/{token} | password.reset | App\Http\Controllers\Auth\ResetPasswordController@showResetForm | web,activity,guest |
| | GET|HEAD | permission-deleted/{id} | laravelroles::permission-show-deleted | jeremykenedy\LaravelRoles\App\Http\Controllers\LaravelpermissionsDeletedController@show | web,auth,role:super.admin |
| | DELETE | permission-destroy/{id} | laravelroles::permission-item-destroy | jeremykenedy\LaravelRoles\App\Http\Controllers\LaravelpermissionsDeletedController@destroy | web,auth,role:super.admin |
| | PUT | permission-restore/{id} | laravelroles::permission-restore | jeremykenedy\LaravelRoles\App\Http\Controllers\LaravelpermissionsDeletedController@restorePermission | web,auth,role:super.admin |
| | POST | permissions | laravelroles::permissions.store | jeremykenedy\LaravelRoles\App\Http\Controllers\LaravelPermissionsController@store | web,auth,role:super.admin |
| | GET|HEAD | permissions | laravelroles::permissions.index | jeremykenedy\LaravelRoles\App\Http\Controllers\LaravelPermissionsController@index | web,auth,role:super.admin |
| | GET|HEAD | permissions-deleted | laravelroles::permissions-deleted | jeremykenedy\LaravelRoles\App\Http\Controllers\LaravelpermissionsDeletedController@index | web,auth,role:super.admin |
| | DELETE | permissions-deleted-destroy-all | laravelroles::destroy-all-deleted-permissions | jeremykenedy\LaravelRoles\App\Http\Controllers\LaravelpermissionsDeletedController@destroyAllDeletedPermissions | web,auth,role:super.admin |
| | POST | permissions-deleted-restore-all | laravelroles::permissions-deleted-restore-all | jeremykenedy\LaravelRoles\App\Http\Controllers\LaravelpermissionsDeletedController@restoreAllDeletedPermissions | web,auth,role:super.admin |
| | GET|HEAD | permissions/create | laravelroles::permissions.create | jeremykenedy\LaravelRoles\App\Http\Controllers\LaravelPermissionsController@create | web,auth,role:super.admin |
| | DELETE | permissions/{permission} | laravelroles::permissions.destroy | jeremykenedy\LaravelRoles\App\Http\Controllers\LaravelPermissionsController@destroy | web,auth,role:super.admin |
| | PUT|PATCH | permissions/{permission} | laravelroles::permissions.update | jeremykenedy\LaravelRoles\App\Http\Controllers\LaravelPermissionsController@update | web,auth,role:super.admin |
| | GET|HEAD | permissions/{permission} | laravelroles::permissions.show | jeremykenedy\LaravelRoles\App\Http\Controllers\LaravelPermissionsController@show | web,auth,role:super.admin |
| | GET|HEAD | permissions/{permission}/edit | laravelroles::permissions.edit | jeremykenedy\LaravelRoles\App\Http\Controllers\LaravelPermissionsController@edit | web,auth,role:super.admin |
| | GET|HEAD | phpinfo | laravelPhpInfo::phpinfo | jeremykenedy\LaravelPhpInfo\App\Http\Controllers\LaravelPhpInfoController@phpinfo | web,auth,role:super.admin |
| | PUT | profile | profile.update | App\Http\Controllers\ProfileController@update | web,auth,permission:perms.user,activity |
| | GET|HEAD | profile | profile.edit | App\Http\Controllers\ProfileController@edit | web,auth,permission:perms.user,activity |
| | PUT | profile/password | profile.password | App\Http\Controllers\ProfileController@password | web,auth,permission:perms.user,activity |
| | POST | register | | App\Http\Controllers\Auth\RegisterController@register | web,activity,guest |
| | GET|HEAD | register | register | App\Http\Controllers\Auth\RegisterController@showRegistrationForm | web,activity,guest |
| | GET|HEAD | role-deleted/{id} | laravelroles::role-show-deleted | jeremykenedy\LaravelRoles\App\Http\Controllers\LaravelRolesDeletedController@show | web,auth,role:super.admin |
| | DELETE | role-destroy/{id} | laravelroles::role-item-destroy | jeremykenedy\LaravelRoles\App\Http\Controllers\LaravelRolesDeletedController@destroy | web,auth,role:super.admin |
| | PUT | role-restore/{id} | laravelroles::role-restore | jeremykenedy\LaravelRoles\App\Http\Controllers\LaravelRolesDeletedController@restoreRole | web,auth,role:super.admin |
| | GET|HEAD | roles | laravelroles::roles.index | jeremykenedy\LaravelRoles\App\Http\Controllers\LaravelRolesController@index | web,auth,role:super.admin |
| | POST | roles | laravelroles::roles.store | jeremykenedy\LaravelRoles\App\Http\Controllers\LaravelRolesController@store | web,auth,role:super.admin |
| | GET|HEAD | roles-deleted | laravelroles::roles-deleted | jeremykenedy\LaravelRoles\App\Http\Controllers\LaravelRolesDeletedController@index | web,auth,role:super.admin |
| | DELETE | roles-deleted-destroy-all | laravelroles::destroy-all-deleted-roles | jeremykenedy\LaravelRoles\App\Http\Controllers\LaravelRolesDeletedController@destroyAllDeletedRoles | web,auth,role:super.admin |
| | POST | roles-deleted-restore-all | laravelroles::roles-deleted-restore-all | jeremykenedy\LaravelRoles\App\Http\Controllers\LaravelRolesDeletedController@restoreAllDeletedRoles | web,auth,role:super.admin |
| | GET|HEAD | roles/create | laravelroles::roles.create | jeremykenedy\LaravelRoles\App\Http\Controllers\LaravelRolesController@create | web,auth,role:super.admin |
| | PUT|PATCH | roles/{role} | laravelroles::roles.update | jeremykenedy\LaravelRoles\App\Http\Controllers\LaravelRolesController@update | web,auth,role:super.admin |
| | GET|HEAD | roles/{role} | laravelroles::roles.show | jeremykenedy\LaravelRoles\App\Http\Controllers\LaravelRolesController@show | web,auth,role:super.admin |
| | DELETE | roles/{role} | laravelroles::roles.destroy | jeremykenedy\LaravelRoles\App\Http\Controllers\LaravelRolesController@destroy | web,auth,role:super.admin |
| | GET|HEAD | roles/{role}/edit | laravelroles::roles.edit | jeremykenedy\LaravelRoles\App\Http\Controllers\LaravelRolesController@edit | web,auth,role:super.admin |
| | POST | sounds | storesound | App\Http\Controllers\SoundsController@store | web,auth,permission:perms.admin,activity |
| | GET|HEAD | sounds | sounds | App\Http\Controllers\SoundsController@index | web,auth,permission:perms.admin,activity |
| | GET|HEAD | sounds/create | createsound | App\Http\Controllers\SoundsController@create | web,auth,permission:perms.admin,activity |
| | GET|HEAD | sounds/create-recording | createrecording | App\Http\Controllers\SoundsController@createRecording | web,auth,permission:perms.admin,activity |
| | PUT|PATCH | sounds/{sound} | updatesound | App\Http\Controllers\SoundsController@update | web,auth,permission:perms.admin,activity |
| | DELETE | sounds/{sound} | sounds.destroy | App\Http\Controllers\SoundsController@destroy | web,auth,permission:perms.admin,activity |
| | GET|HEAD | sounds/{sound} | showsound | App\Http\Controllers\SoundsController@show | web,auth,permission:perms.admin,activity |
| | GET|HEAD | sounds/{sound}/edit | editsound | App\Http\Controllers\SoundsController@edit | web,auth,permission:perms.admin,activity |
| | POST | telescope/telescope-api/cache | | Laravel\Telescope\Http\Controllers\CacheController@index | telescope |
| | GET|HEAD | telescope/telescope-api/cache/{telescopeEntryId} | | Laravel\Telescope\Http\Controllers\CacheController@show | telescope |
| | POST | telescope/telescope-api/commands | | Laravel\Telescope\Http\Controllers\CommandsController@index | telescope |
| | GET|HEAD | telescope/telescope-api/commands/{telescopeEntryId} | | Laravel\Telescope\Http\Controllers\CommandsController@show | telescope |
| | POST | telescope/telescope-api/dumps | | Laravel\Telescope\Http\Controllers\DumpController@index | telescope |
| | POST | telescope/telescope-api/events | | Laravel\Telescope\Http\Controllers\EventsController@index | telescope |
| | GET|HEAD | telescope/telescope-api/events/{telescopeEntryId} | | Laravel\Telescope\Http\Controllers\EventsController@show | telescope |
| | POST | telescope/telescope-api/exceptions | | Laravel\Telescope\Http\Controllers\ExceptionController@index | telescope |
| | GET|HEAD | telescope/telescope-api/exceptions/{telescopeEntryId} | | Laravel\Telescope\Http\Controllers\ExceptionController@show | telescope |
| | POST | telescope/telescope-api/gates | | Laravel\Telescope\Http\Controllers\GatesController@index | telescope |
| | GET|HEAD | telescope/telescope-api/gates/{telescopeEntryId} | | Laravel\Telescope\Http\Controllers\GatesController@show | telescope |
| | POST | telescope/telescope-api/jobs | | Laravel\Telescope\Http\Controllers\QueueController@index | telescope |
| | GET|HEAD | telescope/telescope-api/jobs/{telescopeEntryId} | | Laravel\Telescope\Http\Controllers\QueueController@show | telescope |
| | POST | telescope/telescope-api/logs | | Laravel\Telescope\Http\Controllers\LogController@index | telescope |
| | GET|HEAD | telescope/telescope-api/logs/{telescopeEntryId} | | Laravel\Telescope\Http\Controllers\LogController@show | telescope |
| | POST | telescope/telescope-api/mail | | Laravel\Telescope\Http\Controllers\MailController@index | telescope |
| | GET|HEAD | telescope/telescope-api/mail/{telescopeEntryId} | | Laravel\Telescope\Http\Controllers\MailController@show | telescope |
| | GET|HEAD | telescope/telescope-api/mail/{telescopeEntryId}/download | | Laravel\Telescope\Http\Controllers\MailEmlController@show | telescope |
| | GET|HEAD | telescope/telescope-api/mail/{telescopeEntryId}/preview | | Laravel\Telescope\Http\Controllers\MailHtmlController@show | telescope |
| | POST | telescope/telescope-api/models | | Laravel\Telescope\Http\Controllers\ModelsController@index | telescope |
| | GET|HEAD | telescope/telescope-api/models/{telescopeEntryId} | | Laravel\Telescope\Http\Controllers\ModelsController@show | telescope |
| | GET|HEAD | telescope/telescope-api/monitored-tags | | Laravel\Telescope\Http\Controllers\MonitoredTagController@index | telescope |
| | POST | telescope/telescope-api/monitored-tags | | Laravel\Telescope\Http\Controllers\MonitoredTagController@store | telescope |
| | POST | telescope/telescope-api/monitored-tags/delete | | Laravel\Telescope\Http\Controllers\MonitoredTagController@destroy | telescope |
| | POST | telescope/telescope-api/notifications | | Laravel\Telescope\Http\Controllers\NotificationsController@index | telescope |
| | GET|HEAD | telescope/telescope-api/notifications/{telescopeEntryId} | | Laravel\Telescope\Http\Controllers\NotificationsController@show | telescope |
| | POST | telescope/telescope-api/queries | | Laravel\Telescope\Http\Controllers\QueriesController@index | telescope |
| | GET|HEAD | telescope/telescope-api/queries/{telescopeEntryId} | | Laravel\Telescope\Http\Controllers\QueriesController@show | telescope |
| | POST | telescope/telescope-api/redis | | Laravel\Telescope\Http\Controllers\RedisController@index | telescope |
| | GET|HEAD | telescope/telescope-api/redis/{telescopeEntryId} | | Laravel\Telescope\Http\Controllers\RedisController@show | telescope |
| | POST | telescope/telescope-api/requests | | Laravel\Telescope\Http\Controllers\RequestsController@index | telescope |
| | GET|HEAD | telescope/telescope-api/requests/{telescopeEntryId} | | Laravel\Telescope\Http\Controllers\RequestsController@show | telescope |
| | POST | telescope/telescope-api/schedule | | Laravel\Telescope\Http\Controllers\ScheduleController@index | telescope |
| | GET|HEAD | telescope/telescope-api/schedule/{telescopeEntryId} | | Laravel\Telescope\Http\Controllers\ScheduleController@show | telescope |
| | POST | telescope/telescope-api/toggle-recording | | Laravel\Telescope\Http\Controllers\RecordingController@toggle | telescope |
| | GET|HEAD | telescope/{view?} | telescope | Laravel\Telescope\Http\Controllers\HomeController@index | telescope |
| | POST | themes | storetheme | App\Http\Controllers\ThemesManagementController@store | web,auth,permission:perms.admin,activity |
| | GET|HEAD | themes | themes | App\Http\Controllers\ThemesManagementController@index | web,auth,permission:perms.admin,activity |
| | GET|HEAD | themes/create | createtheme | App\Http\Controllers\ThemesManagementController@create | web,auth,permission:perms.admin,activity |
| | GET|HEAD | themes/{theme} | showtheme | App\Http\Controllers\ThemesManagementController@show | web,auth,permission:perms.admin,activity |
| | PUT|PATCH | themes/{theme} | updatetheme | App\Http\Controllers\ThemesManagementController@update | web,auth,permission:perms.admin,activity |
| | DELETE | themes/{theme} | destroytheme | App\Http\Controllers\ThemesManagementController@destroy | web,auth,permission:perms.admin,activity |
| | GET|HEAD | themes/{theme}/edit | edittheme | App\Http\Controllers\ThemesManagementController@edit | web,auth,permission:perms.admin,activity |
| | POST | update-theme | update-theme | App\Http\Controllers\ThemesManagementController@updateDefaultTheme | web,auth,permission:perms.admin,activity |
| | POST | user | user.store | App\Http\Controllers\UserController@store | web,auth,permission:perms.super.admin,activity |
| | GET|HEAD | user | user.index | App\Http\Controllers\UserController@index | web,auth,permission:perms.super.admin,activity |
| | GET|HEAD | user/create | user.create | App\Http\Controllers\UserController@create | web,auth,permission:perms.super.admin,activity |
| | DELETE | user/{user} | user.destroy | App\Http\Controllers\UserController@destroy | web,auth,permission:perms.super.admin,activity |
| | PUT|PATCH | user/{user} | user.update | App\Http\Controllers\UserController@update | web,auth,permission:perms.super.admin,activity |
| | GET|HEAD | user/{user}/edit | user.edit | App\Http\Controllers\UserController@edit | web,auth,permission:perms.super.admin,activity |
+--------+----------------------------------------+----------------------------------------------------------+-----------------------------------------------+-----------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------+
Screenshots
File Tree
laravel-soundboard
├── .editorconfig
├── .env.example
├── .env.travis
├── .eslintrc.js
├── .gitattributes
├── .gitignore
├── .travis.yml
├── LICENSE
├── README.md
├── app
│ ├── Console
│ │ ├── Commands
│ │ │ ├── GetSeededSoundFiles.php
│ │ │ └── GetSoundFiles.php
│ │ └── Kernel.php
│ ├── Exceptions
│ │ └── Handler.php
│ ├── Http
│ │ ├── Controllers
│ │ │ ├── AdminController.php
│ │ │ ├── Api
│ │ │ │ └── ApiSoundsController.php
│ │ │ ├── Auth
│ │ │ │ ├── ForgotPasswordController.php
│ │ │ │ ├── LoginController.php
│ │ │ │ ├── RegisterController.php
│ │ │ │ ├── ResetPasswordController.php
│ │ │ │ └── VerificationController.php
│ │ │ ├── Controller.php
│ │ │ ├── FrontEndController.php
│ │ │ ├── ProfileController.php
│ │ │ ├── SoundsController.php
│ │ │ ├── ThemesManagementController.php
│ │ │ └── UserController.php
│ │ ├── Kernel.php
│ │ ├── Middleware
│ │ │ ├── Authenticate.php
│ │ │ ├── CheckForMaintenanceMode.php
│ │ │ ├── EncryptCookies.php
│ │ │ ├── RedirectIfAuthenticated.php
│ │ │ ├── TrimStrings.php
│ │ │ ├── TrustProxies.php
│ │ │ └── VerifyCsrfToken.php
│ │ ├── Requests
│ │ │ ├── DeleteThemeRequest.php
│ │ │ ├── EditSoundRequest.php
│ │ │ ├── PasswordRequest.php
│ │ │ ├── ProfileRequest.php
│ │ │ ├── SoundAdminRequest.php
│ │ │ ├── SoundRequest.php
│ │ │ ├── StoreThemeRequest.php
│ │ │ ├── ThemeRequest.php
│ │ │ ├── UpdateThemeRequest.php
│ │ │ └── UserRequest.php
│ │ └── ViewComposers
│ │ └── SettingsComposer.php
│ ├── Mail
│ │ └── ExceptionOccured.php
│ ├── Models
│ │ ├── Setting.php
│ │ ├── Sound.php
│ │ ├── Theme.php
│ │ └── User.php
│ ├── Providers
│ │ ├── AppServiceProvider.php
│ │ ├── AuthServiceProvider.php
│ │ ├── BroadcastServiceProvider.php
│ │ ├── ComposerServiceProvider.php
│ │ ├── EventServiceProvider.php
│ │ ├── RouteServiceProvider.php
│ │ └── TelescopeServiceProvider.php
│ ├── Rules
│ │ └── CurrentPasswordCheckRule.php
│ └── Services
│ ├── SoundServices.php
│ ├── ThemeServices.php
│ └── UserServices.php
├── artisan
├── bootstrap
│ ├── app.php
│ └── cache
│ ├── .gitignore
│ ├── packages.php
│ └── services.php
├── composer.json
├── composer.lock
├── config
│ ├── app.php
│ ├── auth.php
│ ├── broadcasting.php
│ ├── cache.php
│ ├── database.php
│ ├── exceptions.php
│ ├── filesystems.php
│ ├── hashing.php
│ ├── laravel-logger.php
│ ├── laravelPhpInfo.php
│ ├── lfm.php
│ ├── logging.php
│ ├── mail.php
│ ├── queue.php
│ ├── roles.php
│ ├── services.php
│ ├── session.php
│ ├── soundboard.php
│ ├── telescope.php
│ └── view.php
├── database
│ ├── .gitignore
│ ├── factories
│ │ └── UserFactory.php
│ ├── migrations
│ │ ├── 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_11_020746_create_sounds_table.php
│ │ ├── 2019_08_16_194632_create_themes_table.php
│ │ └── 2019_08_16_195006_create_settings_table.php
│ └── seeds
│ ├── ConnectRelationshipsSeeder.php
│ ├── DatabaseSeeder.php
│ ├── PermissionsTableSeeder.php
│ ├── RolesTableSeeder.php
│ ├── SettingsTableSeeder.php
│ ├── SoundsTableSeeder.php
│ ├── ThemesTableSeeder.php
│ └── UsersTableSeeder.php
├── package-lock.json
├── package.json
├── phpunit.xml
├── public
│ ├── argon
│ │ ├── css
│ │ │ ├── argon.css
│ │ │ └── argon.min.css
│ │ ├── fonts
│ │ │ └── nucleo
│ │ │ ├── nucleo-icons.eot
│ │ │ ├── nucleo-icons.svg
│ │ │ ├── nucleo-icons.ttf
│ │ │ ├── nucleo-icons.woff
│ │ │ └── nucleo-icons.woff2
│ │ ├── img
│ │ │ ├── brand
│ │ │ │ ├── blue.png
│ │ │ │ ├── favicon.png
│ │ │ │ └── white.png
│ │ │ ├── icons
│ │ │ │ └── common
│ │ │ │ ├── github.svg
│ │ │ │ └── google.svg
│ │ │ └── theme
│ │ │ ├── angular.jpg
│ │ │ ├── bootstrap.jpg
│ │ │ ├── profile-cover.jpg
│ │ │ ├── react.jpg
│ │ │ ├── sketch.jpg
│ │ │ ├── team-1-800x800.jpg
│ │ │ ├── team-2-800x800.jpg
│ │ │ ├── team-3-800x800.jpg
│ │ │ ├── team-4-800x800.jpg
│ │ │ └── vue.jpg
│ │ └── js
│ │ ├── argon.js
│ │ └── argon.min.js
│ ├── css
│ │ ├── app.css
│ │ └── filemanager.css
│ ├── favicon.ico
│ ├── images
│ │ ├── avatar-default.png
│ │ ├── favicon.ico
│ │ ├── logo.jpg
│ │ └── logo.png
│ ├── index.php
│ ├── js
│ │ ├── admin.js
│ │ ├── admin.js.map
│ │ ├── app.js
│ │ └── app.js.map
│ ├── mix-manifest.json
│ └── robots.txt
├── resources
│ ├── images
│ │ ├── avatar-default.png
│ │ ├── favicon.ico
│ │ ├── logo.jpg
│ │ └── logo.png
│ ├── js
│ │ ├── admin.js
│ │ ├── app.js
│ │ ├── bootstrap.js
│ │ └── components
│ │ ├── AudioPlayer.vue
│ │ ├── ExampleComponent.vue
│ │ ├── NavBar.vue
│ │ ├── SoundLoader.vue
│ │ ├── SoundRecorder.vue
│ │ ├── SoundsComponent.vue
│ │ └── SoundsTable.vue
│ ├── lang
│ │ └── en
│ │ ├── admin.php
│ │ ├── auth.php
│ │ ├── messages.php
│ │ ├── pagination.php
│ │ ├── passwords.php
│ │ ├── soundboard.php
│ │ ├── themes.php
│ │ └── validation.php
│ ├── sass
│ │ ├── _base.scss
│ │ ├── _bs-visibility-classes.scss
│ │ ├── _forms.scss
│ │ ├── _heart.scss
│ │ ├── _octocat.scss
│ │ ├── _player.scss
│ │ ├── _recorder.scss
│ │ ├── _variables.scss
│ │ ├── app.scss
│ │ └── filemanager.scss
│ └── views
│ ├── auth
│ │ ├── login.blade.php
│ │ ├── passwords
│ │ │ ├── email.blade.php
│ │ │ └── reset.blade.php
│ │ ├── register.blade.php
│ │ └── verify.blade.php
│ ├── emails
│ │ └── exception.blade.php
│ ├── forms
│ │ ├── default-theme-form.blade.php
│ │ ├── delete-sound.blade.php
│ │ └── sound-form.blade.php
│ ├── layouts
│ │ ├── app.blade.php
│ │ ├── footers
│ │ │ ├── auth.blade.php
│ │ │ ├── guest.blade.php
│ │ │ └── nav.blade.php
│ │ ├── headers
│ │ │ ├── dashboard-cards.blade.php
│ │ │ ├── files-cards.blade.php
│ │ │ ├── guest.blade.php
│ │ │ ├── sound-cards.blade.php
│ │ │ ├── spaced.blade.php
│ │ │ └── theme-cards.blade.php
│ │ ├── navbars
│ │ │ ├── navbar.blade.php
│ │ │ ├── navs
│ │ │ │ ├── auth.blade.php
│ │ │ │ └── guest.blade.php
│ │ │ └── sidebar.blade.php
│ │ └── soundboard.blade.php
│ ├── pages
│ │ ├── dashboard.blade.php
│ │ ├── filemanager.blade.php
│ │ ├── home.blade.php
│ │ ├── sounds
│ │ │ ├── create.blade.php
│ │ │ ├── edit.blade.php
│ │ │ ├── index.blade.php
│ │ │ ├── record-sound.blade.php
│ │ │ └── show.blade.php
│ │ └── themes
│ │ └── index.blade.php
│ ├── partials
│ │ ├── analytics.blade.php
│ │ ├── delete-modal.blade.php
│ │ ├── footer.blade.php
│ │ ├── messages.blade.php
│ │ ├── octocat.blade.php
│ │ └── theme-table-list.blade.php
│ ├── profile
│ │ └── edit.blade.php
│ ├── scripts
│ │ ├── change-theme-script.blade.php
│ │ ├── delete-modal-script.blade.php
│ │ ├── delete-sound.blade.php
│ │ ├── file-manager.blade.php
│ │ ├── sweatalert-delete-user.blade.php
│ │ └── switch.blade.php
│ ├── users
│ │ ├── create.blade.php
│ │ ├── edit.blade.php
│ │ ├── index.blade.php
│ │ └── partials
│ │ └── header.blade.php
│ └── welcome.blade.php
├── routes
│ ├── api.php
│ ├── channels.php
│ ├── console.php
│ └── web.php
├── server.php
├── tests
│ ├── CreatesApplication.php
│ ├── Feature
│ │ └── ExampleTest.php
│ ├── TestCase.php
│ └── Unit
│ └── ExampleTest.php
└── webpack.mix.js
- Tree command can be installed using brew:
brew install tree
- File tree generated using command
tree -a -I '.git|node_modules|vendor|storage|sound-files|.env'
Opening an Issue
Before opening an issue there are a couple of considerations:
- You are all awesome!
- Read the instructions and make sure all steps were followed correctly.
- Check that the issue is not specific to the development environment setup.
- Provide duplication steps.
- Attempt to look into the issue, and if you have a solution, make a pull request.
- Show that you have made an attempt to look into the issue.
- Check to see if the issue you are reporting is a duplicate of a previous reported issue.
- Following these instructions show me that you have tried.
- If you have a questions send me an email to [email protected]
- Need some help, I can do my best on Slack: https://opensourcehelpgroup.slack.com
- Please be considerate that this is an open source project that I provide to the community for FREE when opening an issue.
Open source projects are the community’s responsibility to use, contribute, and debug.
License
Laravel Soundboard is licensed under the MIT license. Enjoy!