laravel-soundboard

An open source Laravel Soundboard with Admin Panel CRUD (Create Read Update Delete) built on Laravel, Bootstrap, and Vue.js

MIT License

Stars
24

Laravel Soundboard

An open source Laravel Soundboard with Admin Panel CRUD (Create Read Update Delete) built on Laravel 5.8, Bootstrap 4, Vue.js, BootstrapVue, and Argon Dashboard

Table of contents

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

  1. Run git clone https://github.com/jeremykenedy/laravel-soundboard.git laravel-soundboard
  2. Create a MySQL database for the project
    • mysql -u root -p, if using Vagrant: mysql -u homestead -psecret
    • create database soundboard;
    • \q
  3. From the projects root run cp .env.example .env
  4. Configure your .env file
  5. Run composer install from the projects root folder
  6. Generate Application key from the projects root folder by running:
php artisan key:generate
  1. Pull in seeded sound files from the projects root folder by running:
php artisan get-sounds
  1. From the projects root folder run php artisan key:generate
  2. From the projects root folder run php artisan migrate
  3. From the projects root folder run composer dump-autoload
  4. From the projects root folder run php artisan db:seed
  5. Compile the front end assets with npm steps or yarn steps.

Build the Front End Assets with Webpack

Using NPM:
  1. From the projects root folder run npm install
  2. From the projects root folder run npm run dev or npm run production
  • You can watch assets with npm run watch
Using Yarn:
  1. From the projects root folder run yarn install
  2. From the projects root folder run yarn run dev or yarn run production
  • You can watch assets with yarn run watch
And thats it with the caveat of setting up and configuring your development environment. I recommend Laravel Homestead

Seeds

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
Email 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!

Badges
Extracted from project README
Scrutinizer Code Quality Code Intelligence Status License: MIT
Related Projects