├── .editorconfig ├── .env.example ├── .gitattributes ├── .gitignore ├── .styleci.yml ├── README.md ├── app ├── Console │ └── Kernel.php ├── Exceptions │ └── Handler.php ├── Http │ ├── Controllers │ │ ├── AdminAuthController.php │ │ ├── BookManageController.php │ │ ├── Controller.php │ │ ├── StudentAuthController.php │ │ └── StudentManageController.php │ ├── Kernel.php │ └── Middleware │ │ ├── Authenticate.php │ │ ├── CheckForMaintenanceMode.php │ │ ├── EncryptCookies.php │ │ ├── RedirectIfAuthenticated.php │ │ ├── TrimStrings.php │ │ ├── TrustProxies.php │ │ └── VerifyCsrfToken.php ├── Mail │ ├── ApproveMail.php │ ├── BookOrderMail.php │ ├── BookReceiveMail.php │ ├── ForgetPassEmail.php │ ├── RejectMail.php │ ├── RemoveStudentMail.php │ └── VerifyEmail.php ├── Providers │ ├── AppServiceProvider.php │ ├── AuthServiceProvider.php │ ├── BroadcastServiceProvider.php │ ├── EventServiceProvider.php │ └── RouteServiceProvider.php └── User.php ├── artisan ├── bootstrap ├── app.php └── cache │ └── .gitignore ├── composer.json ├── composer.lock ├── config ├── app.php ├── auth.php ├── broadcasting.php ├── cache.php ├── cors.php ├── database.php ├── filesystems.php ├── hashing.php ├── logging.php ├── mail.php ├── queue.php ├── services.php ├── session.php └── view.php ├── database ├── .gitignore ├── factories │ └── UserFactory.php ├── migrations │ ├── 2021_01_06_143407_create_students_table.php │ ├── 2021_01_06_143515_create_admins_table.php │ ├── 2021_01_06_143606_create_records_table.php │ ├── 2021_01_06_143700_create_books_table.php │ └── 2021_01_06_144034_create_shelfs_table.php └── seeds │ └── DatabaseSeeder.php ├── package.json ├── phpunit.xml ├── public ├── .htaccess ├── Image │ ├── Card_graph.png │ ├── Card_graph2.png │ ├── Card_graph3.png │ ├── Card_graph4.png │ ├── Card_graph5.png │ ├── Sajeeb_Chakraborty.jpg │ ├── admin.png │ ├── bg.jpg │ ├── books-2596809_1920.jpg │ └── librarylogo.png ├── css │ ├── style.css │ ├── style2.css │ ├── style3.css │ ├── style4.css │ ├── style5.css │ ├── style6.css │ └── style7.css ├── favicon.ico ├── images │ ├── assets_landing page │ │ └── Bg.html │ ├── faces │ │ └── face2.html │ ├── favicon.html │ ├── file-icons │ │ ├── 64 │ │ │ └── 001-interface-1.html │ │ └── 128 │ │ │ └── 001-interface-1.html │ ├── lightbox │ │ └── play-button.html │ └── salt_logo.svg ├── index.php ├── js │ ├── ace.js │ ├── alerts.js │ ├── avgrund.js │ ├── bootstrap-table.js │ ├── bt-maxLength.js │ ├── bt-multiselect-splitter.js │ ├── c3.js │ ├── calendar.js │ ├── chart.js │ ├── chartist.js │ ├── circle-progress.js │ ├── clipboard.js │ ├── codemirror.js │ ├── context-menu.js │ ├── cropper.js │ ├── dashboard_1.js │ ├── data-table.js │ ├── db.js │ ├── desktop-notification.js │ ├── dragula.js │ ├── dropify.js │ ├── dropzone.js │ ├── editorDemo.js │ ├── float-chart.js │ ├── form-addons.js │ ├── form-repeater.js │ ├── form-validation.js │ ├── formpickers.js │ ├── google-charts.js │ ├── hoverable-collapse.js │ ├── iCheck.js │ ├── ion-rangeSlider.js │ ├── jq.tablesort.js │ ├── jquery-file-upload.js │ ├── js-grid.js │ ├── just-gage.js │ ├── light-gallery.js │ ├── listify.js │ ├── mail.js │ ├── mapeal.js │ ├── mapeal_example_2.js │ ├── mapeal_example_3.js │ ├── maps.js │ ├── misc.js │ ├── modal-demo.js │ ├── morris.js │ ├── no-ui-slider.js │ ├── off-canvas.js │ ├── owl-carousel.js │ ├── progress-bar.js │ ├── rickshaw.js │ ├── settings.js │ ├── sparkline.js │ ├── tablesorter.js │ ├── tabs.js │ ├── tight-grid.js │ ├── toastDemo.js │ ├── todolist.js │ ├── tour.js │ └── typeahead.js ├── robots.txt └── web.config ├── resources ├── js │ ├── app.js │ └── bootstrap.js ├── lang │ └── en │ │ ├── auth.php │ │ ├── pagination.php │ │ ├── passwords.php │ │ └── validation.php ├── sass │ └── app.scss └── views │ ├── admin │ ├── add_book.blade.php │ ├── add_order.blade.php │ ├── add_shelf.blade.php │ ├── approve_email.blade.php │ ├── book_details.blade.php │ ├── book_order_email.blade.php │ ├── book_order_show.blade.php │ ├── book_received.blade.php │ ├── book_received_Email.blade.php │ ├── change_auth_password.blade.php │ ├── change_password.blade.php │ ├── dashboard.blade.php │ ├── database_book.blade.php │ ├── edit_books.blade.php │ ├── edit_info.blade.php │ ├── edit_shelf.blade.php │ ├── electronics_book.blade.php │ ├── forget_password.blade.php │ ├── networking_book.blade.php │ ├── notification.blade.php │ ├── programming_book.blade.php │ ├── reject_email.blade.php │ ├── remove_books.blade.php │ ├── remove_shelf.blade.php │ ├── remove_student.blade.php │ ├── remove_student_email.blade.php │ ├── shelf_details.blade.php │ ├── shelf_list.blade.php │ ├── sign_in.blade.php │ ├── software_book.blade.php │ ├── student_details.blade.php │ ├── student_info.blade.php │ ├── student_request.blade.php │ ├── update_books.blade.php │ └── update_shelf.blade.php │ ├── layout │ ├── admin_layout.blade.php │ └── student_layout.blade.php │ └── student │ ├── RecoveryPassword_By_Email.blade.php │ ├── Verify_Email_By_Mail.blade.php │ ├── change_password.blade.php │ ├── change_password_page.blade.php │ ├── dashboard.blade.php │ ├── database_book.blade.php │ ├── edit_info.blade.php │ ├── electronics_book.blade.php │ ├── forget_password.blade.php │ ├── my_collection.blade.php │ ├── my_submission.blade.php │ ├── networking_book.blade.php │ ├── notification.blade.php │ ├── programming_book.blade.php │ ├── shelf_details.blade.php │ ├── shelf_list.blade.php │ ├── sign_up_page.blade.php │ ├── software_book.blade.php │ ├── student_sign_in.blade.php │ └── verify_email.blade.php ├── routes ├── api.php ├── channels.php ├── console.php └── web.php ├── server.php ├── storage ├── app │ ├── .gitignore │ └── public │ │ └── .gitignore ├── framework │ ├── .gitignore │ ├── cache │ │ ├── .gitignore │ │ └── data │ │ │ └── .gitignore │ ├── sessions │ │ └── .gitignore │ ├── testing │ │ └── .gitignore │ └── views │ │ └── .gitignore └── logs │ └── .gitignore ├── tests ├── CreatesApplication.php ├── Feature │ └── ExampleTest.php ├── TestCase.php └── Unit │ └── ExampleTest.php └── webpack.mix.js /.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | charset = utf-8 5 | end_of_line = lf 6 | insert_final_newline = true 7 | indent_style = space 8 | indent_size = 4 9 | trim_trailing_whitespace = true 10 | 11 | [*.md] 12 | trim_trailing_whitespace = false 13 | 14 | [*.{yml,yaml}] 15 | indent_size = 2 16 | -------------------------------------------------------------------------------- /.env.example: -------------------------------------------------------------------------------- 1 | APP_NAME=Laravel 2 | APP_ENV=local 3 | APP_KEY= 4 | APP_DEBUG=true 5 | APP_URL=http://localhost 6 | 7 | LOG_CHANNEL=stack 8 | 9 | DB_CONNECTION=mysql 10 | DB_HOST=127.0.0.1 11 | DB_PORT=3306 12 | DB_DATABASE=laravel 13 | DB_USERNAME=root 14 | DB_PASSWORD= 15 | 16 | BROADCAST_DRIVER=log 17 | CACHE_DRIVER=file 18 | QUEUE_CONNECTION=sync 19 | SESSION_DRIVER=file 20 | SESSION_LIFETIME=120 21 | 22 | REDIS_HOST=127.0.0.1 23 | REDIS_PASSWORD=null 24 | REDIS_PORT=6379 25 | 26 | MAIL_MAILER=smtp 27 | MAIL_HOST=smtp.mailtrap.io 28 | MAIL_PORT=2525 29 | MAIL_USERNAME=null 30 | MAIL_PASSWORD=null 31 | MAIL_ENCRYPTION=null 32 | MAIL_FROM_ADDRESS=null 33 | MAIL_FROM_NAME="${APP_NAME}" 34 | 35 | AWS_ACCESS_KEY_ID= 36 | AWS_SECRET_ACCESS_KEY= 37 | AWS_DEFAULT_REGION=us-east-1 38 | AWS_BUCKET= 39 | 40 | PUSHER_APP_ID= 41 | PUSHER_APP_KEY= 42 | PUSHER_APP_SECRET= 43 | PUSHER_APP_CLUSTER=mt1 44 | 45 | MIX_PUSHER_APP_KEY="${PUSHER_APP_KEY}" 46 | MIX_PUSHER_APP_CLUSTER="${PUSHER_APP_CLUSTER}" 47 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | * text=auto 2 | *.css linguist-vendored 3 | *.scss linguist-vendored 4 | *.js linguist-vendored 5 | CHANGELOG.md export-ignore 6 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | /node_modules 2 | /public/hot 3 | /public/storage 4 | /storage/*.key 5 | /vendor 6 | .env 7 | .env.backup 8 | .phpunit.result.cache 9 | Homestead.json 10 | Homestead.yaml 11 | npm-debug.log 12 | yarn-error.log 13 | -------------------------------------------------------------------------------- /.styleci.yml: -------------------------------------------------------------------------------- 1 | php: 2 | preset: laravel 3 | disabled: 4 | - unused_use 5 | finder: 6 | not-name: 7 | - index.php 8 | - server.php 9 | js: 10 | finder: 11 | not-name: 12 | - webpack.mix.js 13 | css: true 14 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ![Screenshot (314)](https://user-images.githubusercontent.com/48250220/191901828-4b7b230f-d5ea-445e-a297-6dc427a51448.png) 2 | -------------------------------------------------------------------------------- /app/Console/Kernel.php: -------------------------------------------------------------------------------- 1 | command('inspire')->hourly(); 28 | } 29 | 30 | /** 31 | * Register the commands for the application. 32 | * 33 | * @return void 34 | */ 35 | protected function commands() 36 | { 37 | $this->load(__DIR__.'/Commands'); 38 | 39 | require base_path('routes/console.php'); 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /app/Exceptions/Handler.php: -------------------------------------------------------------------------------- 1 | [ 32 | \App\Http\Middleware\EncryptCookies::class, 33 | \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class, 34 | \Illuminate\Session\Middleware\StartSession::class, 35 | // \Illuminate\Session\Middleware\AuthenticateSession::class, 36 | \Illuminate\View\Middleware\ShareErrorsFromSession::class, 37 | \App\Http\Middleware\VerifyCsrfToken::class, 38 | \Illuminate\Routing\Middleware\SubstituteBindings::class, 39 | ], 40 | 41 | 'api' => [ 42 | 'throttle:60,1', 43 | \Illuminate\Routing\Middleware\SubstituteBindings::class, 44 | ], 45 | ]; 46 | 47 | /** 48 | * The application's route middleware. 49 | * 50 | * These middleware may be assigned to groups or used individually. 51 | * 52 | * @var array 53 | */ 54 | protected $routeMiddleware = [ 55 | 'auth' => \App\Http\Middleware\Authenticate::class, 56 | 'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class, 57 | 'bindings' => \Illuminate\Routing\Middleware\SubstituteBindings::class, 58 | 'cache.headers' => \Illuminate\Http\Middleware\SetCacheHeaders::class, 59 | 'can' => \Illuminate\Auth\Middleware\Authorize::class, 60 | 'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class, 61 | 'password.confirm' => \Illuminate\Auth\Middleware\RequirePassword::class, 62 | 'signed' => \Illuminate\Routing\Middleware\ValidateSignature::class, 63 | 'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class, 64 | 'verified' => \Illuminate\Auth\Middleware\EnsureEmailIsVerified::class, 65 | ]; 66 | } 67 | -------------------------------------------------------------------------------- /app/Http/Middleware/Authenticate.php: -------------------------------------------------------------------------------- 1 | expectsJson()) { 18 | return route('login'); 19 | } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /app/Http/Middleware/CheckForMaintenanceMode.php: -------------------------------------------------------------------------------- 1 | check()) { 22 | return redirect(RouteServiceProvider::HOME); 23 | } 24 | 25 | return $next($request); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /app/Http/Middleware/TrimStrings.php: -------------------------------------------------------------------------------- 1 | details_approve=$details_approve; 23 | } 24 | 25 | /** 26 | * Build the message. 27 | * 28 | * @return $this 29 | */ 30 | public function build() 31 | { 32 | return $this->subject('Congrats! Your account is approved ') 33 | ->view('admin.approve_Email'); 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /app/Mail/BookOrderMail.php: -------------------------------------------------------------------------------- 1 | details_order=$details_order; 23 | } 24 | 25 | /** 26 | * Build the message. 27 | * 28 | * @return $this 29 | */ 30 | public function build() 31 | { 32 | return $this->subject('Book Order') 33 | ->view('admin.book_order_email'); 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /app/Mail/BookReceiveMail.php: -------------------------------------------------------------------------------- 1 | details_received=$details_received; 24 | } 25 | 26 | /** 27 | * Build the message. 28 | * 29 | * @return $this 30 | */ 31 | public function build() 32 | { 33 | return $this->subject('Book Received') 34 | ->view('admin.book_received_email'); 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /app/Mail/ForgetPassEmail.php: -------------------------------------------------------------------------------- 1 | details2=$details2; 25 | 26 | } 27 | 28 | /** 29 | * Build the message. 30 | * 31 | * @return $this 32 | */ 33 | public function build() 34 | { 35 | return $this->subject('Recovery Password') 36 | ->view('student.RecoveryPassword_By_Email'); 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /app/Mail/RejectMail.php: -------------------------------------------------------------------------------- 1 | details_reject=$details_reject; 25 | } 26 | 27 | /** 28 | * Build the message. 29 | * 30 | * @return $this 31 | */ 32 | public function build() 33 | { 34 | return $this->subject('Rejected your account') 35 | ->view('admin.reject_email'); 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /app/Mail/RemoveStudentMail.php: -------------------------------------------------------------------------------- 1 | details_remove=$details_remove; 25 | } 26 | 27 | /** 28 | * Build the message. 29 | * 30 | * @return $this 31 | */ 32 | public function build() 33 | { 34 | return $this->subject('Remove Account') 35 | ->view('admin.remove_student_email'); 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /app/Mail/VerifyEmail.php: -------------------------------------------------------------------------------- 1 | details=$details; 25 | 26 | 27 | } 28 | 29 | /** 30 | * Build the message. 31 | * 32 | * @return $this 33 | */ 34 | public function build() 35 | { 36 | return $this->subject('Email Verification Code') 37 | ->view('student.Verify_Email_By_Mail'); 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /app/Providers/AppServiceProvider.php: -------------------------------------------------------------------------------- 1 | 'App\Policies\ModelPolicy', 17 | ]; 18 | 19 | /** 20 | * Register any authentication / authorization services. 21 | * 22 | * @return void 23 | */ 24 | public function boot() 25 | { 26 | $this->registerPolicies(); 27 | 28 | // 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /app/Providers/BroadcastServiceProvider.php: -------------------------------------------------------------------------------- 1 | [ 19 | SendEmailVerificationNotification::class, 20 | ], 21 | ]; 22 | 23 | /** 24 | * Register any events for your application. 25 | * 26 | * @return void 27 | */ 28 | public function boot() 29 | { 30 | parent::boot(); 31 | 32 | // 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /app/Providers/RouteServiceProvider.php: -------------------------------------------------------------------------------- 1 | mapApiRoutes(); 46 | 47 | $this->mapWebRoutes(); 48 | 49 | // 50 | } 51 | 52 | /** 53 | * Define the "web" routes for the application. 54 | * 55 | * These routes all receive session state, CSRF protection, etc. 56 | * 57 | * @return void 58 | */ 59 | protected function mapWebRoutes() 60 | { 61 | Route::middleware('web') 62 | ->namespace($this->namespace) 63 | ->group(base_path('routes/web.php')); 64 | } 65 | 66 | /** 67 | * Define the "api" routes for the application. 68 | * 69 | * These routes are typically stateless. 70 | * 71 | * @return void 72 | */ 73 | protected function mapApiRoutes() 74 | { 75 | Route::prefix('api') 76 | ->middleware('api') 77 | ->namespace($this->namespace) 78 | ->group(base_path('routes/api.php')); 79 | } 80 | } 81 | -------------------------------------------------------------------------------- /app/User.php: -------------------------------------------------------------------------------- 1 | 'datetime', 38 | ]; 39 | } 40 | -------------------------------------------------------------------------------- /artisan: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env php 2 | make(Illuminate\Contracts\Console\Kernel::class); 34 | 35 | $status = $kernel->handle( 36 | $input = new Symfony\Component\Console\Input\ArgvInput, 37 | new Symfony\Component\Console\Output\ConsoleOutput 38 | ); 39 | 40 | /* 41 | |-------------------------------------------------------------------------- 42 | | Shutdown The Application 43 | |-------------------------------------------------------------------------- 44 | | 45 | | Once Artisan has finished running, we will fire off the shutdown events 46 | | so that any final work may be done by the application before we shut 47 | | down the process. This is the last thing to happen to the request. 48 | | 49 | */ 50 | 51 | $kernel->terminate($input, $status); 52 | 53 | exit($status); 54 | -------------------------------------------------------------------------------- /bootstrap/app.php: -------------------------------------------------------------------------------- 1 | singleton( 30 | Illuminate\Contracts\Http\Kernel::class, 31 | App\Http\Kernel::class 32 | ); 33 | 34 | $app->singleton( 35 | Illuminate\Contracts\Console\Kernel::class, 36 | App\Console\Kernel::class 37 | ); 38 | 39 | $app->singleton( 40 | Illuminate\Contracts\Debug\ExceptionHandler::class, 41 | App\Exceptions\Handler::class 42 | ); 43 | 44 | /* 45 | |-------------------------------------------------------------------------- 46 | | Return The Application 47 | |-------------------------------------------------------------------------- 48 | | 49 | | This script returns the application instance. The instance is given to 50 | | the calling script so we can separate the building of the instances 51 | | from the actual running of the application and sending responses. 52 | | 53 | */ 54 | 55 | return $app; 56 | -------------------------------------------------------------------------------- /bootstrap/cache/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore 3 | -------------------------------------------------------------------------------- /composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "laravel/laravel", 3 | "type": "project", 4 | "description": "The Laravel Framework.", 5 | "keywords": [ 6 | "framework", 7 | "laravel" 8 | ], 9 | "license": "MIT", 10 | "require": { 11 | "php": "^7.2.5", 12 | "fideloper/proxy": "^4.2", 13 | "fruitcake/laravel-cors": "^1.0", 14 | "guzzlehttp/guzzle": "^6.3", 15 | "laravel/framework": "^7.0", 16 | "laravel/tinker": "^2.0" 17 | }, 18 | "require-dev": { 19 | "facade/ignition": "^2.0", 20 | "fzaninotto/faker": "^1.9.1", 21 | "mockery/mockery": "^1.3.1", 22 | "nunomaduro/collision": "^4.1", 23 | "phpunit/phpunit": "^8.5" 24 | }, 25 | "config": { 26 | "optimize-autoloader": true, 27 | "preferred-install": "dist", 28 | "sort-packages": true 29 | }, 30 | "extra": { 31 | "laravel": { 32 | "dont-discover": [] 33 | } 34 | }, 35 | "autoload": { 36 | "psr-4": { 37 | "App\\": "app/" 38 | }, 39 | "classmap": [ 40 | "database/seeds", 41 | "database/factories" 42 | ] 43 | }, 44 | "autoload-dev": { 45 | "psr-4": { 46 | "Tests\\": "tests/" 47 | } 48 | }, 49 | "minimum-stability": "dev", 50 | "prefer-stable": true, 51 | "scripts": { 52 | "post-autoload-dump": [ 53 | "Illuminate\\Foundation\\ComposerScripts::postAutoloadDump", 54 | "@php artisan package:discover --ansi" 55 | ], 56 | "post-root-package-install": [ 57 | "@php -r \"file_exists('.env') || copy('.env.example', '.env');\"" 58 | ], 59 | "post-create-project-cmd": [ 60 | "@php artisan key:generate --ansi" 61 | ] 62 | } 63 | } 64 | -------------------------------------------------------------------------------- /config/auth.php: -------------------------------------------------------------------------------- 1 | [ 17 | 'guard' => 'web', 18 | 'passwords' => 'users', 19 | ], 20 | 21 | /* 22 | |-------------------------------------------------------------------------- 23 | | Authentication Guards 24 | |-------------------------------------------------------------------------- 25 | | 26 | | Next, you may define every authentication guard for your application. 27 | | Of course, a great default configuration has been defined for you 28 | | here which uses session storage and the Eloquent user provider. 29 | | 30 | | All authentication drivers have a user provider. This defines how the 31 | | users are actually retrieved out of your database or other storage 32 | | mechanisms used by this application to persist your user's data. 33 | | 34 | | Supported: "session", "token" 35 | | 36 | */ 37 | 38 | 'guards' => [ 39 | 'web' => [ 40 | 'driver' => 'session', 41 | 'provider' => 'users', 42 | ], 43 | 44 | 'api' => [ 45 | 'driver' => 'token', 46 | 'provider' => 'users', 47 | 'hash' => false, 48 | ], 49 | ], 50 | 51 | /* 52 | |-------------------------------------------------------------------------- 53 | | User Providers 54 | |-------------------------------------------------------------------------- 55 | | 56 | | All authentication drivers have a user provider. This defines how the 57 | | users are actually retrieved out of your database or other storage 58 | | mechanisms used by this application to persist your user's data. 59 | | 60 | | If you have multiple user tables or models you may configure multiple 61 | | sources which represent each model / table. These sources may then 62 | | be assigned to any extra authentication guards you have defined. 63 | | 64 | | Supported: "database", "eloquent" 65 | | 66 | */ 67 | 68 | 'providers' => [ 69 | 'users' => [ 70 | 'driver' => 'eloquent', 71 | 'model' => App\User::class, 72 | ], 73 | 74 | // 'users' => [ 75 | // 'driver' => 'database', 76 | // 'table' => 'users', 77 | // ], 78 | ], 79 | 80 | /* 81 | |-------------------------------------------------------------------------- 82 | | Resetting Passwords 83 | |-------------------------------------------------------------------------- 84 | | 85 | | You may specify multiple password reset configurations if you have more 86 | | than one user table or model in the application and you want to have 87 | | separate password reset settings based on the specific user types. 88 | | 89 | | The expire time is the number of minutes that the reset token should be 90 | | considered valid. This security feature keeps tokens short-lived so 91 | | they have less time to be guessed. You may change this as needed. 92 | | 93 | */ 94 | 95 | 'passwords' => [ 96 | 'users' => [ 97 | 'provider' => 'users', 98 | 'table' => 'password_resets', 99 | 'expire' => 60, 100 | 'throttle' => 60, 101 | ], 102 | ], 103 | 104 | /* 105 | |-------------------------------------------------------------------------- 106 | | Password Confirmation Timeout 107 | |-------------------------------------------------------------------------- 108 | | 109 | | Here you may define the amount of seconds before a password confirmation 110 | | times out and the user is prompted to re-enter their password via the 111 | | confirmation screen. By default, the timeout lasts for three hours. 112 | | 113 | */ 114 | 115 | 'password_timeout' => 10800, 116 | 117 | ]; 118 | -------------------------------------------------------------------------------- /config/broadcasting.php: -------------------------------------------------------------------------------- 1 | env('BROADCAST_DRIVER', 'null'), 19 | 20 | /* 21 | |-------------------------------------------------------------------------- 22 | | Broadcast Connections 23 | |-------------------------------------------------------------------------- 24 | | 25 | | Here you may define all of the broadcast connections that will be used 26 | | to broadcast events to other systems or over websockets. Samples of 27 | | each available type of connection are provided inside this array. 28 | | 29 | */ 30 | 31 | 'connections' => [ 32 | 33 | 'pusher' => [ 34 | 'driver' => 'pusher', 35 | 'key' => env('PUSHER_APP_KEY'), 36 | 'secret' => env('PUSHER_APP_SECRET'), 37 | 'app_id' => env('PUSHER_APP_ID'), 38 | 'options' => [ 39 | 'cluster' => env('PUSHER_APP_CLUSTER'), 40 | 'useTLS' => true, 41 | ], 42 | ], 43 | 44 | 'redis' => [ 45 | 'driver' => 'redis', 46 | 'connection' => 'default', 47 | ], 48 | 49 | 'log' => [ 50 | 'driver' => 'log', 51 | ], 52 | 53 | 'null' => [ 54 | 'driver' => 'null', 55 | ], 56 | 57 | ], 58 | 59 | ]; 60 | -------------------------------------------------------------------------------- /config/cache.php: -------------------------------------------------------------------------------- 1 | env('CACHE_DRIVER', 'file'), 22 | 23 | /* 24 | |-------------------------------------------------------------------------- 25 | | Cache Stores 26 | |-------------------------------------------------------------------------- 27 | | 28 | | Here you may define all of the cache "stores" for your application as 29 | | well as their drivers. You may even define multiple stores for the 30 | | same cache driver to group types of items stored in your caches. 31 | | 32 | */ 33 | 34 | 'stores' => [ 35 | 36 | 'apc' => [ 37 | 'driver' => 'apc', 38 | ], 39 | 40 | 'array' => [ 41 | 'driver' => 'array', 42 | ], 43 | 44 | 'database' => [ 45 | 'driver' => 'database', 46 | 'table' => 'cache', 47 | 'connection' => null, 48 | ], 49 | 50 | 'file' => [ 51 | 'driver' => 'file', 52 | 'path' => storage_path('framework/cache/data'), 53 | ], 54 | 55 | 'memcached' => [ 56 | 'driver' => 'memcached', 57 | 'persistent_id' => env('MEMCACHED_PERSISTENT_ID'), 58 | 'sasl' => [ 59 | env('MEMCACHED_USERNAME'), 60 | env('MEMCACHED_PASSWORD'), 61 | ], 62 | 'options' => [ 63 | // Memcached::OPT_CONNECT_TIMEOUT => 2000, 64 | ], 65 | 'servers' => [ 66 | [ 67 | 'host' => env('MEMCACHED_HOST', '127.0.0.1'), 68 | 'port' => env('MEMCACHED_PORT', 11211), 69 | 'weight' => 100, 70 | ], 71 | ], 72 | ], 73 | 74 | 'redis' => [ 75 | 'driver' => 'redis', 76 | 'connection' => 'cache', 77 | ], 78 | 79 | 'dynamodb' => [ 80 | 'driver' => 'dynamodb', 81 | 'key' => env('AWS_ACCESS_KEY_ID'), 82 | 'secret' => env('AWS_SECRET_ACCESS_KEY'), 83 | 'region' => env('AWS_DEFAULT_REGION', 'us-east-1'), 84 | 'table' => env('DYNAMODB_CACHE_TABLE', 'cache'), 85 | 'endpoint' => env('DYNAMODB_ENDPOINT'), 86 | ], 87 | 88 | ], 89 | 90 | /* 91 | |-------------------------------------------------------------------------- 92 | | Cache Key Prefix 93 | |-------------------------------------------------------------------------- 94 | | 95 | | When utilizing a RAM based store such as APC or Memcached, there might 96 | | be other applications utilizing the same cache. So, we'll specify a 97 | | value to get prefixed to all our keys so we can avoid collisions. 98 | | 99 | */ 100 | 101 | 'prefix' => env('CACHE_PREFIX', Str::slug(env('APP_NAME', 'laravel'), '_').'_cache'), 102 | 103 | ]; 104 | -------------------------------------------------------------------------------- /config/cors.php: -------------------------------------------------------------------------------- 1 | ['api/*'], 19 | 20 | 'allowed_methods' => ['*'], 21 | 22 | 'allowed_origins' => ['*'], 23 | 24 | 'allowed_origins_patterns' => [], 25 | 26 | 'allowed_headers' => ['*'], 27 | 28 | 'exposed_headers' => false, 29 | 30 | 'max_age' => false, 31 | 32 | 'supports_credentials' => false, 33 | 34 | ]; 35 | -------------------------------------------------------------------------------- /config/filesystems.php: -------------------------------------------------------------------------------- 1 | env('FILESYSTEM_DRIVER', 'local'), 17 | 18 | /* 19 | |-------------------------------------------------------------------------- 20 | | Default Cloud Filesystem Disk 21 | |-------------------------------------------------------------------------- 22 | | 23 | | Many applications store files both locally and in the cloud. For this 24 | | reason, you may specify a default "cloud" driver here. This driver 25 | | will be bound as the Cloud disk implementation in the container. 26 | | 27 | */ 28 | 29 | 'cloud' => env('FILESYSTEM_CLOUD', 's3'), 30 | 31 | /* 32 | |-------------------------------------------------------------------------- 33 | | Filesystem Disks 34 | |-------------------------------------------------------------------------- 35 | | 36 | | Here you may configure as many filesystem "disks" as you wish, and you 37 | | may even configure multiple disks of the same driver. Defaults have 38 | | been setup for each driver as an example of the required options. 39 | | 40 | | Supported Drivers: "local", "ftp", "sftp", "s3" 41 | | 42 | */ 43 | 44 | 'disks' => [ 45 | 46 | 'local' => [ 47 | 'driver' => 'local', 48 | 'root' => storage_path('app'), 49 | ], 50 | 51 | 'public' => [ 52 | 'driver' => 'local', 53 | 'root' => storage_path('app/public'), 54 | 'url' => env('APP_URL').'/storage', 55 | 'visibility' => 'public', 56 | ], 57 | 58 | 's3' => [ 59 | 'driver' => 's3', 60 | 'key' => env('AWS_ACCESS_KEY_ID'), 61 | 'secret' => env('AWS_SECRET_ACCESS_KEY'), 62 | 'region' => env('AWS_DEFAULT_REGION'), 63 | 'bucket' => env('AWS_BUCKET'), 64 | 'url' => env('AWS_URL'), 65 | ], 66 | 67 | ], 68 | 69 | /* 70 | |-------------------------------------------------------------------------- 71 | | Symbolic Links 72 | |-------------------------------------------------------------------------- 73 | | 74 | | Here you may configure the symbolic links that will be created when the 75 | | `storage:link` Artisan command is executed. The array keys should be 76 | | the locations of the links and the values should be their targets. 77 | | 78 | */ 79 | 80 | 'links' => [ 81 | public_path('storage') => storage_path('app/public'), 82 | ], 83 | 84 | ]; 85 | -------------------------------------------------------------------------------- /config/hashing.php: -------------------------------------------------------------------------------- 1 | 'bcrypt', 19 | 20 | /* 21 | |-------------------------------------------------------------------------- 22 | | Bcrypt Options 23 | |-------------------------------------------------------------------------- 24 | | 25 | | Here you may specify the configuration options that should be used when 26 | | passwords are hashed using the Bcrypt algorithm. This will allow you 27 | | to control the amount of time it takes to hash the given password. 28 | | 29 | */ 30 | 31 | 'bcrypt' => [ 32 | 'rounds' => env('BCRYPT_ROUNDS', 10), 33 | ], 34 | 35 | /* 36 | |-------------------------------------------------------------------------- 37 | | Argon Options 38 | |-------------------------------------------------------------------------- 39 | | 40 | | Here you may specify the configuration options that should be used when 41 | | passwords are hashed using the Argon algorithm. These will allow you 42 | | to control the amount of time it takes to hash the given password. 43 | | 44 | */ 45 | 46 | 'argon' => [ 47 | 'memory' => 1024, 48 | 'threads' => 2, 49 | 'time' => 2, 50 | ], 51 | 52 | ]; 53 | -------------------------------------------------------------------------------- /config/logging.php: -------------------------------------------------------------------------------- 1 | env('LOG_CHANNEL', 'stack'), 21 | 22 | /* 23 | |-------------------------------------------------------------------------- 24 | | Log Channels 25 | |-------------------------------------------------------------------------- 26 | | 27 | | Here you may configure the log channels for your application. Out of 28 | | the box, Laravel uses the Monolog PHP logging library. This gives 29 | | you a variety of powerful log handlers / formatters to utilize. 30 | | 31 | | Available Drivers: "single", "daily", "slack", "syslog", 32 | | "errorlog", "monolog", 33 | | "custom", "stack" 34 | | 35 | */ 36 | 37 | 'channels' => [ 38 | 'stack' => [ 39 | 'driver' => 'stack', 40 | 'channels' => ['single'], 41 | 'ignore_exceptions' => false, 42 | ], 43 | 44 | 'single' => [ 45 | 'driver' => 'single', 46 | 'path' => storage_path('logs/laravel.log'), 47 | 'level' => 'debug', 48 | ], 49 | 50 | 'daily' => [ 51 | 'driver' => 'daily', 52 | 'path' => storage_path('logs/laravel.log'), 53 | 'level' => 'debug', 54 | 'days' => 14, 55 | ], 56 | 57 | 'slack' => [ 58 | 'driver' => 'slack', 59 | 'url' => env('LOG_SLACK_WEBHOOK_URL'), 60 | 'username' => 'Laravel Log', 61 | 'emoji' => ':boom:', 62 | 'level' => 'critical', 63 | ], 64 | 65 | 'papertrail' => [ 66 | 'driver' => 'monolog', 67 | 'level' => 'debug', 68 | 'handler' => SyslogUdpHandler::class, 69 | 'handler_with' => [ 70 | 'host' => env('PAPERTRAIL_URL'), 71 | 'port' => env('PAPERTRAIL_PORT'), 72 | ], 73 | ], 74 | 75 | 'stderr' => [ 76 | 'driver' => 'monolog', 77 | 'handler' => StreamHandler::class, 78 | 'formatter' => env('LOG_STDERR_FORMATTER'), 79 | 'with' => [ 80 | 'stream' => 'php://stderr', 81 | ], 82 | ], 83 | 84 | 'syslog' => [ 85 | 'driver' => 'syslog', 86 | 'level' => 'debug', 87 | ], 88 | 89 | 'errorlog' => [ 90 | 'driver' => 'errorlog', 91 | 'level' => 'debug', 92 | ], 93 | 94 | 'null' => [ 95 | 'driver' => 'monolog', 96 | 'handler' => NullHandler::class, 97 | ], 98 | 99 | 'emergency' => [ 100 | 'path' => storage_path('logs/laravel.log'), 101 | ], 102 | ], 103 | 104 | ]; 105 | -------------------------------------------------------------------------------- /config/mail.php: -------------------------------------------------------------------------------- 1 | env('MAIL_MAILER', 'smtp'), 17 | 18 | /* 19 | |-------------------------------------------------------------------------- 20 | | Mailer Configurations 21 | |-------------------------------------------------------------------------- 22 | | 23 | | Here you may configure all of the mailers used by your application plus 24 | | their respective settings. Several examples have been configured for 25 | | you and you are free to add your own as your application requires. 26 | | 27 | | Laravel supports a variety of mail "transport" drivers to be used while 28 | | sending an e-mail. You will specify which one you are using for your 29 | | mailers below. You are free to add additional mailers as required. 30 | | 31 | | Supported: "smtp", "sendmail", "mailgun", "ses", 32 | | "postmark", "log", "array" 33 | | 34 | */ 35 | 36 | 'mailers' => [ 37 | 'smtp' => [ 38 | 'transport' => 'smtp', 39 | 'host' => env('MAIL_HOST', 'smtp.mailgun.org'), 40 | 'port' => env('MAIL_PORT', 587), 41 | 'encryption' => env('MAIL_ENCRYPTION', 'tls'), 42 | 'username' => env('MAIL_USERNAME'), 43 | 'password' => env('MAIL_PASSWORD'), 44 | ], 45 | 46 | 'ses' => [ 47 | 'transport' => 'ses', 48 | ], 49 | 50 | 'sendmail' => [ 51 | 'transport' => 'sendmail', 52 | 'path' => '/usr/sbin/sendmail -bs', 53 | ], 54 | 55 | 'log' => [ 56 | 'transport' => 'log', 57 | 'channel' => env('MAIL_LOG_CHANNEL'), 58 | ], 59 | 60 | 'array' => [ 61 | 'transport' => 'array', 62 | ], 63 | ], 64 | 65 | /* 66 | |-------------------------------------------------------------------------- 67 | | Global "From" Address 68 | |-------------------------------------------------------------------------- 69 | | 70 | | You may wish for all e-mails sent by your application to be sent from 71 | | the same address. Here, you may specify a name and address that is 72 | | used globally for all e-mails that are sent by your application. 73 | | 74 | */ 75 | 76 | 'from' => [ 77 | 'address' => env('MAIL_FROM_ADDRESS', 'seminarlibrarymanagement@gmail.com'), 78 | 'name' => env('MAIL_FROM_NAME', 'Example'), 79 | ], 80 | 81 | /* 82 | |-------------------------------------------------------------------------- 83 | | Markdown Mail Settings 84 | |-------------------------------------------------------------------------- 85 | | 86 | | If you are using Markdown based email rendering, you may configure your 87 | | theme and component paths here, allowing you to customize the design 88 | | of the emails. Or, you may simply stick with the Laravel defaults! 89 | | 90 | */ 91 | 92 | 'markdown' => [ 93 | 'theme' => 'default', 94 | 95 | 'paths' => [ 96 | resource_path('views/vendor/mail'), 97 | ], 98 | ], 99 | 100 | ]; 101 | -------------------------------------------------------------------------------- /config/queue.php: -------------------------------------------------------------------------------- 1 | env('QUEUE_CONNECTION', 'sync'), 17 | 18 | /* 19 | |-------------------------------------------------------------------------- 20 | | Queue Connections 21 | |-------------------------------------------------------------------------- 22 | | 23 | | Here you may configure the connection information for each server that 24 | | is used by your application. A default configuration has been added 25 | | for each back-end shipped with Laravel. You are free to add more. 26 | | 27 | | Drivers: "sync", "database", "beanstalkd", "sqs", "redis", "null" 28 | | 29 | */ 30 | 31 | 'connections' => [ 32 | 33 | 'sync' => [ 34 | 'driver' => 'sync', 35 | ], 36 | 37 | 'database' => [ 38 | 'driver' => 'database', 39 | 'table' => 'jobs', 40 | 'queue' => 'default', 41 | 'retry_after' => 90, 42 | ], 43 | 44 | 'beanstalkd' => [ 45 | 'driver' => 'beanstalkd', 46 | 'host' => 'localhost', 47 | 'queue' => 'default', 48 | 'retry_after' => 90, 49 | 'block_for' => 0, 50 | ], 51 | 52 | 'sqs' => [ 53 | 'driver' => 'sqs', 54 | 'key' => env('AWS_ACCESS_KEY_ID'), 55 | 'secret' => env('AWS_SECRET_ACCESS_KEY'), 56 | 'prefix' => env('SQS_PREFIX', 'https://sqs.us-east-1.amazonaws.com/your-account-id'), 57 | 'queue' => env('SQS_QUEUE', 'your-queue-name'), 58 | 'region' => env('AWS_DEFAULT_REGION', 'us-east-1'), 59 | ], 60 | 61 | 'redis' => [ 62 | 'driver' => 'redis', 63 | 'connection' => 'default', 64 | 'queue' => env('REDIS_QUEUE', 'default'), 65 | 'retry_after' => 90, 66 | 'block_for' => null, 67 | ], 68 | 69 | ], 70 | 71 | /* 72 | |-------------------------------------------------------------------------- 73 | | Failed Queue Jobs 74 | |-------------------------------------------------------------------------- 75 | | 76 | | These options configure the behavior of failed queue job logging so you 77 | | can control which database and table are used to store the jobs that 78 | | have failed. You may change them to any database / table you wish. 79 | | 80 | */ 81 | 82 | 'failed' => [ 83 | 'driver' => env('QUEUE_FAILED_DRIVER', 'database'), 84 | 'database' => env('DB_CONNECTION', 'mysql'), 85 | 'table' => 'failed_jobs', 86 | ], 87 | 88 | ]; 89 | -------------------------------------------------------------------------------- /config/services.php: -------------------------------------------------------------------------------- 1 | [ 18 | 'domain' => env('MAILGUN_DOMAIN'), 19 | 'secret' => env('MAILGUN_SECRET'), 20 | 'endpoint' => env('MAILGUN_ENDPOINT', 'api.mailgun.net'), 21 | ], 22 | 23 | 'postmark' => [ 24 | 'token' => env('POSTMARK_TOKEN'), 25 | ], 26 | 27 | 'ses' => [ 28 | 'key' => env('AWS_ACCESS_KEY_ID'), 29 | 'secret' => env('AWS_SECRET_ACCESS_KEY'), 30 | 'region' => env('AWS_DEFAULT_REGION', 'us-east-1'), 31 | ], 32 | 33 | ]; 34 | -------------------------------------------------------------------------------- /config/view.php: -------------------------------------------------------------------------------- 1 | [ 17 | resource_path('views'), 18 | ], 19 | 20 | /* 21 | |-------------------------------------------------------------------------- 22 | | Compiled View Path 23 | |-------------------------------------------------------------------------- 24 | | 25 | | This option determines where all the compiled Blade templates will be 26 | | stored for your application. Typically, this is within the storage 27 | | directory. However, as usual, you are free to change this value. 28 | | 29 | */ 30 | 31 | 'compiled' => env( 32 | 'VIEW_COMPILED_PATH', 33 | realpath(storage_path('framework/views')) 34 | ), 35 | 36 | /* 37 | |-------------------------------------------------------------------------- 38 | | Blade View Modification Checking 39 | |-------------------------------------------------------------------------- 40 | | 41 | | On every request the framework will check to see if a view has expired 42 | | to determine if it needs to be recompiled. If you are in production 43 | | and precompiling views this feature may be disabled to save time. 44 | | 45 | */ 46 | 47 | 'expires' => env('VIEW_CHECK_EXPIRATION', true), 48 | 49 | ]; 50 | -------------------------------------------------------------------------------- /database/.gitignore: -------------------------------------------------------------------------------- 1 | *.sqlite 2 | *.sqlite-journal 3 | -------------------------------------------------------------------------------- /database/factories/UserFactory.php: -------------------------------------------------------------------------------- 1 | define(User::class, function (Faker $faker) { 21 | return [ 22 | 'name' => $faker->name, 23 | 'email' => $faker->unique()->safeEmail, 24 | 'email_verified_at' => now(), 25 | 'password' => '$2y$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi', // password 26 | 'remember_token' => Str::random(10), 27 | ]; 28 | }); 29 | -------------------------------------------------------------------------------- /database/migrations/2021_01_06_143407_create_students_table.php: -------------------------------------------------------------------------------- 1 | id(); 18 | $table->string('Student_ID')->unique(); 19 | $table->string('Name'); 20 | $table->string('Session'); 21 | $table->string('Contact_no'); 22 | $table->string('Email')->unique(); 23 | $table->string('Image'); 24 | $table->string('Username')->unique(); 25 | $table->string('Password'); 26 | $table->string('Verify'); 27 | $table->string('Confirmation_Code'); 28 | $table->string('Read'); 29 | 30 | }); 31 | } 32 | 33 | /** 34 | * Reverse the migrations. 35 | * 36 | * @return void 37 | */ 38 | public function down() 39 | { 40 | Schema::dropIfExists('students'); 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /database/migrations/2021_01_06_143515_create_admins_table.php: -------------------------------------------------------------------------------- 1 | id(); 18 | $table->string('Username')->unique(); 19 | $table->string('Email')->unique(); 20 | $table->string('Password'); 21 | }); 22 | } 23 | 24 | /** 25 | * Reverse the migrations. 26 | * 27 | * @return void 28 | */ 29 | public function down() 30 | { 31 | Schema::dropIfExists('admins'); 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /database/migrations/2021_01_06_143606_create_records_table.php: -------------------------------------------------------------------------------- 1 | id(); 18 | $table->string('Book_ID'); 19 | $table->string('Student_ID'); 20 | $table->string('Collection_Date'); 21 | $table->string('Expired_Date'); 22 | $table->string('Submission_Status'); 23 | $table->string('Submission_Date'); 24 | $table->string('Read'); 25 | }); 26 | } 27 | 28 | /** 29 | * Reverse the migrations. 30 | * 31 | * @return void 32 | */ 33 | public function down() 34 | { 35 | Schema::dropIfExists('records'); 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /database/migrations/2021_01_06_143700_create_books_table.php: -------------------------------------------------------------------------------- 1 | id(); 18 | $table->string('Book_ID')->unique(); 19 | $table->string('Book_Name'); 20 | $table->string('Writer_Name'); 21 | $table->string('Catagory'); 22 | $table->string('Amounts'); 23 | $table->string('Shelf_ID'); 24 | }); 25 | } 26 | 27 | /** 28 | * Reverse the migrations. 29 | * 30 | * @return void 31 | */ 32 | public function down() 33 | { 34 | Schema::dropIfExists('books'); 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /database/migrations/2021_01_06_144034_create_shelfs_table.php: -------------------------------------------------------------------------------- 1 | id(); 18 | $table->string('Shelf_ID')->unique(); 19 | $table->string('Shelf_Location'); 20 | }); 21 | } 22 | 23 | /** 24 | * Reverse the migrations. 25 | * 26 | * @return void 27 | */ 28 | public function down() 29 | { 30 | Schema::dropIfExists('shelfs'); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /database/seeds/DatabaseSeeder.php: -------------------------------------------------------------------------------- 1 | call(UsersTableSeeder::class); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "private": true, 3 | "scripts": { 4 | "dev": "npm run development", 5 | "development": "cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js", 6 | "watch": "npm run development -- --watch", 7 | "watch-poll": "npm run watch -- --watch-poll", 8 | "hot": "cross-env NODE_ENV=development node_modules/webpack-dev-server/bin/webpack-dev-server.js --inline --hot --config=node_modules/laravel-mix/setup/webpack.config.js", 9 | "prod": "npm run production", 10 | "production": "cross-env NODE_ENV=production node_modules/webpack/bin/webpack.js --no-progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js" 11 | }, 12 | "devDependencies": { 13 | "axios": "^0.19", 14 | "cross-env": "^7.0", 15 | "laravel-mix": "^5.0.1", 16 | "lodash": "^4.17.13", 17 | "resolve-url-loader": "^3.1.0", 18 | "sass": "^1.15.2", 19 | "sass-loader": "^8.0.0" 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /phpunit.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | ./tests/Unit 9 | 10 | 11 | 12 | ./tests/Feature 13 | 14 | 15 | 16 | 17 | ./app 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /public/.htaccess: -------------------------------------------------------------------------------- 1 | 2 | 3 | Options -MultiViews -Indexes 4 | 5 | 6 | RewriteEngine On 7 | 8 | # Handle Authorization Header 9 | RewriteCond %{HTTP:Authorization} . 10 | RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] 11 | 12 | # Redirect Trailing Slashes If Not A Folder... 13 | RewriteCond %{REQUEST_FILENAME} !-d 14 | RewriteCond %{REQUEST_URI} (.+)/$ 15 | RewriteRule ^ %1 [L,R=301] 16 | 17 | # Send Requests To Front Controller... 18 | RewriteCond %{REQUEST_FILENAME} !-d 19 | RewriteCond %{REQUEST_FILENAME} !-f 20 | RewriteRule ^ index.php [L] 21 | 22 | -------------------------------------------------------------------------------- /public/Image/Card_graph.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/abdullahthewebbee/Seminar_Library_Management_System_Laravel-master/b4b6b5269d4f3be928decce3fef9ac299210da87/public/Image/Card_graph.png -------------------------------------------------------------------------------- /public/Image/Card_graph2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/abdullahthewebbee/Seminar_Library_Management_System_Laravel-master/b4b6b5269d4f3be928decce3fef9ac299210da87/public/Image/Card_graph2.png -------------------------------------------------------------------------------- /public/Image/Card_graph3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/abdullahthewebbee/Seminar_Library_Management_System_Laravel-master/b4b6b5269d4f3be928decce3fef9ac299210da87/public/Image/Card_graph3.png -------------------------------------------------------------------------------- /public/Image/Card_graph4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/abdullahthewebbee/Seminar_Library_Management_System_Laravel-master/b4b6b5269d4f3be928decce3fef9ac299210da87/public/Image/Card_graph4.png -------------------------------------------------------------------------------- /public/Image/Card_graph5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/abdullahthewebbee/Seminar_Library_Management_System_Laravel-master/b4b6b5269d4f3be928decce3fef9ac299210da87/public/Image/Card_graph5.png -------------------------------------------------------------------------------- /public/Image/Sajeeb_Chakraborty.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/abdullahthewebbee/Seminar_Library_Management_System_Laravel-master/b4b6b5269d4f3be928decce3fef9ac299210da87/public/Image/Sajeeb_Chakraborty.jpg -------------------------------------------------------------------------------- /public/Image/admin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/abdullahthewebbee/Seminar_Library_Management_System_Laravel-master/b4b6b5269d4f3be928decce3fef9ac299210da87/public/Image/admin.png -------------------------------------------------------------------------------- /public/Image/bg.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/abdullahthewebbee/Seminar_Library_Management_System_Laravel-master/b4b6b5269d4f3be928decce3fef9ac299210da87/public/Image/bg.jpg -------------------------------------------------------------------------------- /public/Image/books-2596809_1920.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/abdullahthewebbee/Seminar_Library_Management_System_Laravel-master/b4b6b5269d4f3be928decce3fef9ac299210da87/public/Image/books-2596809_1920.jpg -------------------------------------------------------------------------------- /public/Image/librarylogo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/abdullahthewebbee/Seminar_Library_Management_System_Laravel-master/b4b6b5269d4f3be928decce3fef9ac299210da87/public/Image/librarylogo.png -------------------------------------------------------------------------------- /public/css/style.css: -------------------------------------------------------------------------------- 1 | @import url('https://fonts.googleapis.com/css?family=Poppins:400,500,600,700&display=swap'); 2 | *{ 3 | margin: 0; 4 | padding: 0; 5 | user-select: none; 6 | box-sizing: border-box; 7 | 8 | font-family: 'Poppins', sans-serif; 9 | } 10 | 11 | .btn{ 12 | position: absolute; 13 | top: 15px; 14 | left: 45px; 15 | height: 45px; 16 | width: 45px; 17 | text-align: center; 18 | background: #1b1b1b; 19 | border-radius: 3px; 20 | cursor: pointer; 21 | transition: left 0.4s ease; 22 | } 23 | .btn.click{ 24 | left: 260px; 25 | } 26 | .btn span{ 27 | color: white; 28 | font-size: 28px; 29 | line-height: 45px; 30 | } 31 | .btn.click span:before{ 32 | content: '\f00d'; 33 | } 34 | 35 | /* width */ 36 | ::-webkit-scrollbar { 37 | width: 1px; 38 | } 39 | 40 | /* Track */ 41 | ::-webkit-scrollbar-track { 42 | background: black; 43 | } 44 | 45 | /* Handle */ 46 | ::-webkit-scrollbar-thumb { 47 | background:black; 48 | } 49 | 50 | /* Handle on hover */ 51 | ::-webkit-scrollbar-thumb:hover { 52 | background: #555; 53 | } 54 | nav{ 55 | 56 | overflow-x: hidden; 57 | -ms-overflow-style: none; /* IE and Edge */ 58 | scrollbar-width: none; 59 | background: red; 60 | width: 21%; 61 | height: auto; 62 | 63 | } 64 | nav ul{ 65 | background: #1b1b1b; 66 | height: 100%; 67 | width: 100%; 68 | 69 | list-style: none; 70 | } 71 | nav ul li{ 72 | line-height: 60px; 73 | border-top: 1px solid rgba(255,255,255,0.1); 74 | 75 | } 76 | nav ul li:last-child{ 77 | border-bottom: 1px solid rgba(255,255,255,0.05); 78 | } 79 | nav ul li a{ 80 | position: relative; 81 | color: white; 82 | text-decoration: none; 83 | font-size: 18px; 84 | padding-left: 40px; 85 | font-weight: 500; 86 | display: block; 87 | width: 100%; 88 | border-left: 3px solid transparent; 89 | } 90 | nav ul li.active a{ 91 | color: cyan; 92 | background: #1e1e1e; 93 | border-left-color: cyan; 94 | } 95 | nav ul li a:hover{ 96 | background: #1e1e1e; 97 | } 98 | nav ul ul{ 99 | position: static; 100 | display: none; 101 | } 102 | nav ul .feat-show.show{ 103 | display: block; 104 | } 105 | nav ul .serv-show.show1{ 106 | display: block; 107 | } 108 | nav ul .extra-show.show2{ 109 | display: block; 110 | } 111 | nav ul .shelf-show.show3{ 112 | display: block; 113 | } 114 | nav ul ul li{ 115 | line-height: 42px; 116 | border-top: none; 117 | } 118 | nav ul ul li a{ 119 | font-size: 17px; 120 | color: #e6e6e6; 121 | padding-left: 80px; 122 | 123 | } 124 | nav ul li.active ul li a{ 125 | color: #e6e6e6; 126 | background: #1b1b1b; 127 | border-left-color: transparent; 128 | } 129 | nav ul ul li a:hover{ 130 | color: cyan!important; 131 | background: #1e1e1e!important; 132 | } 133 | nav ul li a span{ 134 | position: absolute; 135 | top: 50%; 136 | right: 20px; 137 | transform: translateY(-50%); 138 | font-size: 22px; 139 | transition: transform 0.4s; 140 | } 141 | nav ul li a span.rotate{ 142 | transform: translateY(-50%) rotate(-180deg); 143 | } 144 | .content{ 145 | position: absolute; 146 | top: 50%; 147 | left: 50%; 148 | margin-top: 50px; 149 | transform: translate(-50%,-50%); 150 | color: #202020; 151 | z-index: -1; 152 | text-align: center; 153 | } 154 | .content .header{ 155 | font-size: 45px; 156 | font-weight: 600; 157 | } 158 | .content p{ 159 | font-size: 30px; 160 | font-weight: 500; 161 | } 162 | .user_info{ 163 | 164 | display:inline-flex; 165 | 166 | } -------------------------------------------------------------------------------- /public/css/style4.css: -------------------------------------------------------------------------------- 1 | *{margin: 0; padding: 0;} 2 | body{ 3 | font-size: 14px; 4 | font-family: Arial, Helvetica, sans-serif; 5 | line-height: 25px; 6 | background: url(../image/bg.jpg); 7 | 8 | 9 | background-size: cover; 10 | background-repeat: no-repeat; 11 | 12 | 13 | 14 | 15 | } 16 | .side{ 17 | margin-top: -200px; 18 | margin-left: 780px; 19 | letter-spacing: 10px; 20 | line-height: 60px; 21 | color: white; 22 | font-size: 20px; 23 | font-family: 'Hanalei Fill', cursive; 24 | 25 | } 26 | div#wrapper { 27 | padding: 350px 0; 28 | display: inline-flex; 29 | } 30 | .login{ 31 | background: #1d1915c2; 32 | width: 400px; 33 | overflow: hidden; 34 | position: absolute; 35 | padding: 20px 30px 60px 30px; 36 | border: 2px solid #ff9000; 37 | border-radius: 10px; 38 | left: 195px; 39 | top: 100px; 40 | } 41 | .head_title{ 42 | color: white; 43 | overflow:hidden; 44 | text-align: center; 45 | } 46 | .logo { 47 | width: 60px; 48 | margin: 0 auto; 49 | } 50 | .logo img { 51 | width: 100%; 52 | } 53 | .head_title h2{ 54 | float: left; 55 | } 56 | .head_title a{ 57 | float: right; 58 | background: green; 59 | color: white; 60 | text-decoration: none; 61 | padding: 0px 7px; 62 | } 63 | .head_title a:hover{background:rgb(37, 136, 37) } 64 | .loginBox{ 65 | margin: 20px; 66 | color: white; 67 | } 68 | i.fa.fa-lock { 69 | margin: 2px; 70 | } 71 | .loginBox strong{ 72 | font-size: 14px; 73 | font-weight: 100; 74 | } 75 | .loginBox input { 76 | width: 92%; 77 | padding: 7px; 78 | border-radius: 5px; 79 | outline: none; 80 | border: 1px solid #ff9000; 81 | } 82 | .loginBox #loginButton{ 83 | margin-top: 7px; 84 | background: #daaa57; 85 | color: whitesmoke; 86 | transition: 0.3s; 87 | width: 80px; 88 | } 89 | .loginBox #loginButton:hover{ 90 | background: #fda203; 91 | cursor: pointer; 92 | } 93 | .footer a{ 94 | background: #daaa57; 95 | color: white; 96 | text-decoration: none; 97 | padding: 10px 13px; 98 | } 99 | .footer a:hover{/* background: rgb(37, 136, 37) */} 100 | .forgottenPasswoard span a{ 101 | color:skyblue; 102 | text-decoration:none; 103 | } 104 | .forgottenPasswoard span a:hover{ 105 | text-decoration: underline; 106 | } 107 | .loginBox i { 108 | margin-right: 5px; 109 | } 110 | 111 | input[type="checkbox"] { 112 | margin: 0 5px 0 20px; 113 | } 114 | .forgottenPasswoard { 115 | margin-top: 12px; 116 | margin-left: 20px; 117 | } 118 | 119 | @media only screen and (max-device-width: 425px) and (min-device-width: 320px){ 120 | div#wrapper { 121 | padding: 350px 0px 160px 0px; 122 | } 123 | .login{ 124 | background: #1d1915c2; 125 | width: 80%; 126 | overflow: hidden; 127 | position: absolute; 128 | padding: 100px 30px 90px 30px; 129 | border: 2px solid #ff9000; 130 | border-radius: 0px; 131 | left: 0; 132 | height: 152%; 133 | top: 0; 134 | } 135 | .head_title{ 136 | color: white; 137 | overflow:hidden; 138 | text-align: center; 139 | } 140 | .logo { 141 | width: 60px; 142 | margin: 0 auto; 143 | } 144 | .logo img { 145 | width: 100%; 146 | } 147 | .head_title h2{ 148 | float: left; 149 | } 150 | .head_title a{ 151 | float: right; 152 | background: green; 153 | color: white; 154 | text-decoration: none; 155 | padding: 0px 7px; 156 | } 157 | .head_title a:hover{background:rgb(37, 136, 37) } 158 | .loginBox{ 159 | margin: 20px; 160 | color: white; 161 | } 162 | i.fa.fa-lock { 163 | margin: 2px; 164 | } 165 | .loginBox strong{ 166 | font-size: 14px; 167 | font-weight: 100; 168 | } 169 | .loginBox input { 170 | width: 92%; 171 | padding: 7px; 172 | border-radius: 5px; 173 | outline: none; 174 | border: 1px solid #ff9000; 175 | } 176 | .loginBox #loginButton{ 177 | margin-top: 7px; 178 | background: #daaa57; 179 | color: whitesmoke; 180 | transition: 0.3s; 181 | width: 80px; 182 | } 183 | .loginBox #loginButton:hover{ 184 | background: #fda203; 185 | cursor: pointer; 186 | } 187 | .footer a{ 188 | background: #8c6c02; 189 | color: white; 190 | text-decoration: none; 191 | padding: 10px 13px; 192 | } 193 | .footer a:hover{/* background: rgb(37, 136, 37) */} 194 | .forgottenPasswoard span a{ 195 | color: blue; 196 | text-decoration:none; 197 | } 198 | .forgottenPasswoard span a:hover{ 199 | text-decoration: underline; 200 | } 201 | .loginBox i { 202 | margin-right: 5px; 203 | } 204 | 205 | input[type="checkbox"] { 206 | margin-right: 5px; 207 | 208 | } 209 | .forgottenPasswoard { 210 | margin-top: 12px; 211 | } 212 | .side{ 213 | margin-top: -170px; 214 | margin-left: 380px; 215 | letter-spacing: 10px; 216 | line-height: 60px; 217 | color: white; 218 | font-size: 20px; 219 | font-family: 'Hanalei Fill', cursive; 220 | 221 | } 222 | body{ 223 | 224 | min-height: 230vh; 225 | } 226 | } 227 | -------------------------------------------------------------------------------- /public/css/style5.css: -------------------------------------------------------------------------------- 1 | @import url('https://fonts.googleapis.com/css?family=Poppins:400,500,600,700&display=swap'); 2 | *{ 3 | margin: 0; 4 | padding: 0; 5 | user-select: none; 6 | box-sizing: border-box; 7 | 8 | font-family: 'Poppins', sans-serif; 9 | } 10 | 11 | 12 | /* width */ 13 | ::-webkit-scrollbar { 14 | width: 1px; 15 | } 16 | 17 | /* Track */ 18 | ::-webkit-scrollbar-track { 19 | background: black; 20 | } 21 | 22 | /* Handle */ 23 | ::-webkit-scrollbar-thumb { 24 | background:black; 25 | } 26 | 27 | /* Handle on hover */ 28 | ::-webkit-scrollbar-thumb:hover { 29 | background: #555; 30 | } 31 | nav{ 32 | 33 | overflow-x: hidden; 34 | -ms-overflow-style: none; /* IE and Edge */ 35 | scrollbar-width: none; 36 | background: red; 37 | width: 25%; 38 | height: auto; 39 | margin-left:-30px; 40 | 41 | 42 | 43 | } 44 | nav ul{ 45 | background: #1b1b1b; 46 | height: 100%; 47 | width: 100%; 48 | padding-right: 50px; 49 | 50 | list-style: none; 51 | } 52 | nav ul li{ 53 | line-height: 60px; 54 | border-top: 1px solid rgba(255,255,255,0.1); 55 | 56 | } 57 | nav ul li:last-child{ 58 | border-bottom: 1px solid rgba(255,255,255,0.05); 59 | 60 | } 61 | nav ul li a{ 62 | position: relative; 63 | color: white; 64 | text-decoration: none!important; 65 | font-size: 18px; 66 | margin-left: 40px; 67 | padding-left: 40px; 68 | font-weight: 500; 69 | display: block; 70 | width: 100%; 71 | border-left: 3px solid transparent; 72 | } 73 | nav ul li.active a{ 74 | color: cyan; 75 | background: #1e1e1e; 76 | border-left-color: cyan; 77 | } 78 | nav ul li a:hover{ 79 | background: #1e1e1e; 80 | } 81 | nav ul ul{ 82 | position: static; 83 | display: none; 84 | } 85 | nav ul .feat-show.show5{ 86 | display: block; 87 | } 88 | nav ul .serv-show.show1{ 89 | display: block; 90 | 91 | } 92 | nav ul .extra-show.show2{ 93 | display: block; 94 | } 95 | nav ul .shelf-show.show3{ 96 | display: block; 97 | } 98 | nav ul ul li{ 99 | line-height: 42px; 100 | border-top: none; 101 | 102 | } 103 | nav ul ul li a{ 104 | font-size: 17px; 105 | color: #e6e6e6; 106 | text-decoration: none !important; 107 | margin-left: 70px !important; 108 | padding-left: 40px !important; 109 | 110 | 111 | 112 | } 113 | nav ul li.active ul li a{ 114 | color: #e6e6e6; 115 | background: #1b1b1b; 116 | border-left-color: transparent; 117 | } 118 | nav ul ul li a:hover{ 119 | color: cyan!important; 120 | background: #1e1e1e!important; 121 | } 122 | nav ul li a span{ 123 | position: absolute; 124 | top: 50%; 125 | right: 20px; 126 | transform: translateY(-50%); 127 | font-size: 22px; 128 | transition: transform 0.4s; 129 | } 130 | nav ul li a span.rotate{ 131 | transform: translateY(-50%) rotate(-180deg); 132 | } 133 | .content{ 134 | position: absolute; 135 | top: 50%; 136 | left: 50%; 137 | transform: translate(-50%,-50%); 138 | margin-top: 50px; 139 | color: #202020; 140 | 141 | 142 | text-align: center; 143 | } 144 | .content .header{ 145 | font-size: 45px; 146 | font-weight: 600; 147 | } 148 | .content p{ 149 | font-size: 30px; 150 | font-weight: 500; 151 | } 152 | .user_info{ 153 | 154 | display:inline-flex; 155 | 156 | } -------------------------------------------------------------------------------- /public/css/style7.css: -------------------------------------------------------------------------------- 1 | @import url('https://fonts.googleapis.com/css?family=Poppins:400,500,600,700&display=swap'); 2 | *{ 3 | margin: 0; 4 | padding: 0; 5 | user-select: none; 6 | box-sizing: border-box; 7 | 8 | font-family: 'Poppins', sans-serif; 9 | } 10 | 11 | 12 | /* width */ 13 | ::-webkit-scrollbar { 14 | width: 1px; 15 | } 16 | 17 | /* Track */ 18 | ::-webkit-scrollbar-track { 19 | background: black; 20 | } 21 | 22 | /* Handle */ 23 | ::-webkit-scrollbar-thumb { 24 | background:black; 25 | } 26 | 27 | /* Handle on hover */ 28 | ::-webkit-scrollbar-thumb:hover { 29 | background: #555; 30 | } 31 | nav{ 32 | 33 | overflow-x: hidden; 34 | -ms-overflow-style: none; /* IE and Edge */ 35 | scrollbar-width: none; 36 | background: red; 37 | width: 250%; 38 | height: auto; 39 | margin-left:-30px; 40 | 41 | 42 | } 43 | nav ul{ 44 | background: #1b1b1b; 45 | height: 100%; 46 | width: 100%; 47 | padding-right: 50px; 48 | list-style: none; 49 | } 50 | nav ul li{ 51 | line-height: 60px; 52 | 53 | border-top: 1px solid rgba(255,255,255,0.1); 54 | 55 | } 56 | nav ul li:last-child{ 57 | border-bottom: 1px solid rgba(255,255,255,0.05); 58 | 59 | } 60 | nav ul li a{ 61 | position: relative; 62 | color: white; 63 | text-decoration: none!important; 64 | font-size: 18px; 65 | margin-left: 40px; 66 | padding-left: 40px; 67 | font-weight: 500; 68 | display: block; 69 | width: 100%; 70 | border-left: 3px solid transparent; 71 | } 72 | nav ul li.active a{ 73 | color: cyan; 74 | background: #1e1e1e; 75 | border-left-color: cyan; 76 | } 77 | nav ul li a:hover{ 78 | background: #1e1e1e; 79 | } 80 | nav ul ul{ 81 | position: static; 82 | display: none; 83 | padding-right: -50px !important; 84 | 85 | } 86 | nav ul .feat-show.show5{ 87 | display: block; 88 | } 89 | nav ul .serv-show.show1{ 90 | display: block; 91 | 92 | } 93 | nav ul .extra-show.show2{ 94 | display: block; 95 | } 96 | nav ul .shelf-show.show3{ 97 | display: block; 98 | } 99 | nav ul ul li{ 100 | line-height: 42px; 101 | border-top: none; 102 | 103 | } 104 | nav ul ul li a{ 105 | font-size: 17px; 106 | color: #e6e6e6; 107 | text-decoration: none !important; 108 | margin-left: 70px !important; 109 | padding-left: 40px !important; 110 | padding-right: -30px; 111 | 112 | 113 | } 114 | nav ul li.active ul li a{ 115 | color: #e6e6e6; 116 | background: #1b1b1b; 117 | border-left-color: transparent; 118 | } 119 | nav ul ul li a:hover{ 120 | color: cyan!important; 121 | background: #1e1e1e!important; 122 | } 123 | nav ul li a span{ 124 | position: absolute; 125 | top: 50%; 126 | right: 20px; 127 | transform: translateY(-50%); 128 | font-size: 22px; 129 | transition: transform 0.4s; 130 | } 131 | nav ul li a span.rotate{ 132 | transform: translateY(-50%) rotate(-180deg); 133 | } 134 | .content{ 135 | 136 | position: fixed; 137 | top: 10px; 138 | left: 10px; 139 | bottom: 10px; 140 | overflow-y: scroll; 141 | 142 | } 143 | .content .header{ 144 | font-size: 45px; 145 | font-weight: 600; 146 | } 147 | .content p{ 148 | font-size: 30px; 149 | font-weight: 500; 150 | } 151 | .sidebar 152 | { 153 | 154 | width: 340px; 155 | 156 | 157 | } 158 | table 159 | { 160 | 161 | text-align: center; 162 | 163 | } -------------------------------------------------------------------------------- /public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/abdullahthewebbee/Seminar_Library_Management_System_Laravel-master/b4b6b5269d4f3be928decce3fef9ac299210da87/public/favicon.ico -------------------------------------------------------------------------------- /public/index.php: -------------------------------------------------------------------------------- 1 | 8 | */ 9 | 10 | define('LARAVEL_START', microtime(true)); 11 | 12 | /* 13 | |-------------------------------------------------------------------------- 14 | | Register The Auto Loader 15 | |-------------------------------------------------------------------------- 16 | | 17 | | Composer provides a convenient, automatically generated class loader for 18 | | our application. We just need to utilize it! We'll simply require it 19 | | into the script here so that we don't have to worry about manual 20 | | loading any of our classes later on. It feels great to relax. 21 | | 22 | */ 23 | 24 | require __DIR__.'/../vendor/autoload.php'; 25 | 26 | /* 27 | |-------------------------------------------------------------------------- 28 | | Turn On The Lights 29 | |-------------------------------------------------------------------------- 30 | | 31 | | We need to illuminate PHP development, so let us turn on the lights. 32 | | This bootstraps the framework and gets it ready for use, then it 33 | | will load up this application so that we can run it and send 34 | | the responses back to the browser and delight our users. 35 | | 36 | */ 37 | 38 | $app = require_once __DIR__.'/../bootstrap/app.php'; 39 | 40 | /* 41 | |-------------------------------------------------------------------------- 42 | | Run The Application 43 | |-------------------------------------------------------------------------- 44 | | 45 | | Once we have the application, we can handle the incoming request 46 | | through the kernel, and send the associated response back to 47 | | the client's browser allowing them to enjoy the creative 48 | | and wonderful application we have prepared for them. 49 | | 50 | */ 51 | 52 | $kernel = $app->make(Illuminate\Contracts\Http\Kernel::class); 53 | 54 | $response = $kernel->handle( 55 | $request = Illuminate\Http\Request::capture() 56 | ); 57 | 58 | $response->send(); 59 | 60 | $kernel->terminate($request, $response); 61 | -------------------------------------------------------------------------------- /public/js/ace.js: -------------------------------------------------------------------------------- 1 | (function($) { 2 | 'use strict'; 3 | var editor = ace.edit("aceExample"); 4 | editor.setTheme("ace/theme/chaos"); 5 | editor.getSession().setMode("ace/mode/javascript"); 6 | document.getElementById('aceExample').style.fontSize = '1rem'; 7 | })(jQuery); -------------------------------------------------------------------------------- /public/js/alerts.js: -------------------------------------------------------------------------------- 1 | (function($) { 2 | showSwal = function(type) { 3 | 'use strict'; 4 | if (type === 'basic') { 5 | swal('Any fool can use a computer') 6 | 7 | } else if (type === 'title-and-text') { 8 | swal( 9 | 'The Internet?', 10 | 'That thing is still around?', 11 | 'question' 12 | ) 13 | 14 | } else if (type === 'success-message') { 15 | swal( 16 | 'Good job!', 17 | 'You clicked the button!', 18 | 'success' 19 | ) 20 | 21 | } else if (type === 'auto-close') { 22 | swal({ 23 | title: 'Auto close alert!', 24 | text: 'I will close in 2 seconds.', 25 | timer: 2000 26 | }).then( 27 | function() {}, 28 | // handling the promise rejection 29 | function(dismiss) { 30 | if (dismiss === 'timer') { 31 | console.log('I was closed by the timer') 32 | } 33 | } 34 | ) 35 | } else if (type === 'warning-message-and-cancel') { 36 | swal({ 37 | title: 'Are you sure?', 38 | text: "You won't be able to revert this!", 39 | type: 'warning', 40 | showCancelButton: true, 41 | confirmButtonColor: '#3085d6', 42 | cancelButtonColor: '#d33', 43 | confirmButtonText: 'Yes, delete it!' 44 | }).then(function() { 45 | swal( 46 | 'Deleted!', 47 | 'Your file has been deleted.', 48 | 'success' 49 | ) 50 | }) 51 | 52 | } else if (type === 'custom-html') { 53 | swal({ 54 | title: 'HTML example', 55 | type: 'info', 56 | html: 'You can use bold text, ' + 57 | 'links ' + 58 | 'and other HTML tags', 59 | showCloseButton: true, 60 | showCancelButton: true, 61 | confirmButtonText: ' Great!', 62 | cancelButtonText: 'Cancel' 63 | }) 64 | } 65 | } 66 | 67 | })(jQuery); -------------------------------------------------------------------------------- /public/js/avgrund.js: -------------------------------------------------------------------------------- 1 | (function($) { 2 | 'use strict'; 3 | $(function() { 4 | $('#show').avgrund({ 5 | height: 500, 6 | holderClass: 'custom', 7 | showClose: true, 8 | showCloseText: 'close', 9 | onBlurContainer: '.container-scroller', 10 | template: '

So implement your design and place content here! If you want to close modal, please hit "Esc", click somewhere on the screen or use special button.

' + 11 | '
' + 12 | 'Avgrund on Github' + 13 | 'Twitter' + 14 | 'Dribbble' + 15 | '
' 16 | }); 17 | }) 18 | })(jQuery); -------------------------------------------------------------------------------- /public/js/bootstrap-table.js: -------------------------------------------------------------------------------- 1 | (function($) { 2 | 'use strict'; 3 | 4 | function monthSorter(a, b) { 5 | if (a.month < b.month) return -1; 6 | if (a.month > b.month) return 1; 7 | return 0; 8 | } 9 | 10 | function buildTable($el, cells, rows) { 11 | var i, j, row, 12 | columns = [], 13 | data = []; 14 | 15 | for (i = 0; i < cells; i++) { 16 | columns.push({ 17 | field: 'field' + i, 18 | title: 'Cell' + i 19 | }); 20 | } 21 | for (i = 0; i < rows; i++) { 22 | row = {}; 23 | for (j = 0; j < cells; j++) { 24 | row['field' + j] = 'Row-' + i + '-' + j; 25 | } 26 | data.push(row); 27 | } 28 | $el.bootstrapTable('destroy').bootstrapTable({ 29 | columns: columns, 30 | data: data 31 | }); 32 | } 33 | 34 | $(function() { 35 | buildTable($('#table'), 50, 50); 36 | }); 37 | 38 | function actionFormatter(value, row, index) { 39 | return [ 40 | '', 41 | '', 42 | '', 43 | '', 44 | '', 45 | '', 46 | '', 47 | '', 48 | '' 49 | ].join(''); 50 | } 51 | 52 | window.actionEvents = { 53 | 'click .like': function(e, value, row, index) { 54 | alert('You click like icon, row: ' + JSON.stringify(row)); 55 | console.log(value, row, index); 56 | }, 57 | 'click .edit': function(e, value, row, index) { 58 | alert('You click edit icon, row: ' + JSON.stringify(row)); 59 | console.log(value, row, index); 60 | }, 61 | 'click .remove': function(e, value, row, index) { 62 | alert('You click remove icon, row: ' + JSON.stringify(row)); 63 | console.log(value, row, index); 64 | } 65 | }; 66 | })(jQuery); -------------------------------------------------------------------------------- /public/js/bt-maxLength.js: -------------------------------------------------------------------------------- 1 | (function($) { 2 | 'use strict'; 3 | $('#defaultconfig').maxlength(); 4 | 5 | $('#defaultconfig-2').maxlength({ 6 | alwaysShow: true, 7 | threshold: 20, 8 | warningClass: "badge mt-1 badge-success", 9 | limitReachedClass: "badge mt-1 badge-danger" 10 | }); 11 | 12 | $('#defaultconfig-3').maxlength({ 13 | alwaysShow: true, 14 | threshold: 10, 15 | warningClass: "badge mt-1 badge-success", 16 | limitReachedClass: "badge mt-1 badge-danger", 17 | separator: ' of ', 18 | preText: 'You have ', 19 | postText: ' chars remaining.', 20 | validate: true 21 | }); 22 | 23 | $('#maxlength-textarea').maxlength({ 24 | alwaysShow: true 25 | }); 26 | })(jQuery); -------------------------------------------------------------------------------- /public/js/bt-multiselect-splitter.js: -------------------------------------------------------------------------------- 1 | (function($) { 2 | 'use strict'; 3 | $(function() { 4 | $('#example1').multiselectsplitter(); 5 | 6 | $('#example2').multiselectsplitter({ 7 | selectSize: 7, 8 | clearOnFirstChange: true, 9 | groupCounter: true 10 | }); 11 | 12 | $('#example3').multiselectsplitter({ 13 | groupCounter: true, 14 | maximumSelected: 2 15 | }); 16 | 17 | $('#example4').multiselectsplitter({ 18 | groupCounter: true, 19 | maximumSelected: 3, 20 | onlySameGroup: true 21 | }); 22 | 23 | $('#example5').multiselectsplitter({ 24 | size: 6, 25 | groupCounter: true, 26 | maximumSelected: 2, 27 | maximumAlert: function(maximumSelected) { 28 | alert('You choose ' + (maximumSelected + 1) + ' options. Are you crazy ?'); 29 | }, 30 | createFirstSelect: function(label, $originalSelect) { 31 | return ''; 32 | }, 33 | createSecondSelect: function(label, $firstSelect) { 34 | return ''; 35 | } 36 | }); 37 | }); 38 | })(jQuery); -------------------------------------------------------------------------------- /public/js/calendar.js: -------------------------------------------------------------------------------- 1 | (function($) { 2 | 'use strict'; 3 | $(function() { 4 | if ($('#calendar').length) { 5 | $('#calendar').fullCalendar({ 6 | header: { 7 | left: 'prev,next today', 8 | center: 'title', 9 | right: 'month,basicWeek,basicDay' 10 | }, 11 | defaultDate: '2017-07-12', 12 | navLinks: true, // can click day/week names to navigate views 13 | editable: true, 14 | eventLimit: true, // allow "more" link when too many events 15 | events: [{ 16 | title: 'All Day Event', 17 | start: '2017-07-01' 18 | }, 19 | { 20 | title: 'Long Event', 21 | start: '2017-07-07', 22 | end: '2017-07-10' 23 | }, 24 | { 25 | id: 999, 26 | title: 'Repeating Event', 27 | start: '2017-07-09T16:00:00' 28 | }, 29 | { 30 | id: 999, 31 | title: 'Repeating Event', 32 | start: '2017-07-16T16:00:00' 33 | }, 34 | { 35 | title: 'Conference', 36 | start: '2017-07-11', 37 | end: '2017-07-13' 38 | }, 39 | { 40 | title: 'Meeting', 41 | start: '2017-07-12T10:30:00', 42 | end: '2017-07-12T12:30:00' 43 | }, 44 | { 45 | title: 'Lunch', 46 | start: '2017-07-12T12:00:00' 47 | }, 48 | { 49 | title: 'Meeting', 50 | start: '2017-07-12T14:30:00' 51 | }, 52 | { 53 | title: 'Happy Hour', 54 | start: '2017-07-12T17:30:00' 55 | }, 56 | { 57 | title: 'Dinner', 58 | start: '2017-07-12T20:00:00' 59 | }, 60 | { 61 | title: 'Birthday Party', 62 | start: '2017-07-13T07:00:00' 63 | }, 64 | { 65 | title: 'Click for Google', 66 | url: 'http://google.com/', 67 | start: '2017-07-28' 68 | } 69 | ] 70 | }) 71 | } 72 | }); 73 | })(jQuery); -------------------------------------------------------------------------------- /public/js/circle-progress.js: -------------------------------------------------------------------------------- 1 | (function($) { 2 | 'use strict'; 3 | if ($(".circle-progress").length) { 4 | $('.circle-progress').circleProgress({ 5 | fill: { 6 | color: "#fff" 7 | } 8 | }); 9 | } 10 | if ($(".yearly-progress").length) { 11 | $('.yearly-progress').circleProgress({ 12 | value: 0.80, 13 | thickness: 13, 14 | startAngle: 45, 15 | fill: { 16 | color: "#03D751" 17 | } 18 | }).on('circle-animation-progress', function(event, progress) { 19 | $(this).find('.value').html(Math.round(80 * progress) + '%'); 20 | }); 21 | } 22 | if ($(".monthly-progress").length) { 23 | $('.monthly-progress').circleProgress({ 24 | value: 0.45, 25 | thickness: 13, 26 | startAngle: 45, 27 | fill: { 28 | color: "#57008E" 29 | } 30 | }).on('circle-animation-progress', function(event, progress) { 31 | $(this).find('.value').html(Math.round(45 * progress) + '%'); 32 | }); 33 | } 34 | })(jQuery); -------------------------------------------------------------------------------- /public/js/clipboard.js: -------------------------------------------------------------------------------- 1 | (function($) { 2 | 'use strict'; 3 | var clipboard = new Clipboard('.btn-clipboard'); 4 | clipboard.on('success', function(e) { 5 | console.log(e); 6 | }); 7 | clipboard.on('error', function(e) { 8 | console.log(e); 9 | }); 10 | })(jQuery); -------------------------------------------------------------------------------- /public/js/codemirror.js: -------------------------------------------------------------------------------- 1 | (function($) { 2 | 'use strict'; 3 | if ($('textarea[name=code-editable]').length) { 4 | var editableCodeMirror = CodeMirror.fromTextArea(document.getElementById('code-editable'), { 5 | mode: "javascript", 6 | theme: "ambiance", 7 | lineNumbers: true 8 | }); 9 | } 10 | if ($('#code-readonly').length) { 11 | var readOnlyCodeMirror = CodeMirror.fromTextArea(document.getElementById('code-readonly'), { 12 | mode: "javascript", 13 | theme: "ambiance", 14 | lineNumbers: true, 15 | readOnly: "nocursor" 16 | }); 17 | } 18 | 19 | //Use this method of there are multiple codes with same properties 20 | if ($('.multiple-codes').length) { 21 | var code_type = ''; 22 | var editorTextarea = $('.multiple-codes'); 23 | for (var i = 0; i < editorTextarea.length; i++) { 24 | $(editorTextarea[i]).attr('id', 'code-' + i); 25 | CodeMirror.fromTextArea(document.getElementById('code-' + i), { 26 | mode: "javascript", 27 | theme: "ambiance", 28 | lineNumbers: true, 29 | readOnly: "nocursor" 30 | }); 31 | } 32 | } 33 | 34 | //Use this method of there are multiple codes with same properties in shell mode 35 | if ($('.shell-mode').length) { 36 | var code_type = ''; 37 | var shellEditor = $('.shell-mode'); 38 | for (var i = 0; i < shellEditor.length; i++) { 39 | $(shellEditor[i]).attr('id', 'code-' + i); 40 | CodeMirror.fromTextArea(document.getElementById('code-' + i), { 41 | mode: "shell", 42 | theme: "ambiance", 43 | readOnly: "nocursor" 44 | }); 45 | } 46 | } 47 | })(jQuery); -------------------------------------------------------------------------------- /public/js/cropper.js: -------------------------------------------------------------------------------- 1 | (function($) { 2 | 'use strict'; 3 | $('#cropperExample').cropper({ 4 | aspectRatio: 16 / 9 5 | }); 6 | })(jQuery); -------------------------------------------------------------------------------- /public/js/dashboard_1.js: -------------------------------------------------------------------------------- 1 | (function($) { 2 | 'use strict'; 3 | 4 | if ($("#dashboard-card-chart-1").length) { 5 | var d1 = []; 6 | var options = {}; 7 | $.plot($("#dashboard-card-chart-1"), [{ 8 | data: d1 = [ 9 | [0, 1], 10 | [1, 14], 11 | [2, 3], 12 | [3, 22], 13 | [4, 10], 14 | [5, 17], 15 | [6, 2], 16 | [7, 34], 17 | [8, 7] 18 | ], 19 | lines: { 20 | show: true, 21 | fill: 0.18 22 | }, 23 | label: 'Product A', 24 | stack: false, 25 | color: '#9B61EE' 26 | }], 27 | options = { 28 | series: { 29 | shadowSize: 0, 30 | lines: { 31 | show: true, 32 | }, 33 | }, 34 | grid: false, 35 | xaxis: false, 36 | yaxis: false, 37 | legend: false 38 | }); 39 | } 40 | 41 | if ($("#dashboard-card-chart-2").length) { 42 | var d1 = []; 43 | var options = {}; 44 | $.plot($("#dashboard-card-chart-2"), [{ 45 | data: d1 = [ 46 | [0, 1], 47 | [1, 5], 48 | [2, 22], 49 | [3, 9], 50 | [4, 14], 51 | [5, 6], 52 | [6, 19], 53 | [7, 17], 54 | [8, 9] 55 | ], 56 | lines: { 57 | show: true, 58 | fill: 0.18 59 | }, 60 | label: 'Product A', 61 | stack: false, 62 | color: '#70E400 ' 63 | }], 64 | options = { 65 | series: { 66 | shadowSize: 0, 67 | lines: { 68 | show: true, 69 | }, 70 | }, 71 | grid: false, 72 | xaxis: false, 73 | yaxis: false, 74 | legend: false 75 | }); 76 | } 77 | 78 | if ($("#dashboard-card-chart-3").length) { 79 | var d1 = []; 80 | var options = {}; 81 | $.plot($("#dashboard-card-chart-3"), [{ 82 | data: d1 = [ 83 | [0, 1], 84 | [1, 20], 85 | [2, 18], 86 | [3, 4], 87 | [4, 8], 88 | [5, 1], 89 | [6, 16], 90 | [7, 18], 91 | [8, 10] 92 | ], 93 | lines: { 94 | show: true, 95 | fill: 0.18 96 | }, 97 | label: 'Product A', 98 | stack: false, 99 | color: '#FFAF00' 100 | }], 101 | options = { 102 | series: { 103 | shadowSize: 0, 104 | lines: { 105 | show: true, 106 | }, 107 | }, 108 | grid: false, 109 | xaxis: false, 110 | yaxis: false, 111 | legend: false 112 | }); 113 | } 114 | 115 | if ($("#dashboard-card-chart-4").length) { 116 | var d1 = []; 117 | var options = {}; 118 | $.plot($("#dashboard-card-chart-4"), [{ 119 | data: d1 = [ 120 | [0, 1], 121 | [1, 17], 122 | [2, 8], 123 | [3, 22], 124 | [4, 19], 125 | [5, 9], 126 | [6, 22], 127 | [7, 16], 128 | [8, 14] 129 | ], 130 | lines: { 131 | show: true, 132 | fill: 0.18 133 | }, 134 | label: 'Product A', 135 | stack: false, 136 | color: '#FF0028' 137 | }], 138 | options = { 139 | series: { 140 | shadowSize: 0, 141 | lines: { 142 | show: true, 143 | }, 144 | }, 145 | grid: false, 146 | xaxis: false, 147 | yaxis: false, 148 | legend: false 149 | }); 150 | } 151 | 152 | if ($('#dashboard-chartist-simple').length) { 153 | var chart = new Chartist.Line('#dashboard-chartist-simple', { 154 | labels: ['1 Jan', '3 Feb', '2 Mar', '2 Apr', '1 May', '2 Jul', '2 Aug'], 155 | series: [{ 156 | "name": "New users", 157 | "data": [1, 5, 2, 5, 4, 3, 6, 1] 158 | }, 159 | { 160 | "name": "Existing Users", 161 | "data": [1, 3, 4, 8, 1, 3, 8, 4] 162 | } 163 | ] 164 | }, { 165 | fullWidth: true, 166 | showPoint: false, 167 | chartPadding: { 168 | right: 0, 169 | left: 0, 170 | top: 0, 171 | bottom: 0 172 | }, 173 | axisX: { 174 | showLabel: false, 175 | showGrid: false 176 | }, 177 | axisX: { 178 | showLabel: true, 179 | showGrid: false 180 | }, 181 | plugins: [ 182 | Chartist.plugins.legend() 183 | ] 184 | }); 185 | 186 | chart.on('draw', function(data) { 187 | if (data.type === 'line' || data.type === 'area') { 188 | data.element.animate({ 189 | d: { 190 | begin: 1000 * data.index, 191 | dur: 2000, 192 | from: data.path.clone().scale(1, 0).translate(0, data.chartRect.height()).stringify(), 193 | to: data.path.clone().stringify(), 194 | easing: Chartist.Svg.Easing.easeOutQuint 195 | } 196 | }); 197 | } 198 | }); 199 | } 200 | 201 | if ($("#sparkline-line-chart").length) { 202 | $("#sparkline-line-chart").sparkline([5, 9, 13, 2, 6, 1, 10, 2, 8, 12, 4], { 203 | type: 'line', 204 | width: '100%', 205 | height: '100%' 206 | }); 207 | } 208 | 209 | })(jQuery); -------------------------------------------------------------------------------- /public/js/data-table.js: -------------------------------------------------------------------------------- 1 | (function($) { 2 | 'use strict'; 3 | $(function() { 4 | $('#order-listing').DataTable({ 5 | "aLengthMenu": [ 6 | [5, 10, 15, -1], 7 | [5, 10, 15, "All"] 8 | ], 9 | "iDisplayLength": 5 10 | }); 11 | }); 12 | })(jQuery); -------------------------------------------------------------------------------- /public/js/desktop-notification.js: -------------------------------------------------------------------------------- 1 | (function($) { 2 | 'use strict'; 3 | $.fn.easyNotify = function(options) { 4 | 5 | var settings = $.extend({ 6 | title: "Notification", 7 | options: { 8 | body: "", 9 | icon: "", 10 | lang: 'pt-BR', 11 | onClose: "", 12 | onClick: "", 13 | onError: "" 14 | } 15 | }, options); 16 | 17 | this.init = function() { 18 | var notify = this; 19 | if (!("Notification" in window)) { 20 | alert("This browser does not support desktop notification"); 21 | } else if (Notification.permission === "granted") { 22 | 23 | var notification = new Notification(settings.title, settings.options); 24 | 25 | notification.onclose = function() { 26 | if (typeof settings.options.onClose === 'function') { 27 | settings.options.onClose(); 28 | } 29 | }; 30 | 31 | notification.onclick = function() { 32 | if (typeof settings.options.onClick === 'function') { 33 | settings.options.onClick(); 34 | } 35 | }; 36 | 37 | notification.onerror = function() { 38 | if (typeof settings.options.onError === 'function') { 39 | settings.options.onError(); 40 | } 41 | }; 42 | 43 | } else if (Notification.permission !== 'denied') { 44 | Notification.requestPermission(function(permission) { 45 | if (permission === "granted") { 46 | notify.init(); 47 | } 48 | 49 | }); 50 | } 51 | 52 | }; 53 | 54 | this.init(); 55 | return this; 56 | }; 57 | 58 | 59 | //Initialise notification 60 | var myFunction = function() { 61 | alert('Click function'); 62 | }; 63 | var myImg = "https://unsplash.it/600/600?image=777"; 64 | 65 | $("form").submit(function(event) { 66 | event.preventDefault(); 67 | 68 | var options = { 69 | title: $("#title").val(), 70 | options: { 71 | body: $("#message").val(), 72 | icon: myImg, 73 | lang: 'en-US', 74 | onClick: myFunction 75 | } 76 | }; 77 | console.log(options); 78 | $("#easyNotify").easyNotify(options); 79 | }); 80 | }(jQuery)); -------------------------------------------------------------------------------- /public/js/dragula.js: -------------------------------------------------------------------------------- 1 | (function($) { 2 | 'use strict'; 3 | dragula([document.getElementById("dragula-left"), document.getElementById("dragula-right")]); 4 | dragula([document.getElementById("profile-list-left"), document.getElementById("profile-list-right")]); 5 | dragula([document.getElementById("dragula-event-left"), document.getElementById("dragula-event-right")]) 6 | .on('drop', function(el) { 7 | el.className += ' bg-danger'; 8 | }) 9 | })(jQuery); -------------------------------------------------------------------------------- /public/js/dropify.js: -------------------------------------------------------------------------------- 1 | (function($) { 2 | 'use strict'; 3 | $('.dropify').dropify(); 4 | })(jQuery); -------------------------------------------------------------------------------- /public/js/dropzone.js: -------------------------------------------------------------------------------- 1 | (function($) { 2 | 'use strict'; 3 | $("my-awesome-dropzone").dropzone({ 4 | url: "bootstrapdash.com/" 5 | }); 6 | })(jQuery); -------------------------------------------------------------------------------- /public/js/form-repeater.js: -------------------------------------------------------------------------------- 1 | (function($) { 2 | 'use strict'; 3 | $(function() { 4 | $('.repeater').repeater({ 5 | // (Optional) 6 | // "defaultValues" sets the values of added items. The keys of 7 | // defaultValues refer to the value of the input's name attribute. 8 | // If a default value is not specified for an input, then it will 9 | // have its value cleared. 10 | defaultValues: { 11 | 'text-input': 'foo' 12 | }, 13 | // (Optional) 14 | // "show" is called just after an item is added. The item is hidden 15 | // at this point. If a show callback is not given the item will 16 | // have $(this).show() called on it. 17 | show: function() { 18 | $(this).slideDown(); 19 | }, 20 | // (Optional) 21 | // "hide" is called when a user clicks on a data-repeater-delete 22 | // element. The item is still visible. "hide" is passed a function 23 | // as its first argument which will properly remove the item. 24 | // "hide" allows for a confirmation step, to send a delete request 25 | // to the server, etc. If a hide callback is not given the item 26 | // will be deleted. 27 | hide: function(deleteElement) { 28 | if (confirm('Are you sure you want to delete this element?')) { 29 | $(this).slideUp(deleteElement); 30 | } 31 | }, 32 | // (Optional) 33 | // Removes the delete button from the first list item, 34 | // defaults to false. 35 | isFirstItemUndeletable: true 36 | }) 37 | }); 38 | })(jQuery); -------------------------------------------------------------------------------- /public/js/form-validation.js: -------------------------------------------------------------------------------- 1 | (function($) { 2 | 'use strict'; 3 | $.validator.setDefaults({ 4 | submitHandler: function() { 5 | alert("submitted!"); 6 | } 7 | }); 8 | $(function() { 9 | // validate the comment form when it is submitted 10 | $("#commentForm").validate({ 11 | errorPlacement: function(label, element) { 12 | label.addClass('text-danger'); 13 | label.insertAfter(element); 14 | }, 15 | highlight: function(element, errorClass) { 16 | $(element).parent().addClass('has-danger') 17 | $(element).addClass('form-control-danger') 18 | } 19 | }); 20 | // validate signup form on keyup and submit 21 | $("#signupForm").validate({ 22 | rules: { 23 | firstname: "required", 24 | lastname: "required", 25 | username: { 26 | required: true, 27 | minlength: 2 28 | }, 29 | password: { 30 | required: true, 31 | minlength: 5 32 | }, 33 | confirm_password: { 34 | required: true, 35 | minlength: 5, 36 | equalTo: "#password" 37 | }, 38 | email: { 39 | required: true, 40 | email: true 41 | }, 42 | topic: { 43 | required: "#newsletter:checked", 44 | minlength: 2 45 | }, 46 | agree: "required" 47 | }, 48 | messages: { 49 | firstname: "Please enter your firstname", 50 | lastname: "Please enter your lastname", 51 | username: { 52 | required: "Please enter a username", 53 | minlength: "Your username must consist of at least 2 characters" 54 | }, 55 | password: { 56 | required: "Please provide a password", 57 | minlength: "Your password must be at least 5 characters long" 58 | }, 59 | confirm_password: { 60 | required: "Please provide a password", 61 | minlength: "Your password must be at least 5 characters long", 62 | equalTo: "Please enter the same password as above" 63 | }, 64 | email: "Please enter a valid email address", 65 | agree: "Please accept our policy", 66 | topic: "Please select at least 2 topics" 67 | }, 68 | errorPlacement: function(label, element) { 69 | label.addClass('text-danger'); 70 | label.insertAfter(element); 71 | }, 72 | highlight: function(element, errorClass) { 73 | $(element).parent().addClass('has-danger') 74 | $(element).addClass('form-control-danger') 75 | } 76 | }); 77 | // propose username by combining first- and lastname 78 | $("#username").focus(function() { 79 | var firstname = $("#firstname").val(); 80 | var lastname = $("#lastname").val(); 81 | if (firstname && lastname && !this.value) { 82 | this.value = firstname + "." + lastname; 83 | } 84 | }); 85 | //code to hide topic selection, disable for demo 86 | var newsletter = $("#newsletter"); 87 | // newsletter topics are optional, hide at first 88 | var inital = newsletter.is(":checked"); 89 | var topics = $("#newsletter_topics")[inital ? "removeClass" : "addClass"]("gray"); 90 | var topicInputs = topics.find("input").attr("disabled", !inital); 91 | // show when newsletter is checked 92 | newsletter.on("click", function() { 93 | topics[this.checked ? "removeClass" : "addClass"]("gray"); 94 | topicInputs.attr("disabled", !this.checked); 95 | }); 96 | }); 97 | })(jQuery); -------------------------------------------------------------------------------- /public/js/formpickers.js: -------------------------------------------------------------------------------- 1 | (function($) { 2 | 'use strict'; 3 | if ($(".clockpicker").length) { 4 | $('.clockpicker').clockpicker(); 5 | } 6 | if ($(".color-picker").length) { 7 | $('.color-picker').asColorPicker(); 8 | } 9 | if ($(".datepicker").length) { 10 | $('.datepicker').datepicker({ 11 | enableOnReadonly: true, 12 | todayHighlight: true, 13 | }); 14 | } 15 | if ($(".datepicker-autoclose").length) { 16 | $('.datepicker-autoclose').datepicker({ 17 | autoclose: true 18 | }); 19 | } 20 | if ($('input[name="date-range"]').length) { 21 | $('input[name="date-range"]').daterangepicker(); 22 | } 23 | if ($('input[name="date-time-range"]').length) { 24 | $('input[name="date-time-range"]').daterangepicker({ 25 | timePicker: true, 26 | timePickerIncrement: 30, 27 | locale: { 28 | format: 'MM/DD/YYYY h:mm A' 29 | } 30 | }); 31 | } 32 | })(jQuery); -------------------------------------------------------------------------------- /public/js/hoverable-collapse.js: -------------------------------------------------------------------------------- 1 | (function($) { 2 | 'use strict'; 3 | $(document).on('mouseenter mouseleave', '.sidebar .nav-item', function(ev) { 4 | var body = $('body'); 5 | var sidebarIconOnly = body.hasClass("sidebar-icon-only"); 6 | var sidebarFixed = body.hasClass("sidebar-fixed"); 7 | if (!('ontouchstart' in document.documentElement)) { 8 | if (sidebarIconOnly) { 9 | if (sidebarFixed) { 10 | if (ev.type === 'mouseenter') { 11 | body.addClass('sidebar-expanded'); 12 | } else { 13 | body.removeClass('sidebar-expanded'); 14 | } 15 | } else { 16 | var $menuItem = $(this); 17 | if (ev.type === 'mouseenter') { 18 | $menuItem.addClass('hover-open') 19 | } else { 20 | $menuItem.removeClass('hover-open') 21 | } 22 | } 23 | } 24 | } 25 | 26 | }); 27 | 28 | //We are handling submenu in horizontal menu layout in a different way 29 | $('[data-toggle="showMegaMenu"]').on("click", function() { 30 | $(this).toggleClass('expanded'); 31 | }).on("mouseenter", function() { 32 | if (!('ontouchstart' in document.documentElement)) { 33 | $(this).addClass('expanded'); 34 | } 35 | }).on("mouseleave", function() { 36 | if (!('ontouchstart' in document.documentElement)) { 37 | $(this).removeClass('expanded'); 38 | } 39 | }); 40 | })(jQuery); -------------------------------------------------------------------------------- /public/js/iCheck.js: -------------------------------------------------------------------------------- 1 | (function($) { 2 | 'use strict'; 3 | $(function() { 4 | $('.icheck input').iCheck({ 5 | checkboxClass: 'icheckbox_minimal-blue', 6 | radioClass: 'iradio_minimal', 7 | increaseArea: '20%' 8 | }); 9 | $('.icheck-square input').iCheck({ 10 | checkboxClass: 'icheckbox_square-blue', 11 | radioClass: 'iradio_square', 12 | increaseArea: '20%' 13 | }); 14 | $('.icheck-flat input').iCheck({ 15 | checkboxClass: 'icheckbox_flat-blue', 16 | radioClass: 'iradio_flat', 17 | increaseArea: '20%' 18 | }); 19 | var icheckLineArray = $('.icheck-line input'); 20 | for (var i = 0; i < icheckLineArray.length; i++) { 21 | var self = $(icheckLineArray[i]); 22 | var label = self.next(); 23 | var label_text = label.text(); 24 | 25 | label.remove(); 26 | self.iCheck({ 27 | checkboxClass: 'icheckbox_line-blue', 28 | radioClass: 'iradio_line', 29 | insert: '
' + label_text 30 | }); 31 | } 32 | $('.icheck-polaris input').iCheck({ 33 | checkboxClass: 'icheckbox_polaris', 34 | radioClass: 'iradio_polaris', 35 | increaseArea: '20%' 36 | }); 37 | $('.icheck-futurico input').iCheck({ 38 | checkboxClass: 'icheckbox_futurico', 39 | radioClass: 'iradio_futurico', 40 | increaseArea: '20%' 41 | }); 42 | }); 43 | })(jQuery); -------------------------------------------------------------------------------- /public/js/ion-rangeSlider.js: -------------------------------------------------------------------------------- 1 | (function($) { 2 | 'use strict'; 3 | 4 | if ($('#range_01').length) { 5 | $("#range_01").ionRangeSlider(); 6 | } 7 | 8 | if ($("#range_02").length) { 9 | $("#range_02").ionRangeSlider({ 10 | min: 100, 11 | max: 1000, 12 | from: 550 13 | }); 14 | } 15 | 16 | if ($("#range_03").length) { 17 | $("#range_03").ionRangeSlider({ 18 | type: "double", 19 | grid: true, 20 | min: 0, 21 | max: 1000, 22 | from: 200, 23 | to: 800, 24 | prefix: "$" 25 | }); 26 | } 27 | 28 | if ($("#range_04").length) { 29 | $("#range_04").ionRangeSlider({ 30 | type: "double", 31 | min: 100, 32 | max: 200, 33 | from: 145, 34 | to: 155, 35 | prefix: "Weight: ", 36 | postfix: " million pounds", 37 | decorate_both: true 38 | }); 39 | } 40 | 41 | if ($("#range_05").length) { 42 | $("#range_05").ionRangeSlider({ 43 | type: "double", 44 | min: 1000, 45 | max: 2000, 46 | from: 1200, 47 | to: 1800, 48 | hide_min_max: true, 49 | hide_from_to: true, 50 | grid: false 51 | }); 52 | } 53 | 54 | if ($("#range_06").length) { 55 | $("#range_06").ionRangeSlider({ 56 | type: "double", 57 | min: 1000, 58 | max: 2000, 59 | from: 1200, 60 | to: 1800, 61 | hide_min_max: true, 62 | hide_from_to: true, 63 | grid: true 64 | }); 65 | } 66 | 67 | if ($("#range_07").length) { 68 | $("#range_07").ionRangeSlider({ 69 | type: "double", 70 | grid: true, 71 | min: 0, 72 | max: 10000, 73 | from: 1000, 74 | prefix: "$" 75 | }); 76 | } 77 | 78 | if ($("#range_08").length) { 79 | $("#range_08").ionRangeSlider({ 80 | type: "single", 81 | grid: true, 82 | min: -90, 83 | max: 90, 84 | from: 0, 85 | postfix: "°" 86 | }); 87 | } 88 | 89 | if ($("#range_09").length) { 90 | $("#range_09").ionRangeSlider({ 91 | type: "double", 92 | min: 0, 93 | max: 10000, 94 | grid: true 95 | }); 96 | } 97 | 98 | if ($("#range_10").length) { 99 | $("#range_10").ionRangeSlider({ 100 | type: "double", 101 | min: 0, 102 | max: 10000, 103 | grid: true, 104 | grid_num: 10 105 | }); 106 | } 107 | 108 | if ($("#range_11").length) { 109 | $("#range_11").ionRangeSlider({ 110 | type: "double", 111 | min: 0, 112 | max: 10000, 113 | step: 500, 114 | grid: true, 115 | grid_snap: true 116 | }); 117 | } 118 | 119 | if ($("#range_12").length) { 120 | $("#range_12").ionRangeSlider({ 121 | type: "single", 122 | min: 0, 123 | max: 10, 124 | step: 2.34, 125 | grid: true, 126 | grid_snap: true 127 | }); 128 | } 129 | 130 | if ($("#range_13").length) { 131 | $("#range_13").ionRangeSlider({ 132 | type: "double", 133 | min: 0, 134 | max: 100, 135 | from: 30, 136 | to: 70, 137 | from_fixed: true 138 | }); 139 | } 140 | 141 | if ($("#range_14").length) { 142 | $("#range_14").ionRangeSlider({ 143 | min: 0, 144 | max: 100, 145 | from: 30, 146 | from_min: 10, 147 | from_max: 50 148 | }); 149 | } 150 | 151 | if ($("#range_15").length) { 152 | $("#range_15").ionRangeSlider({ 153 | min: 0, 154 | max: 100, 155 | from: 30, 156 | from_min: 10, 157 | from_max: 50, 158 | from_shadow: true 159 | }); 160 | } 161 | 162 | if ($("#range_16").length) { 163 | $("#range_16").ionRangeSlider({ 164 | type: "double", 165 | min: 0, 166 | max: 100, 167 | from: 20, 168 | from_min: 10, 169 | from_max: 30, 170 | from_shadow: true, 171 | to: 80, 172 | to_min: 70, 173 | to_max: 90, 174 | to_shadow: true, 175 | grid: true, 176 | grid_num: 10 177 | }); 178 | } 179 | 180 | if ($("#range_17").length) { 181 | $("#range_17").ionRangeSlider({ 182 | min: 0, 183 | max: 100, 184 | from: 30, 185 | disable: true 186 | }); 187 | } 188 | 189 | })(jQuery); -------------------------------------------------------------------------------- /public/js/jq.tablesort.js: -------------------------------------------------------------------------------- 1 | /* 2 | * jq.TableSort -- jQuery Table sorter Plug-in. 3 | * 4 | * Version 1.0.0. 5 | * 6 | * Copyright (c) 2017 Dmitry Zavodnikov. 7 | * 8 | * Licensed under the MIT License. 9 | */ 10 | (function($) { 11 | 'use strict'; 12 | var SORT = 'sort'; 13 | var ASC = 'asc'; 14 | var DESC = 'desc'; 15 | var UNSORT = 'unsort'; 16 | 17 | var config = { 18 | defaultColumn: 0, 19 | defaultOrder: 'asc', 20 | styles: { 21 | 'sort': 'sortStyle', 22 | 'asc': 'ascStyle', 23 | 'desc': 'descStyle', 24 | 'unsort': 'unsortStyle' 25 | }, 26 | selector: function(tableBody, column) { 27 | var groups = []; 28 | 29 | var tableRows = $(tableBody).find('tr'); 30 | for (var i = 0; i < tableRows.length; i++) { 31 | var td = $(tableRows[i]).find('td')[column]; 32 | 33 | groups.push({ 34 | 'values': [tableRows[i]], 35 | 'key': $(td).text() 36 | }); 37 | } 38 | return groups; 39 | }, 40 | comparator: function(group1, group2) { 41 | return group1.key.localeCompare(group2.key); 42 | } 43 | }; 44 | 45 | function getTableHeaders(table) { 46 | return $(table).find('thead > tr > th'); 47 | } 48 | 49 | function getSortableTableHeaders(table) { 50 | return getTableHeaders(table).filter(function(index) { 51 | return $(this).hasClass(config.styles[SORT]); 52 | }); 53 | } 54 | 55 | function changeOrder(table, column) { 56 | var sortedHeader = getTableHeaders(table).filter(function(index) { 57 | return $(this).hasClass(config.styles[ASC]) || $(this).hasClass(config.styles[DESC]); 58 | }); 59 | 60 | var sordOrder = config.defaultOrder; 61 | if (sortedHeader.hasClass(config.styles[ASC])) { 62 | sordOrder = ASC; 63 | } 64 | if (sortedHeader.hasClass(config.styles[DESC])) { 65 | sordOrder = DESC; 66 | } 67 | 68 | var th = getTableHeaders(table)[column]; 69 | 70 | if (th === sortedHeader[0]) { 71 | if (sordOrder === ASC) { 72 | sordOrder = DESC; 73 | } else { 74 | sordOrder = ASC; 75 | } 76 | } 77 | 78 | var headers = getSortableTableHeaders(table); 79 | headers.removeClass(config.styles[ASC]); 80 | headers.removeClass(config.styles[DESC]); 81 | headers.addClass(config.styles[UNSORT]); 82 | 83 | $(th).removeClass(config.styles[UNSORT]); 84 | $(th).addClass(config.styles[sordOrder]); 85 | 86 | var tbody = $(table).find('tbody')[0]; 87 | var groups = config.selector(tbody, column); 88 | 89 | // Sorting. 90 | groups.sort(function(a, b) { 91 | var res = config.comparator(a, b); 92 | return sordOrder === ASC ? res : -1 * res; 93 | }); 94 | 95 | for (var i = 0; i < groups.length; i++) { 96 | var trList = groups[i]; 97 | var trListValues = trList.values; 98 | for (var j = 0; j < trListValues.length; j++) { 99 | tbody.append(trListValues[j]); 100 | } 101 | } 102 | } 103 | 104 | $.fn.tablesort = function(userConfig) { 105 | // Create and save table sort configuration. 106 | $.extend(config, userConfig); 107 | 108 | // Process all selected tables. 109 | var selectedTables = this; 110 | for (var i = 0; i < selectedTables.length; i++) { 111 | var table = selectedTables[i]; 112 | var tableHeader = getSortableTableHeaders(table); 113 | for (var j = 0; j < tableHeader.length; j++) { 114 | var th = tableHeader[j]; 115 | $(th).on("click", function(event) { 116 | var clickColumn = $.inArray(event.currentTarget, getTableHeaders(table)); 117 | changeOrder(table, clickColumn); 118 | }); 119 | } 120 | } 121 | return this; 122 | }; 123 | })(jQuery); -------------------------------------------------------------------------------- /public/js/jquery-file-upload.js: -------------------------------------------------------------------------------- 1 | (function($) { 2 | 'use strict'; 3 | if ($("#fileuploader").length) { 4 | $("#fileuploader").uploadFile({ 5 | url: "YOUR_FILE_UPLOAD_URL", 6 | fileName: "myfile" 7 | }); 8 | } 9 | })(jQuery); -------------------------------------------------------------------------------- /public/js/just-gage.js: -------------------------------------------------------------------------------- 1 | (function($) { 2 | 'use strict'; 3 | var g1, g2, gg1, g7, g8, g9, g10; 4 | 5 | window.onload = function() { 6 | var g1 = new JustGage({ 7 | id: "g1", 8 | value: getRandomInt(0, 100), 9 | min: 0, 10 | max: 100, 11 | title: "Big Fella", 12 | label: "pounds" 13 | }); 14 | 15 | 16 | setInterval(function() { 17 | g1.refresh(getRandomInt(50, 100)); 18 | }, 2500); 19 | }; 20 | 21 | 22 | 23 | 24 | document.addEventListener("DOMContentLoaded", function(event) { 25 | g2 = new JustGage({ 26 | id: "g2", 27 | value: 72, 28 | min: 0, 29 | max: 100, 30 | donut: true, 31 | gaugeWidthScale: 0.6, 32 | counter: true, 33 | hideInnerShadow: true 34 | }); 35 | 36 | document.getElementById('g2_refresh').addEventListener('click', function() { 37 | g2.refresh(getRandomInt(0, 100)); 38 | }); 39 | 40 | var g3 = new JustGage({ 41 | id: 'g3', 42 | value: 65, 43 | min: 0, 44 | max: 100, 45 | symbol: '%', 46 | pointer: true, 47 | gaugeWidthScale: 0.6, 48 | customSectors: [{ 49 | color: '#ff0000', 50 | lo: 50, 51 | hi: 100 52 | }, { 53 | color: '#00ff00', 54 | lo: 0, 55 | hi: 50 56 | }], 57 | counter: true 58 | }); 59 | 60 | var g4 = new JustGage({ 61 | id: 'g4', 62 | value: 45, 63 | min: 0, 64 | max: 100, 65 | symbol: '%', 66 | pointer: true, 67 | pointerOptions: { 68 | toplength: -15, 69 | bottomlength: 10, 70 | bottomwidth: 12, 71 | color: '#8e8e93', 72 | stroke: '#ffffff', 73 | stroke_width: 3, 74 | stroke_linecap: 'round' 75 | }, 76 | gaugeWidthScale: 0.6, 77 | counter: true 78 | }); 79 | 80 | var g5 = new JustGage({ 81 | id: 'g5', 82 | value: 40, 83 | min: 0, 84 | max: 100, 85 | symbol: '%', 86 | donut: true, 87 | pointer: true, 88 | gaugeWidthScale: 0.4, 89 | pointerOptions: { 90 | toplength: 10, 91 | bottomlength: 10, 92 | bottomwidth: 8, 93 | color: '#000' 94 | }, 95 | customSectors: [{ 96 | color: "#ff0000", 97 | lo: 50, 98 | hi: 100 99 | }, { 100 | color: "#00ff00", 101 | lo: 0, 102 | hi: 50 103 | }], 104 | counter: true 105 | }); 106 | 107 | var g6 = new JustGage({ 108 | id: 'g6', 109 | value: 70, 110 | min: 0, 111 | max: 100, 112 | symbol: '%', 113 | pointer: true, 114 | pointerOptions: { 115 | toplength: 8, 116 | bottomlength: -20, 117 | bottomwidth: 6, 118 | color: '#8e8e93' 119 | }, 120 | gaugeWidthScale: 0.1, 121 | counter: true 122 | }); 123 | 124 | var g7 = new JustGage({ 125 | id: 'g7', 126 | value: 65, 127 | min: 0, 128 | max: 100, 129 | reverse: true, 130 | gaugeWidthScale: 0.6, 131 | customSectors: [{ 132 | color: '#ff0000', 133 | lo: 50, 134 | hi: 100 135 | }, { 136 | color: '#00ff00', 137 | lo: 0, 138 | hi: 50 139 | }], 140 | counter: true 141 | }); 142 | 143 | var g8 = new JustGage({ 144 | id: 'g8', 145 | value: 45, 146 | min: 0, 147 | max: 500, 148 | reverse: true, 149 | gaugeWidthScale: 0.6, 150 | counter: true 151 | }); 152 | 153 | var g9 = new JustGage({ 154 | id: 'g9', 155 | value: 25000, 156 | min: 0, 157 | max: 100000, 158 | humanFriendly: true, 159 | reverse: true, 160 | gaugeWidthScale: 1.3, 161 | customSectors: [{ 162 | color: "#ff0000", 163 | lo: 50000, 164 | hi: 100000 165 | }, { 166 | color: "#00ff00", 167 | lo: 0, 168 | hi: 50000 169 | }], 170 | counter: true 171 | }); 172 | 173 | var g10 = new JustGage({ 174 | id: 'g10', 175 | value: 90, 176 | min: 0, 177 | max: 100, 178 | symbol: '%', 179 | reverse: true, 180 | gaugeWidthScale: 0.1, 181 | counter: true 182 | }); 183 | 184 | document.getElementById('gauge_refresh').addEventListener('click', function() { 185 | g3.refresh(getRandomInt(0, 100)); 186 | g4.refresh(getRandomInt(0, 100)); 187 | g5.refresh(getRandomInt(0, 100)); 188 | g6.refresh(getRandomInt(0, 100)); 189 | g7.refresh(getRandomInt(0, 100)); 190 | g8.refresh(getRandomInt(0, 100)); 191 | g9.refresh(getRandomInt(0, 100)); 192 | g10.refresh(getRandomInt(0, 100)); 193 | }); 194 | 195 | }); 196 | 197 | })(jQuery); -------------------------------------------------------------------------------- /public/js/light-gallery.js: -------------------------------------------------------------------------------- 1 | (function($) { 2 | 'use strict'; 3 | if ($("#lightgallery").length) { 4 | $("#lightgallery").lightGallery(); 5 | } 6 | 7 | if ($("#lightgallery-without-thumb").length) { 8 | $("#lightgallery-without-thumb").lightGallery({ 9 | thumbnail: true, 10 | animateThumb: false, 11 | showThumbByDefault: false 12 | }); 13 | } 14 | 15 | if ($("#video-gallery").length) { 16 | $("#video-gallery").lightGallery(); 17 | } 18 | })(jQuery); -------------------------------------------------------------------------------- /public/js/listify.js: -------------------------------------------------------------------------------- 1 | (function($) { 2 | 'use strict'; 3 | var options = { 4 | valueNames: ['name', 'born'] 5 | }; 6 | 7 | var userList = new List('users', options); 8 | })(jQuery); -------------------------------------------------------------------------------- /public/js/mail.js: -------------------------------------------------------------------------------- 1 | (function($) { 2 | 'use strict'; 3 | $(function() { 4 | var labelClone = $('.label-clone'); 5 | for (var i = 0; i < labelClone.length; i++) { 6 | var id = $(labelClone[i]).find(".checkbox-dib").attr('id'); 7 | $(labelClone[i]).append(''); 8 | $(labelClone[i]).find("label").attr("for", id); 9 | } 10 | }); 11 | })(jQuery); -------------------------------------------------------------------------------- /public/js/mapeal.js: -------------------------------------------------------------------------------- 1 | $(function() { 2 | 'use strict'; 3 | if ($(".mapeal-container").length) { 4 | $(".mapeal-container").mapael({ 5 | map: { 6 | name: "world_countries" 7 | } 8 | }); 9 | } 10 | }); -------------------------------------------------------------------------------- /public/js/mapeal_example_3.js: -------------------------------------------------------------------------------- 1 | $(function() { 2 | 'use strict'; 3 | if ($(".mapeal-example-3").length) { 4 | $(".mapeal-example-3").mapael({ 5 | map: { 6 | name: "france_departments", 7 | defaultArea: { 8 | attrs: { 9 | fill: "#f4f4e8", 10 | stroke: "#00a1fe" 11 | }, 12 | attrsHover: { 13 | fill: "#a4e100" 14 | } 15 | } 16 | }, 17 | legend: { 18 | plot: [{ 19 | labelAttrs: { 20 | fill: "#4a4a4a" 21 | }, 22 | titleAttrs: { 23 | fill: "#4a4a4a" 24 | }, 25 | cssClass: 'population', 26 | mode: 'horizontal', 27 | title: "Population", 28 | marginBottomTitle: 5, 29 | slices: [{ 30 | size: 15, 31 | legendSpecificAttrs: { 32 | fill: '#00a1fe', 33 | stroke: '#f4f4e8', 34 | "stroke-width": 2 35 | }, 36 | label: "< 10 000", 37 | max: "10000" 38 | }, { 39 | size: 30, 40 | legendSpecificAttrs: { 41 | fill: '#00a1fe', 42 | stroke: '#f4f4e8', 43 | "stroke-width": 2 44 | }, 45 | label: "> 10 000 and < 100 000", 46 | min: "10000", 47 | max: "100000" 48 | }, { 49 | size: 50, 50 | legendSpecificAttrs: { 51 | fill: '#00a1fe', 52 | stroke: '#f4f4e8', 53 | "stroke-width": 2 54 | }, 55 | label: "> 100 000", 56 | min: "100000" 57 | }] 58 | }, { 59 | labelAttrs: { 60 | fill: "#4a4a4a" 61 | }, 62 | titleAttrs: { 63 | fill: "#f4f4e8" 64 | }, 65 | cssClass: 'density', 66 | mode: 'horizontal', 67 | title: "Density", 68 | marginBottomTitle: 5, 69 | slices: [{ 70 | label: "< 50", 71 | max: "50", 72 | attrs: { 73 | fill: "#fef500" 74 | }, 75 | legendSpecificAttrs: { 76 | r: 25 77 | } 78 | }, { 79 | label: "> 50 and < 500", 80 | min: "50", 81 | max: "500", 82 | attrs: { 83 | fill: "#fe6c00" 84 | }, 85 | legendSpecificAttrs: { 86 | r: 25 87 | } 88 | }, { 89 | label: "> 500", 90 | min: "500", 91 | attrs: { 92 | fill: "#dc0000" 93 | }, 94 | legendSpecificAttrs: { 95 | r: 25 96 | } 97 | }] 98 | }] 99 | }, 100 | plots: { 101 | 'ny': { 102 | latitude: 40.717079, 103 | longitude: -74.00116, 104 | tooltip: { 105 | content: "New York" 106 | }, 107 | value: [5000, 20] 108 | }, 109 | 'an': { 110 | latitude: 61.2108398, 111 | longitude: -149.9019557, 112 | tooltip: { 113 | content: "Anchorage" 114 | }, 115 | value: [50000, 20] 116 | }, 117 | 'sf': { 118 | latitude: 37.792032, 119 | longitude: -122.394613, 120 | tooltip: { 121 | content: "San Francisco" 122 | }, 123 | value: [150000, 20] 124 | }, 125 | 'pa': { 126 | latitude: 19.493204, 127 | longitude: -154.8199569, 128 | tooltip: { 129 | content: "Pahoa" 130 | }, 131 | value: [5000, 200] 132 | }, 133 | 'la': { 134 | latitude: 34.025052, 135 | longitude: -118.192006, 136 | tooltip: { 137 | content: "Los Angeles" 138 | }, 139 | value: [50000, 200] 140 | }, 141 | 'dallas': { 142 | latitude: 32.784881, 143 | longitude: -96.808244, 144 | tooltip: { 145 | content: "Dallas" 146 | }, 147 | value: [150000, 200] 148 | }, 149 | 'miami': { 150 | latitude: 25.789125, 151 | longitude: -80.205674, 152 | tooltip: { 153 | content: "Miami" 154 | }, 155 | value: [5000, 2000] 156 | }, 157 | 'washington': { 158 | latitude: 38.905761, 159 | longitude: -77.020746, 160 | tooltip: { 161 | content: "Washington" 162 | }, 163 | value: [50000, 2000] 164 | }, 165 | 'seattle': { 166 | latitude: 47.599571, 167 | longitude: -122.319426, 168 | tooltip: { 169 | content: "Seattle" 170 | }, 171 | value: [150000, 2000] 172 | }, 173 | 'test1': { 174 | latitude: 44.671504, 175 | longitude: -110.957968, 176 | tooltip: { 177 | content: "Test 1" 178 | }, 179 | value: [5000, 2000] 180 | }, 181 | 'test2': { 182 | latitude: 40.667013, 183 | longitude: -101.465781, 184 | tooltip: { 185 | content: "Test 2" 186 | }, 187 | value: [50000, 200] 188 | }, 189 | 'test3': { 190 | latitude: 38.362031, 191 | longitude: -86.875938, 192 | tooltip: { 193 | content: "Test 3" 194 | }, 195 | value: [150000, 20] 196 | } 197 | } 198 | }); 199 | } 200 | }); -------------------------------------------------------------------------------- /public/js/maps.js: -------------------------------------------------------------------------------- 1 | (function($) { 2 | 'use strict'; 3 | if ($('#vmap').length) { 4 | jQuery('#vmap').vectorMap({ 5 | map: 'world_en' 6 | }); 7 | } 8 | if ($('#vmap-regions').length) { 9 | var activeNations = new Array("us", "de", "au", "gb", "ro", "br"); 10 | 11 | jQuery('#vmap-regions').vectorMap({ 12 | map: 'world_en', 13 | backgroundColor: 'transparent', 14 | borderOpacity: 0.01, 15 | borderWidth: 2, 16 | borderColor: '#000', 17 | color: '#e2e2e2', 18 | enableZoom: false, 19 | hoverColor: '#2796E9', 20 | hoverOpacity: null, 21 | normalizeFunction: 'linear', 22 | selectedColor: '#58D8A3', 23 | selectedRegions: activeNations, 24 | showTooltip: true, 25 | onRegionClick: function(element, code, region) { 26 | if (activeNations.indexOf(code) > -1) { 27 | // dom interaction outside the map 28 | // ... 29 | } else { 30 | element.preventDefault(); 31 | } 32 | } 33 | }); 34 | } 35 | if ($("#WorldMap").length) { 36 | var activeNations = new Array("us", "de", "au", "gb", "ro", "br"); 37 | 38 | jQuery('#WorldMap').vectorMap({ 39 | map: 'world_en', 40 | backgroundColor: 'transparent', 41 | borderOpacity: 0.01, 42 | borderWidth: 2, 43 | borderColor: '#000', 44 | color: '#e2e2e2', 45 | enableZoom: false, 46 | hoverColor: '#2796E9', 47 | hoverOpacity: null, 48 | normalizeFunction: 'linear', 49 | selectedColor: '#58D8A3', 50 | selectedRegions: activeNations, 51 | showTooltip: true, 52 | onRegionClick: function(element, code, region) { 53 | if (activeNations.indexOf(code) > -1) { 54 | // dom interaction outside the map 55 | // ... 56 | } else { 57 | element.preventDefault(); 58 | } 59 | } 60 | }); 61 | } 62 | if ($("#map-with-marker").length) { 63 | jQuery('#map-with-marker').vectorMap({ 64 | map: 'world_en', 65 | backgroundColor: 'transparent', 66 | borderOpacity: 0.01, 67 | borderWidth: 2, 68 | borderColor: '#000', 69 | color: '#2796E9', 70 | enableZoom: true, 71 | hoverColor: '#2796E9', 72 | hoverOpacity: null, 73 | normalizeFunction: 'linear', 74 | selectedColor: '#58D8A3', 75 | showTooltip: true, 76 | }); 77 | } 78 | })(jQuery); 79 | 80 | var map; 81 | if ($('#map').length) { 82 | function initMap() { 83 | map = new google.maps.Map(document.getElementById('map'), { 84 | center: { 85 | lat: -34.397, 86 | lng: 150.644 87 | }, 88 | zoom: 8 89 | }); 90 | }; 91 | } -------------------------------------------------------------------------------- /public/js/misc.js: -------------------------------------------------------------------------------- 1 | (function($) { 2 | 'use strict'; 3 | $(function() { 4 | var body = $('body'); 5 | var contentWrapper = $('.content-wrapper'); 6 | var scroller = $('.container-scroller'); 7 | var footer = $('.footer'); 8 | var sidebar = $('.sidebar'); 9 | 10 | //Add active class to nav-link based on url dynamically 11 | //Active class can be hard coded directly in html file also as required 12 | var current = location.pathname.split("/").slice(-1)[0].replace(/^\/|\/$/g, ''); 13 | $('.nav li a', sidebar).each(function() { 14 | var $this = $(this); 15 | if (current === "") { 16 | //for root url 17 | if ($this.attr('href').indexOf("index.html") !== -1) { 18 | $(this).parents('.nav-item').last().addClass('active'); 19 | if ($(this).parents('.sub-menu').length) { 20 | $(this).closest('.collapse').addClass('show'); 21 | $(this).addClass('active'); 22 | } 23 | } 24 | } else { 25 | //for other url 26 | if ($this.attr('href').indexOf(current) !== -1) { 27 | $(this).parents('.nav-item').last().addClass('active'); 28 | if ($(this).parents('.sub-menu').length) { 29 | $(this).closest('.collapse').addClass('show'); 30 | $(this).addClass('active'); 31 | } 32 | } 33 | } 34 | }) 35 | 36 | //Close other submenu in sidebar on opening any 37 | 38 | sidebar.on('show.bs.collapse', '.collapse', function() { 39 | sidebar.find('.collapse.show').collapse('hide'); 40 | }); 41 | 42 | 43 | //Change sidebar and content-wrapper height 44 | applyStyles(); 45 | 46 | function applyStyles() { 47 | 48 | //setting content wrapper height 49 | if (!(body.hasClass("horizontal-menu") && window.matchMedia('(min-width: 992px)').matches)) { 50 | setTimeout(function() { 51 | if (contentWrapper.outerHeight() < (sidebar.outerHeight() - footer.outerHeight())) { 52 | contentWrapper.css({ 53 | 'min-height': sidebar.outerHeight() - footer.outerHeight() 54 | }); 55 | } 56 | 57 | if (sidebar.outerHeight() < (contentWrapper.outerHeight() + footer.outerHeight())) { 58 | sidebar.css({ 59 | 'min-height': contentWrapper.outerHeight() + footer.outerHeight() 60 | }); 61 | } 62 | 63 | }, 10); 64 | } else { 65 | contentWrapper.css({ 66 | 'min-height': '100vh' 67 | }); 68 | } 69 | 70 | //Applying perfect scrollbar 71 | if (!body.hasClass("rtl")) { 72 | $('.list-wrapper, ul.chats, .product-chart-wrapper, .table-responsive').perfectScrollbar(); 73 | scroller.perfectScrollbar({ 74 | suppressScrollX: true, 75 | wheelSpeed: 2, 76 | swipeEasing: true 77 | }); 78 | if (body.hasClass("sidebar-fixed")) { 79 | $('#sidebar .nav').perfectScrollbar(); 80 | } 81 | } 82 | } 83 | 84 | //Updating contetnt wrapper height to sidebar height on expanding a menu in sidebar 85 | $('.sidebar [data-toggle="collapse"]').on("click", function(event) { 86 | var clickedItem = $(this); 87 | if (clickedItem.attr('aria-expanded') === 'false') { 88 | var scrollTop = scroller.scrollTop() - 20; 89 | } else { 90 | var scrollTop = scroller.scrollTop() - 100; 91 | } 92 | setTimeout(function() { 93 | if (contentWrapper.outerHeight() + footer.outerHeight() !== sidebar.outerHeight()) { 94 | applyStyles(); 95 | scroller.animate({ 96 | scrollTop: scrollTop 97 | }, 350); 98 | scroller.perfectScrollbar('update'); 99 | } 100 | }, 400); 101 | }) 102 | 103 | //Updating content wrapper height to sidebar height in mobile view horizontal menu 104 | $('.sidebar [data-toggle="showMegaMenu"]').on("click", function(event) { 105 | var clickedItem = $(this); 106 | if (clickedItem.hasClass('expanded')) { 107 | var scrollTop = scroller.scrollTop() - 20; 108 | } else { 109 | var scrollTop = scroller.scrollTop() - 100; 110 | } 111 | setTimeout(function() { 112 | if (contentWrapper.outerHeight() + footer.outerHeight() !== sidebar.outerHeight()) { 113 | applyStyles(); 114 | scroller.animate({ 115 | scrollTop: scrollTop 116 | }, 350); 117 | scroller.perfectScrollbar('update'); 118 | } 119 | }, 400); 120 | }) 121 | 122 | $('[data-toggle="minimize"]').on("click", function() { 123 | if ((body.hasClass('sidebar-toggle-display')) || (body.hasClass('sidebar-absolute'))) { 124 | body.toggleClass('sidebar-hidden'); 125 | applyStyles(); 126 | } else { 127 | body.toggleClass('sidebar-icon-only'); 128 | applyStyles(); 129 | } 130 | }); 131 | 132 | //checkbox and radios 133 | $(".form-check label,.form-radio label").append(''); 134 | }); 135 | })(jQuery); -------------------------------------------------------------------------------- /public/js/modal-demo.js: -------------------------------------------------------------------------------- 1 | (function($) { 2 | 'use strict'; 3 | $('#exampleModal').on('show.bs.modal', function(event) { 4 | var button = $(event.relatedTarget) // Button that triggered the modal 5 | var recipient = button.data('whatever') // Extract info from data-* attributes 6 | // If necessary, you could initiate an AJAX request here (and then do the updating in a callback). 7 | // Update the modal's content. We'll use jQuery here, but you could use a data binding library or other methods instead. 8 | var modal = $(this) 9 | modal.find('.modal-title').text('New message to ' + recipient) 10 | modal.find('.modal-body input').val(recipient) 11 | }) 12 | })(jQuery); -------------------------------------------------------------------------------- /public/js/morris.js: -------------------------------------------------------------------------------- 1 | (function($) { 2 | 'use strict'; 3 | $(function() { 4 | if ($('#morris-line-example').length) { 5 | Morris.Line({ 6 | element: 'morris-line-example', 7 | lineColors: ['#63CF72', '#F36368', '#76C1FA', '#FABA66'], 8 | data: [{ 9 | y: '2006', 10 | a: 100, 11 | b: 150 12 | }, 13 | { 14 | y: '2007', 15 | a: 75, 16 | b: 65 17 | }, 18 | { 19 | y: '2008', 20 | a: 50, 21 | b: 40 22 | }, 23 | { 24 | y: '2009', 25 | a: 75, 26 | b: 65 27 | }, 28 | { 29 | y: '2010', 30 | a: 50, 31 | b: 40 32 | }, 33 | { 34 | y: '2011', 35 | a: 75, 36 | b: 65 37 | }, 38 | { 39 | y: '2012', 40 | a: 100, 41 | b: 90 42 | } 43 | ], 44 | xkey: 'y', 45 | ykeys: ['a', 'b'], 46 | labels: ['Series A', 'Series B'] 47 | }); 48 | } 49 | if ($('#morris-area-example').length) { 50 | Morris.Area({ 51 | element: 'morris-area-example', 52 | lineColors: ['#76C1FA', '#F36368', '#63CF72', '#FABA66'], 53 | data: [{ 54 | y: '2006', 55 | a: 100, 56 | b: 90 57 | }, 58 | { 59 | y: '2007', 60 | a: 75, 61 | b: 105 62 | }, 63 | { 64 | y: '2008', 65 | a: 50, 66 | b: 40 67 | }, 68 | { 69 | y: '2009', 70 | a: 75, 71 | b: 65 72 | }, 73 | { 74 | y: '2010', 75 | a: 50, 76 | b: 40 77 | }, 78 | { 79 | y: '2011', 80 | a: 75, 81 | b: 65 82 | }, 83 | { 84 | y: '2012', 85 | a: 100, 86 | b: 90 87 | } 88 | ], 89 | xkey: 'y', 90 | ykeys: ['a', 'b'], 91 | labels: ['Series A', 'Series B'] 92 | }); 93 | } 94 | if ($("#morris-bar-example").length) { 95 | Morris.Bar({ 96 | element: 'morris-bar-example', 97 | barColors: ['#63CF72', '#F36368', '#76C1FA', '#FABA66'], 98 | data: [{ 99 | y: '2006', 100 | a: 100, 101 | b: 90 102 | }, 103 | { 104 | y: '2007', 105 | a: 75, 106 | b: 65 107 | }, 108 | { 109 | y: '2008', 110 | a: 50, 111 | b: 40 112 | }, 113 | { 114 | y: '2009', 115 | a: 75, 116 | b: 65 117 | }, 118 | { 119 | y: '2010', 120 | a: 50, 121 | b: 40 122 | }, 123 | { 124 | y: '2011', 125 | a: 75, 126 | b: 65 127 | }, 128 | { 129 | y: '2012', 130 | a: 100, 131 | b: 90 132 | } 133 | ], 134 | xkey: 'y', 135 | ykeys: ['a', 'b'], 136 | labels: ['Series A', 'Series B'] 137 | }); 138 | } 139 | if ($("#morris-donut-example").length) { 140 | Morris.Donut({ 141 | element: 'morris-donut-example', 142 | colors: ['#76C1FA', '#F36368', '#63CF72', '#FABA66'], 143 | data: [{ 144 | label: "Download Sales", 145 | value: 12 146 | }, 147 | { 148 | label: "In-Store Sales", 149 | value: 30 150 | }, 151 | { 152 | label: "Mail-Order Sales", 153 | value: 20 154 | } 155 | ] 156 | }); 157 | } 158 | if ($('#morris-dashboard-taget').length) { 159 | Morris.Area({ 160 | element: 'morris-dashboard-taget', 161 | parseTime: false, 162 | lineColors: ['#76C1FA', '#F36368', '#63CF72', '#FABA66'], 163 | data: [{ 164 | y: 'Jan', 165 | Revenue: 190, 166 | Target: 170 167 | }, 168 | { 169 | y: 'Feb', 170 | Revenue: 60, 171 | Target: 90 172 | }, 173 | { 174 | y: 'March', 175 | Revenue: 100, 176 | Target: 120 177 | }, 178 | { 179 | y: 'Apr', 180 | Revenue: 150, 181 | Target: 140 182 | }, 183 | { 184 | y: 'May', 185 | Revenue: 130, 186 | Target: 170 187 | }, 188 | { 189 | y: 'Jun', 190 | Revenue: 200, 191 | Target: 160 192 | }, 193 | { 194 | y: 'Jul', 195 | Revenue: 150, 196 | Target: 180 197 | }, 198 | { 199 | y: 'Aug', 200 | Revenue: 170, 201 | Target: 180 202 | }, 203 | { 204 | y: 'Sep', 205 | Revenue: 140, 206 | Target: 90 207 | } 208 | ], 209 | xkey: 'y', 210 | ykeys: ['Target', 'Revenue'], 211 | labels: ['Monthly Target', 'Monthly Revenue'], 212 | hideHover: 'auto', 213 | behaveLikeLine: true, 214 | resize: true, 215 | axes: 'x' 216 | }); 217 | } 218 | }); 219 | })(jQuery); -------------------------------------------------------------------------------- /public/js/no-ui-slider.js: -------------------------------------------------------------------------------- 1 | (function($) { 2 | 'use strict'; 3 | var startSlider = document.getElementById('ui-slider'); 4 | noUiSlider.create(startSlider, { 5 | start: [20], 6 | connect: [true, false], 7 | range: { 8 | 'min': [0], 9 | 'max': [100] 10 | } 11 | }); 12 | 13 | var rangeSlider = document.getElementById('ui-range-slider'); 14 | noUiSlider.create(rangeSlider, { 15 | start: [30, 40], 16 | connect: [false, true, false], 17 | range: { 18 | 'min': [0], 19 | 'max': [100] 20 | } 21 | }); 22 | 23 | var connectSlider = document.getElementById('ui-slider-colored-1'); 24 | noUiSlider.create(connectSlider, { 25 | start: 30, 26 | connect: [true, false], 27 | range: { 28 | 'min': 0, 29 | 'max': 100 30 | } 31 | }); 32 | 33 | var connectSlider = document.getElementById('ui-slider-colored-2'); 34 | noUiSlider.create(connectSlider, { 35 | start: 40, 36 | connect: [true, false], 37 | range: { 38 | 'min': 0, 39 | 'max': 100 40 | } 41 | }); 42 | 43 | var connectSlider = document.getElementById('ui-slider-colored-3'); 44 | noUiSlider.create(connectSlider, { 45 | start: 50, 46 | connect: [true, false], 47 | range: { 48 | 'min': 0, 49 | 'max': 100 50 | } 51 | }); 52 | 53 | var connectSlider = document.getElementById('ui-slider-colored-4'); 54 | noUiSlider.create(connectSlider, { 55 | start: 60, 56 | connect: [true, false], 57 | range: { 58 | 'min': 0, 59 | 'max': 100 60 | } 61 | }); 62 | 63 | var slider = document.getElementById('ui-slider-multi-colored'); 64 | noUiSlider.create(slider, { 65 | start: [4000, 8000, 12000, 16000], 66 | connect: [false, true, true, true, true], 67 | range: { 68 | 'min': [2000], 69 | 'max': [20000] 70 | } 71 | }); 72 | var connect = slider.querySelectorAll('.noUi-connect'); 73 | var classes = ['bg-warning', 'bg-success', 'bg-info', 'bg-danger']; 74 | for (var i = 0; i < connect.length; i++) { 75 | connect[i].classList.add(classes[i]); 76 | } 77 | 78 | })(jQuery); -------------------------------------------------------------------------------- /public/js/off-canvas.js: -------------------------------------------------------------------------------- 1 | (function($) { 2 | 'use strict'; 3 | $(function() { 4 | $('[data-toggle="offcanvas"]').on("click", function() { 5 | $('.row-offcanvas').toggleClass('active') 6 | }); 7 | }); 8 | })(jQuery); -------------------------------------------------------------------------------- /public/js/owl-carousel.js: -------------------------------------------------------------------------------- 1 | (function($) { 2 | 'use strict'; 3 | $.fn.andSelf = function() { 4 | return this.addBack.apply(this, arguments); 5 | } 6 | 7 | if ($('.example-1').length) { 8 | $('.example-1').owlCarousel({ 9 | loop: true, 10 | margin: 10, 11 | nav: true, 12 | responsive: { 13 | 0: { 14 | items: 1 15 | }, 16 | 600: { 17 | items: 3 18 | }, 19 | 1000: { 20 | items: 5 21 | } 22 | } 23 | }); 24 | } 25 | 26 | if ($('.full-width').length) { 27 | $('.full-width').owlCarousel({ 28 | loop: true, 29 | margin: 10, 30 | items: 1, 31 | nav: true 32 | }); 33 | } 34 | 35 | if ($('.loop').length) { 36 | $('.loop').owlCarousel({ 37 | center: true, 38 | items: 2, 39 | loop: true, 40 | margin: 10, 41 | nav: true, 42 | responsive: { 43 | 600: { 44 | items: 4 45 | } 46 | } 47 | }); 48 | } 49 | 50 | if ($('.nonloop').length) { 51 | $('.nonloop').owlCarousel({ 52 | center: true, 53 | items: 2, 54 | loop: false, 55 | margin: 10, 56 | nav: true, 57 | responsive: { 58 | 600: { 59 | items: 4 60 | } 61 | } 62 | }); 63 | } 64 | 65 | })(jQuery); -------------------------------------------------------------------------------- /public/js/progress-bar.js: -------------------------------------------------------------------------------- 1 | (function($) { 2 | 'use strict'; 3 | // ProgressBar JS Starts Here 4 | 5 | if ($('#Progressbar-1').length) { 6 | var bar = new ProgressBar.Line('#Progressbar-1', { 7 | step: function(state, bar, attachment) { 8 | bar.path.setAttribute('stroke', state.color); 9 | } 10 | }); 11 | var opts = { 12 | from: { 13 | width: 0.1, 14 | color: '#f5f5f5 ' 15 | }, 16 | to: { 17 | color: '#36af47' 18 | } 19 | }; 20 | bar.animate(0.7, opts); 21 | } 22 | 23 | if ($('#Progressbar-2').length) { 24 | var bar = new ProgressBar.Line('#Progressbar-2', { 25 | step: function(state, bar, attachment) { 26 | bar.path.setAttribute('stroke', state.color); 27 | } 28 | }); 29 | var opts = { 30 | from: { 31 | color: '#f5f5f5 ' 32 | }, 33 | to: { 34 | color: '#ed1c24' 35 | } 36 | }; 37 | bar.animate(0.8, opts); 38 | } 39 | 40 | if ($('#Progressbar-3').length) { 41 | var bar = new ProgressBar.Line('#Progressbar-3', { 42 | step: function(state, bar, attachment) { 43 | bar.path.setAttribute('stroke', state.color); 44 | } 45 | }); 46 | var opts = { 47 | from: { 48 | color: '#f5f5f5 ' 49 | }, 50 | to: { 51 | color: '#2ca0f7' 52 | } 53 | }; 54 | bar.animate(0.66, opts); 55 | } 56 | 57 | if ($('#Progressbar-4').length) { 58 | var bar = new ProgressBar.Line('#Progressbar-4', { 59 | step: function(state, bar, attachment) { 60 | bar.path.setAttribute('stroke', state.color); 61 | } 62 | }); 63 | var opts = { 64 | from: { 65 | color: '#f5f5f5 ' 66 | }, 67 | to: { 68 | color: '#f7981c' 69 | } 70 | }; 71 | bar.animate(0.99, opts); 72 | } 73 | // ProgressBar JS Ends Here 74 | 75 | })(jQuery); -------------------------------------------------------------------------------- /public/js/settings.js: -------------------------------------------------------------------------------- 1 | (function($) { 2 | 'use strict'; 3 | $(function() { 4 | $(".navbar .navbar-menu-wrapper .navbar-nav .nav-item.nav-settings").on("click", function() { 5 | $(".settings-panel").toggleClass("open"); 6 | }); 7 | $("#close-button").on("click", function() { 8 | $(".settings-panel").toggleClass("open"); 9 | }); 10 | 11 | 12 | //Layout settings. 13 | var layout_classes = 'sidebar-mini sidebar-icon-only rtl boxed-layout sidebar-absolute sidebar-hidden' 14 | $("#boxed-layout-view").on("click", function() { 15 | $("body").removeClass(layout_classes); 16 | $("body").addClass("boxed-layout"); 17 | }); 18 | $("#compact-layout-view").on("click", function() { 19 | $("body").removeClass(layout_classes); 20 | $("body").addClass("sidebar-mini"); 21 | }); 22 | $("#icon-only-layout-view").on("click", function() { 23 | $("body").removeClass(layout_classes); 24 | $("body").addClass("sidebar-icon-only"); 25 | }); 26 | $("#rtl-layout-view").on("click", function() { 27 | $("body").removeClass(layout_classes); 28 | $("body").addClass("rtl"); 29 | }); 30 | $("#hidden-menu-1-layout-view").on("click", function() { 31 | $("body").removeClass(layout_classes); 32 | $("body").addClass("sidebar-absolute"); 33 | }); 34 | $("#hidden-menu-2-layout-view").on("click", function() { 35 | $("body").removeClass(layout_classes); 36 | $("body").addClass("sidebar-toggle-display"); 37 | }); 38 | 39 | 40 | //Navbar settings 41 | var navbar_classes = 'navbar-danger navbar-success navbar-warning navbar-dark navbar-light navbar-primary navbar-info navbar-pink'; 42 | $('#primary-theme').on("click", function() { //Icheck's event for checkbox states 43 | $('.navbar').removeClass(navbar_classes); 44 | $('.navbar').addClass('navbar-primary'); 45 | }); 46 | $('#success-theme').on("click", function() { //Icheck's event for checkbox states 47 | $('.navbar').removeClass(navbar_classes); 48 | $('.navbar').addClass('navbar-success'); 49 | }); 50 | $('#warning-theme').on("click", function() { //Icheck's event for checkbox states 51 | $('.navbar').removeClass(navbar_classes); 52 | $('.navbar').addClass('navbar-warning'); 53 | }); 54 | $('#danger-theme').on("click", function() { //Icheck's event for checkbox states 55 | $('.navbar').removeClass(navbar_classes); 56 | $('.navbar').addClass('navbar-danger'); 57 | }); 58 | $('#pink-theme').on("click", function() { //Icheck's event for checkbox states 59 | $('.navbar').removeClass(navbar_classes); 60 | $('.navbar').addClass('navbar-pink'); 61 | }); 62 | $('#light-theme').on("click", function() { //Icheck's event for checkbox states 63 | $('.navbar').removeClass(navbar_classes); 64 | $('.navbar').addClass('navbar-light'); 65 | }); 66 | $('#info-theme').on("click", function() { //Icheck's event for checkbox states 67 | $('.navbar').removeClass(navbar_classes); 68 | $('.navbar').addClass('navbar-info'); 69 | }); 70 | $('#dark-theme').on("click", function() { //Icheck's event for checkbox states 71 | $('.navbar').removeClass(navbar_classes); 72 | $('.navbar').addClass('navbar-dark'); 73 | }); 74 | 75 | 76 | //Sidebar settings 77 | $('#side-theme-light').on("click", function() { //Icheck's event for checkbox states 78 | $('#sidebar').removeClass('sidebar-dark'); 79 | }); 80 | $('#side-theme-dark').on("click", function() { //Icheck's event for checkbox states 81 | $('#sidebar').addClass('sidebar-dark'); 82 | }); 83 | }); 84 | })(jQuery); -------------------------------------------------------------------------------- /public/js/sparkline.js: -------------------------------------------------------------------------------- 1 | (function($) { 2 | 'use strict'; 3 | if ($("#sparkline-line-chart").length) { 4 | $("#sparkline-line-chart").sparkline([5, 6, 7, 9, 9, 5, 3, 2, 2, 4, 6, 7], { 5 | type: 'line', 6 | width: '100%', 7 | height: '100%' 8 | }); 9 | } 10 | 11 | if ($("#sparkline-bar-chart").length) { 12 | $("#sparkline-bar-chart").sparkline([5, 6, 7, 2, 0, -4, 4], { 13 | type: 'bar', 14 | height: '100%', 15 | barWidth: '58.5%', 16 | barColor: '#58D8A3', 17 | negBarColor: '#e56e72', 18 | zeroColor: 'green' 19 | }); 20 | } 21 | 22 | if ($("#sparkline-pie-chart").length) { 23 | $("#sparkline-pie-chart").sparkline([1, 1, 2, 4], { 24 | type: 'pie', 25 | sliceColors: ['#0CB5F9', '#58d8a3', '#F4767B', '#F9B65F'], 26 | borderColor: '#', 27 | width: '100%', 28 | height: '100%' 29 | }); 30 | } 31 | 32 | if ($("#sparkline-bullet-chart").length) { 33 | $("#sparkline-bullet-chart").sparkline([10, 12, 12, 9, 7], { 34 | type: 'bullet', 35 | height: '238', 36 | width: '100%', 37 | }); 38 | } 39 | 40 | if ($("#sparkline-composite-chart").length) { 41 | $("#sparkline-composite-chart").sparkline([5, 6, 7, 2, 0, 3, 6, 8, 1, 2, 2, 0, 3, 6], { 42 | type: 'line', 43 | width: '100%', 44 | height: '100%' 45 | }); 46 | } 47 | 48 | if ($("#sparkline-composite-chart").length) { 49 | $("#sparkline-composite-chart").sparkline([5, 6, 7, 2, 0, 3, 6, 8, 1, 2, 2, 0, 3, 6], { 50 | type: 'bar', 51 | height: '150px', 52 | width: '100%', 53 | barWidth: 10, 54 | barSpacing: 5, 55 | barColor: '#60a76d', 56 | negBarColor: '#60a76d', 57 | composite: true 58 | }); 59 | } 60 | 61 | if ($(".demo-sparkline").length) { 62 | $(".demo-sparkline").sparkline('html', { 63 | enableTagOptions: true, 64 | width: '100%', 65 | height: '30px', 66 | fillColor: false 67 | }); 68 | } 69 | 70 | if ($(".top-seelling-dashboard-chart").length) { 71 | $(".top-seelling-dashboard-chart").sparkline('html', { 72 | enableTagOptions: true, 73 | width: '100%', 74 | barWidth: 30, 75 | fillColor: false 76 | }); 77 | } 78 | 79 | })(jQuery); -------------------------------------------------------------------------------- /public/js/tablesorter.js: -------------------------------------------------------------------------------- 1 | (function($) { 2 | 'use strict'; 3 | $(function() { 4 | if ($('#myTable').length) { 5 | $('#myTable').tablesort(); 6 | } 7 | }); 8 | })(jQuery); -------------------------------------------------------------------------------- /public/js/tabs.js: -------------------------------------------------------------------------------- 1 | (function($) { 2 | 'use strict'; 3 | $(function() { 4 | if ($('.demo-tabs').length) { 5 | $('.demo-tabs').pwstabs({ 6 | effect: 'none' 7 | }); 8 | } 9 | 10 | if ($('.hello_world').length) { 11 | $('.hello_world').pwstabs(); 12 | } 13 | 14 | if ($('#rtl-tabs-1').length) { 15 | $('#rtl-tabs-1').pwstabs({ 16 | effect: 'slidedown', 17 | defaultTab: 2, 18 | rtl: true 19 | }); 20 | } 21 | 22 | if ($('#vertical-left').length) { 23 | $('#vertical-left').pwstabs({ 24 | effect: 'slideleft', 25 | defaultTab: 1, 26 | containerWidth: '600px', 27 | tabsPosition: 'vertical', 28 | verticalPosition: 'left' 29 | }); 30 | } 31 | 32 | if ($('#horizontal-left').length) { 33 | $('#horizontal-left').pwstabs({ 34 | effect: 'slidedown', 35 | defaultTab: 2, 36 | containerWidth: '600px', 37 | horizontalPosition: 'bottom' 38 | }); 39 | } 40 | 41 | if ($('.tickets-tab').length) { 42 | $('.tickets-tab').pwstabs({ 43 | effect: 'none' 44 | }); 45 | } 46 | 47 | }); 48 | })(jQuery); -------------------------------------------------------------------------------- /public/js/tight-grid.js: -------------------------------------------------------------------------------- 1 | (function($) { 2 | 'use strict'; 3 | if ($('.grid').length) { 4 | var colcade = new Colcade('.grid', { 5 | columns: '.grid-col', 6 | items: '.grid-item' 7 | }); 8 | } 9 | })(jQuery); -------------------------------------------------------------------------------- /public/js/toastDemo.js: -------------------------------------------------------------------------------- 1 | (function($) { 2 | showSuccessToast = function() { 3 | 'use strict'; 4 | $.toast({ 5 | heading: 'Success', 6 | text: 'And these were just the basic demos! Scroll down to check further details on how to customize the output.', 7 | showHideTransition: 'slide', 8 | icon: 'success', 9 | loaderBg: '#d9534f' 10 | }) 11 | }; 12 | showInfoToast = function() { 13 | 'use strict'; 14 | $.toast({ 15 | heading: 'Info', 16 | text: 'And these were just the basic demos! Scroll down to check further details on how to customize the output.', 17 | showHideTransition: 'slide', 18 | icon: 'info', 19 | loaderBg: '#5cb85c' 20 | }) 21 | }; 22 | showWarningToast = function() { 23 | 'use strict'; 24 | $.toast({ 25 | heading: 'Warning', 26 | text: 'And these were just the basic demos! Scroll down to check further details on how to customize the output.', 27 | showHideTransition: 'slide', 28 | icon: 'warning', 29 | loaderBg: '#f0ad4e' 30 | }) 31 | }; 32 | showDangerToast = function() { 33 | 'use strict'; 34 | $.toast({ 35 | heading: 'Danger', 36 | text: 'And these were just the basic demos! Scroll down to check further details on how to customize the output.', 37 | showHideTransition: 'slide', 38 | icon: 'error', 39 | loaderBg: '#5bc0de' 40 | }) 41 | }; 42 | showToastPosition = function(position) { 43 | 'use strict'; 44 | $('.jq-toast-wrap').removeClass('bottom-left bottom-right top-left top-right mid-center'); // to remove previous position class 45 | $(".jq-toast-wrap").css({ 46 | "top": "", 47 | "left": "", 48 | "bottom": "", 49 | "right": "" 50 | }); //to remove previous position style 51 | $.toast({ 52 | heading: 'Positioning', 53 | text: 'Specify the custom position object or use one of the predefined ones', 54 | position: String(position), 55 | icon: 'info', 56 | stack: false 57 | }) 58 | } 59 | showToastInCustomPosition = function() { 60 | 'use strict'; 61 | $.toast({ 62 | heading: 'Custom positioning', 63 | text: 'Specify the custom position object or use one of the predefined ones', 64 | icon: 'info', 65 | position: { 66 | left: 120, 67 | top: 120 68 | }, 69 | stack: false 70 | }) 71 | } 72 | })(jQuery); -------------------------------------------------------------------------------- /public/js/todolist.js: -------------------------------------------------------------------------------- 1 | (function($) { 2 | 'use strict'; 3 | $(function() { 4 | var todoListItem = $('#list-items'); 5 | var todoListInput = $('#todo-list-input'); 6 | $('#add-task').on("click", function(event) { 7 | event.preventDefault(); 8 | 9 | var item = todoListInput.val(); 10 | 11 | if (item) { 12 | todoListItem.append("
  • "); 13 | todoListInput.val(""); 14 | } 15 | 16 | }); 17 | 18 | todoListItem.on('change', '.checkbox', function() { 19 | if ($(this).attr('checked')) { 20 | $(this).removeAttr('checked'); 21 | } else { 22 | $(this).attr('checked', 'checked'); 23 | } 24 | 25 | $(this).closest("li").toggleClass('completed'); 26 | 27 | }); 28 | 29 | todoListItem.on('click', '.remove', function() { 30 | $(this).parent().remove(); 31 | }); 32 | 33 | }); 34 | })(jQuery); -------------------------------------------------------------------------------- /public/js/tour.js: -------------------------------------------------------------------------------- 1 | (function($) { 2 | 'use strict'; 3 | var tour = new Tour({ 4 | steps: [{ 5 | element: "#tourElement1", 6 | title: "Welcome", 7 | content: "This is an example of bootstrap tour" 8 | }, 9 | { 10 | element: "#tourElement2", 11 | title: "Question", 12 | content: "Type your question here" 13 | }, 14 | { 15 | element: "#tourElement3", 16 | title: "Ask", 17 | content: "Click this button to post the question" 18 | }, 19 | { 20 | element: "#tourElement4", 21 | title: "Answer", 22 | content: "Click here to answer questions." 23 | } 24 | ], 25 | container: '.content-wrapper' 26 | }); 27 | if (tour.ended()) { 28 | tour.restart(); 29 | } else { 30 | tour.init(); 31 | tour.start(); 32 | } 33 | })(jQuery); -------------------------------------------------------------------------------- /public/js/typeahead.js: -------------------------------------------------------------------------------- 1 | (function($) { 2 | 'use strict'; 3 | var substringMatcher = function(strs) { 4 | return function findMatches(q, cb) { 5 | var matches, substringRegex; 6 | 7 | // an array that will be populated with substring matches 8 | matches = []; 9 | 10 | // regex used to determine if a string contains the substring `q` 11 | var substrRegex = new RegExp(q, 'i'); 12 | 13 | // iterate through the pool of strings and for any string that 14 | // contains the substring `q`, add it to the `matches` array 15 | for (var i = 0; i < strs.length; i++) { 16 | if (substrRegex.test(strs[i])) { 17 | matches.push(strs[i]); 18 | } 19 | } 20 | 21 | cb(matches); 22 | }; 23 | }; 24 | 25 | var states = ['Alabama', 'Alaska', 'Arizona', 'Arkansas', 'California', 26 | 'Colorado', 'Connecticut', 'Delaware', 'Florida', 'Georgia', 'Hawaii', 27 | 'Idaho', 'Illinois', 'Indiana', 'Iowa', 'Kansas', 'Kentucky', 'Louisiana', 28 | 'Maine', 'Maryland', 'Massachusetts', 'Michigan', 'Minnesota', 29 | 'Mississippi', 'Missouri', 'Montana', 'Nebraska', 'Nevada', 'New Hampshire', 30 | 'New Jersey', 'New Mexico', 'New York', 'North Carolina', 'North Dakota', 31 | 'Ohio', 'Oklahoma', 'Oregon', 'Pennsylvania', 'Rhode Island', 32 | 'South Carolina', 'South Dakota', 'Tennessee', 'Texas', 'Utah', 'Vermont', 33 | 'Virginia', 'Washington', 'West Virginia', 'Wisconsin', 'Wyoming' 34 | ]; 35 | 36 | $('#the-basics .typeahead').typeahead({ 37 | hint: true, 38 | highlight: true, 39 | minLength: 1 40 | }, { 41 | name: 'states', 42 | source: substringMatcher(states) 43 | }); 44 | // constructs the suggestion engine 45 | var states = new Bloodhound({ 46 | datumTokenizer: Bloodhound.tokenizers.whitespace, 47 | queryTokenizer: Bloodhound.tokenizers.whitespace, 48 | // `states` is an array of state names defined in "The Basics" 49 | local: states 50 | }); 51 | 52 | $('#bloodhound .typeahead').typeahead({ 53 | hint: true, 54 | highlight: true, 55 | minLength: 1 56 | }, { 57 | name: 'states', 58 | source: states 59 | }); 60 | })(jQuery); -------------------------------------------------------------------------------- /public/robots.txt: -------------------------------------------------------------------------------- 1 | User-agent: * 2 | Disallow: 3 | -------------------------------------------------------------------------------- /public/web.config: -------------------------------------------------------------------------------- 1 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /resources/js/app.js: -------------------------------------------------------------------------------- 1 | require('./bootstrap'); 2 | -------------------------------------------------------------------------------- /resources/js/bootstrap.js: -------------------------------------------------------------------------------- 1 | window._ = require('lodash'); 2 | 3 | /** 4 | * We'll load the axios HTTP library which allows us to easily issue requests 5 | * to our Laravel back-end. This library automatically handles sending the 6 | * CSRF token as a header based on the value of the "XSRF" token cookie. 7 | */ 8 | 9 | window.axios = require('axios'); 10 | 11 | window.axios.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest'; 12 | 13 | /** 14 | * Echo exposes an expressive API for subscribing to channels and listening 15 | * for events that are broadcast by Laravel. Echo and event broadcasting 16 | * allows your team to easily build robust real-time web applications. 17 | */ 18 | 19 | // import Echo from 'laravel-echo'; 20 | 21 | // window.Pusher = require('pusher-js'); 22 | 23 | // window.Echo = new Echo({ 24 | // broadcaster: 'pusher', 25 | // key: process.env.MIX_PUSHER_APP_KEY, 26 | // cluster: process.env.MIX_PUSHER_APP_CLUSTER, 27 | // forceTLS: true 28 | // }); 29 | -------------------------------------------------------------------------------- /resources/lang/en/auth.php: -------------------------------------------------------------------------------- 1 | 'These credentials do not match our records.', 17 | 'throttle' => 'Too many login attempts. Please try again in :seconds seconds.', 18 | 19 | ]; 20 | -------------------------------------------------------------------------------- /resources/lang/en/pagination.php: -------------------------------------------------------------------------------- 1 | '« Previous', 17 | 'next' => 'Next »', 18 | 19 | ]; 20 | -------------------------------------------------------------------------------- /resources/lang/en/passwords.php: -------------------------------------------------------------------------------- 1 | 'Your password has been reset!', 17 | 'sent' => 'We have emailed your password reset link!', 18 | 'throttled' => 'Please wait before retrying.', 19 | 'token' => 'This password reset token is invalid.', 20 | 'user' => "We can't find a user with that email address.", 21 | 22 | ]; 23 | -------------------------------------------------------------------------------- /resources/sass/app.scss: -------------------------------------------------------------------------------- 1 | // 2 | -------------------------------------------------------------------------------- /resources/views/admin/approve_email.blade.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Seminar Library Management System 5 | 6 | 7 |

    {{ $details_approve['title'] }}

    8 |

    {{ $details_approve['body'] }}

    9 | 10 |

    Thank you

    11 | 12 | -------------------------------------------------------------------------------- /resources/views/admin/book_order_email.blade.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Seminar Library Management System 5 | 6 | 7 |

    {{ $details_order['title'] }}

    8 |

    {{ $details_order['body'] }}

    9 | 10 |

    Thank you

    11 | 12 | -------------------------------------------------------------------------------- /resources/views/admin/book_received_Email.blade.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Seminar Library Management System 5 | 6 | 7 |

    {{ $details_received['title'] }}

    8 |

    {{ $details_received['body'] }}

    9 | 10 |

    Thank you

    11 | 12 | -------------------------------------------------------------------------------- /resources/views/admin/change_password.blade.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Seminar Library Management System 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 44 | Go to User Panel 45 | 46 |
    47 | 48 | @csrf 49 | 50 |
    51 | 52 | 68 | 69 |
    70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | -------------------------------------------------------------------------------- /resources/views/admin/forget_password.blade.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Seminar Library Management System 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 45 | Go to User Panel 46 | 47 |
    48 | 49 | @csrf 50 | 51 |
    52 | 53 | 72 | 73 |
    74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | -------------------------------------------------------------------------------- /resources/views/admin/reject_email.blade.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Rejected your account 5 | 6 | 7 |

    {{ $details_reject['title'] }}

    8 |

    {{ $details_reject['body'] }}

    9 | 10 |

    Thank you

    11 | 12 | -------------------------------------------------------------------------------- /resources/views/admin/remove_student_email.blade.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Seminar Library Management System 5 | 6 | 7 |

    {{ $details_remove['title'] }}

    8 |

    {{ $details_remove['body'] }}

    9 | 10 |

    Thank you

    11 | 12 | -------------------------------------------------------------------------------- /resources/views/admin/sign_in.blade.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Seminar Library Management System 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 59 | 60 | Go to User Panel 61 | 62 | 63 |
    64 | 65 |
    66 | 69 |
    70 |
    71 | 72 | @csrf 73 | 74 | Email or Username
    75 |
    76 | Password
    77 |
    78 | 79 |
    80 |
    81 | Remember me 82 |
    83 | 84 | 87 |
    88 |
    89 | 90 |

    Seminar
    Library
    Management
    System

    91 | 92 |
    93 |
    94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | -------------------------------------------------------------------------------- /resources/views/student/RecoveryPassword_By_Email.blade.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Recover Password 5 | 6 | 7 |

    {{ $details2['title'] }}

    8 |

    {{ $details2['body'] }}

    9 | 10 |

    Thank you

    11 | 12 | -------------------------------------------------------------------------------- /resources/views/student/Verify_Email_By_Mail.blade.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Email Verification 5 | 6 | 7 |

    {{ $details['title'] }}

    8 |

    {{ $details['body'] }}

    9 | 10 |

    Thank you

    11 | 12 | -------------------------------------------------------------------------------- /resources/views/student/change_password.blade.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Seminar Library Management System 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 44 | Go to Admin Panel 45 | 46 |
    47 | 48 | @csrf 49 | 50 |
    51 | 52 | 69 | 70 |
    71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | -------------------------------------------------------------------------------- /resources/views/student/forget_password.blade.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Seminar Library Management System 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 44 | Go to Admin Panel 45 | 46 |
    47 | 48 | @csrf 49 | 50 |
    51 | 52 | 71 | 72 |
    73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | -------------------------------------------------------------------------------- /resources/views/student/sign_up_page.blade.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Seminar Library Management System 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 44 | Go to Admin Panel 45 | 46 |
    47 | 48 | @csrf 49 | 50 |
    51 | 52 | 97 | 98 |
    99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | -------------------------------------------------------------------------------- /resources/views/student/student_sign_in.blade.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Seminar Library Management System 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 59 | 60 | Go to Admin Panel 61 | 62 | 63 |
    64 | 65 |
    66 | 69 |
    70 |
    71 | 72 | @csrf 73 | 74 | Email or Username
    75 |
    76 | Password
    77 |
    78 | 79 |
    80 |
    81 | Remember me 82 |
    83 |
    OR,
    84 |
    85 | 88 | 91 |
    92 |
    93 | 94 |

    Seminar
    Library
    Management
    System

    95 | 96 |
    97 |
    98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | -------------------------------------------------------------------------------- /resources/views/student/verify_email.blade.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Seminar Library Management System 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 44 | Go to Admin Panel 45 | 46 |
    47 | 48 | @csrf 49 | 50 |
    51 | 52 | 67 | 68 |
    69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | -------------------------------------------------------------------------------- /routes/api.php: -------------------------------------------------------------------------------- 1 | get('/user', function (Request $request) { 18 | return $request->user(); 19 | }); 20 | -------------------------------------------------------------------------------- /routes/channels.php: -------------------------------------------------------------------------------- 1 | id === (int) $id; 18 | }); 19 | -------------------------------------------------------------------------------- /routes/console.php: -------------------------------------------------------------------------------- 1 | comment(Inspiring::quote()); 19 | })->describe('Display an inspiring quote'); 20 | -------------------------------------------------------------------------------- /server.php: -------------------------------------------------------------------------------- 1 | 8 | */ 9 | 10 | $uri = urldecode( 11 | parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH) 12 | ); 13 | 14 | // This file allows us to emulate Apache's "mod_rewrite" functionality from the 15 | // built-in PHP web server. This provides a convenient way to test a Laravel 16 | // application without having installed a "real" web server software here. 17 | if ($uri !== '/' && file_exists(__DIR__.'/public'.$uri)) { 18 | return false; 19 | } 20 | 21 | require_once __DIR__.'/public/index.php'; 22 | -------------------------------------------------------------------------------- /storage/app/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !public/ 3 | !.gitignore 4 | -------------------------------------------------------------------------------- /storage/app/public/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore 3 | -------------------------------------------------------------------------------- /storage/framework/.gitignore: -------------------------------------------------------------------------------- 1 | config.php 2 | routes.php 3 | schedule-* 4 | compiled.php 5 | services.json 6 | events.scanned.php 7 | routes.scanned.php 8 | down 9 | -------------------------------------------------------------------------------- /storage/framework/cache/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !data/ 3 | !.gitignore 4 | -------------------------------------------------------------------------------- /storage/framework/cache/data/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore 3 | -------------------------------------------------------------------------------- /storage/framework/sessions/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore 3 | -------------------------------------------------------------------------------- /storage/framework/testing/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore 3 | -------------------------------------------------------------------------------- /storage/framework/views/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore 3 | -------------------------------------------------------------------------------- /storage/logs/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore 3 | -------------------------------------------------------------------------------- /tests/CreatesApplication.php: -------------------------------------------------------------------------------- 1 | make(Kernel::class)->bootstrap(); 19 | 20 | return $app; 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /tests/Feature/ExampleTest.php: -------------------------------------------------------------------------------- 1 | get('/'); 18 | 19 | $response->assertStatus(200); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /tests/TestCase.php: -------------------------------------------------------------------------------- 1 | assertTrue(true); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /webpack.mix.js: -------------------------------------------------------------------------------- 1 | const mix = require('laravel-mix'); 2 | 3 | /* 4 | |-------------------------------------------------------------------------- 5 | | Mix Asset Management 6 | |-------------------------------------------------------------------------- 7 | | 8 | | Mix provides a clean, fluent API for defining some Webpack build steps 9 | | for your Laravel application. By default, we are compiling the Sass 10 | | file for the application as well as bundling up all the JS files. 11 | | 12 | */ 13 | 14 | mix.js('resources/js/app.js', 'public/js') 15 | .sass('resources/sass/app.scss', 'public/css'); 16 | --------------------------------------------------------------------------------