├── public ├── favicon.ico ├── robots.txt ├── vendor │ ├── adminlte │ │ └── dist │ │ │ └── img │ │ │ └── AdminLTELogo.png │ ├── fontawesome-free │ │ ├── webfonts │ │ │ ├── fa-solid-900.eot │ │ │ ├── fa-solid-900.ttf │ │ │ ├── fa-brands-400.eot │ │ │ ├── fa-brands-400.ttf │ │ │ ├── fa-brands-400.woff │ │ │ ├── fa-brands-400.woff2 │ │ │ ├── fa-regular-400.eot │ │ │ ├── fa-regular-400.ttf │ │ │ ├── fa-regular-400.woff │ │ │ ├── fa-solid-900.woff │ │ │ ├── fa-solid-900.woff2 │ │ │ └── fa-regular-400.woff2 │ │ └── css │ │ │ ├── solid.min.css │ │ │ ├── brands.min.css │ │ │ ├── regular.min.css │ │ │ ├── brands.css │ │ │ ├── solid.css │ │ │ └── regular.css │ └── popper │ │ └── umd │ │ └── popper.js.flow ├── .htaccess ├── web.config └── index.php ├── resources ├── sass │ └── app.scss ├── js │ ├── app.js │ └── bootstrap.js ├── views │ ├── auth │ │ ├── login.blade.php │ │ ├── verify.blade.php │ │ ├── register.blade.php │ │ └── passwords │ │ │ ├── email.blade.php │ │ │ ├── reset.blade.php │ │ │ └── confirm.blade.php │ ├── vendor │ │ └── adminlte │ │ │ ├── partials │ │ │ ├── footer │ │ │ │ └── footer.blade.php │ │ │ ├── sidebar │ │ │ │ ├── right-sidebar.blade.php │ │ │ │ ├── menu-item-header.blade.php │ │ │ │ ├── menu-item.blade.php │ │ │ │ ├── menu-item-search-form.blade.php │ │ │ │ ├── menu-item-link.blade.php │ │ │ │ ├── menu-item-treeview-menu.blade.php │ │ │ │ └── left-sidebar.blade.php │ │ │ ├── navbar │ │ │ │ ├── dropdown-item.blade.php │ │ │ │ ├── menu-item.blade.php │ │ │ │ ├── menu-item-search-form.blade.php │ │ │ │ ├── menu-item-left-sidebar-toggler.blade.php │ │ │ │ ├── menu-item-right-sidebar-toggler.blade.php │ │ │ │ ├── dropdown-item-link.blade.php │ │ │ │ ├── menu-item-logout-link.blade.php │ │ │ │ ├── menu-item-link.blade.php │ │ │ │ ├── menu-item-dropdown-menu.blade.php │ │ │ │ ├── dropdown-item-submenu.blade.php │ │ │ │ ├── navbar.blade.php │ │ │ │ ├── navbar-layout-topnav.blade.php │ │ │ │ └── menu-item-dropdown-user-menu.blade.php │ │ │ └── common │ │ │ │ ├── brand-logo-xl.blade.php │ │ │ │ └── brand-logo-xs.blade.php │ │ │ ├── plugins.blade.php │ │ │ ├── auth │ │ │ ├── verify.blade.php │ │ │ ├── passwords │ │ │ │ ├── email.blade.php │ │ │ │ ├── confirm.blade.php │ │ │ │ └── reset.blade.php │ │ │ └── auth-page.blade.php │ │ │ └── page.blade.php │ ├── dashboard.blade.php │ ├── website │ │ ├── seller │ │ │ ├── layouts │ │ │ │ └── menu.blade.php │ │ │ ├── dashboard.blade.php │ │ │ └── login.blade.php │ │ ├── index.blade.php │ │ ├── master.blade.php │ │ └── layouts │ │ │ └── navbar.blade.php │ ├── welcome.blade.php │ └── layouts │ │ └── app.blade.php └── lang │ ├── en │ ├── pagination.php │ ├── auth.php │ └── passwords.php │ └── vendor │ └── adminlte │ ├── zh-CN │ ├── menu.php │ └── adminlte.php │ ├── ja │ ├── menu.php │ └── adminlte.php │ ├── tr │ ├── menu.php │ └── adminlte.php │ ├── vi │ ├── menu.php │ └── adminlte.php │ ├── en │ ├── menu.php │ └── adminlte.php │ ├── id │ ├── menu.php │ └── adminlte.php │ ├── de │ ├── menu.php │ └── adminlte.php │ ├── pt-br │ ├── menu.php │ └── adminlte.php │ ├── ru │ ├── menu.php │ └── adminlte.php │ ├── uk │ ├── menu.php │ └── adminlte.php │ ├── es │ ├── menu.php │ └── adminlte.php │ ├── hr │ └── adminlte.php │ ├── fa │ └── adminlte.php │ ├── pl │ └── adminlte.php │ ├── hu │ └── adminlte.php │ ├── ar │ └── adminlte.php │ ├── it │ └── adminlte.php │ ├── ca │ └── adminlte.php │ ├── nl │ └── adminlte.php │ └── fr │ └── adminlte.php ├── bootstrap ├── cache │ └── .gitignore └── app.php ├── storage ├── logs │ └── .gitignore ├── app │ ├── public │ │ └── .gitignore │ └── .gitignore └── framework │ ├── testing │ └── .gitignore │ ├── views │ └── .gitignore │ ├── cache │ ├── data │ │ └── .gitignore │ └── .gitignore │ ├── sessions │ └── .gitignore │ └── .gitignore ├── database ├── .gitignore ├── seeds │ └── DatabaseSeeder.php ├── migrations │ ├── 2020_10_22_170408_create_provinces_table.php │ ├── 2020_10_30_134314_create_category_products_table.php │ ├── 2020_10_28_082032_create_category_sellers_table.php │ ├── 2014_10_12_100000_create_password_resets_table.php │ ├── 2020_10_28_081602_create_districts_table.php │ ├── 2020_10_28_081655_create_villages_table.php │ ├── 2020_10_28_081459_create_regencies_table.php │ ├── 2019_08_19_000000_create_failed_jobs_table.php │ ├── 2020_10_28_120305_add_remember_token_to_sellers_table.php │ ├── 2014_10_12_000000_create_users_table.php │ ├── 2020_10_30_134416_create_products_table.php │ └── 2020_10_28_082106_create_sellers_table.php └── factories │ └── UserFactory.php ├── .gitattributes ├── app ├── District.php ├── Province.php ├── Regency.php ├── Village.php ├── Http │ ├── Controllers │ │ ├── LandingpageController.php │ │ ├── Controller.php │ │ ├── Seller │ │ │ ├── DashboardController.php │ │ │ ├── LoginController.php │ │ │ ├── RegisterController.php │ │ │ └── ProductController.php │ │ ├── HomeController.php │ │ ├── LoginController.php │ │ └── Auth │ │ │ ├── ForgotPasswordController.php │ │ │ ├── ResetPasswordController.php │ │ │ ├── LoginController.php │ │ │ ├── ConfirmPasswordController.php │ │ │ ├── VerificationController.php │ │ │ └── RegisterController.php │ ├── Middleware │ │ ├── EncryptCookies.php │ │ ├── VerifyCsrfToken.php │ │ ├── CheckForMaintenanceMode.php │ │ ├── TrimStrings.php │ │ ├── Authenticate.php │ │ ├── RedirectIfAuthenticated.php │ │ └── TrustProxies.php │ ├── Requests │ │ └── ProductRequest.php │ └── Kernel.php ├── CategorySeller.php ├── CategoryProduct.php ├── Providers │ ├── BroadcastServiceProvider.php │ ├── AuthServiceProvider.php │ ├── AppServiceProvider.php │ ├── EventServiceProvider.php │ └── RouteServiceProvider.php ├── User.php ├── Seller.php ├── Console │ └── Kernel.php ├── Product.php └── Exceptions │ └── Handler.php ├── tests ├── TestCase.php ├── Unit │ └── ExampleTest.php ├── Feature │ └── ExampleTest.php └── CreatesApplication.php ├── .gitignore ├── .styleci.yml ├── .editorconfig ├── README.md ├── webpack.mix.js ├── routes ├── channels.php ├── api.php ├── console.php └── web.php ├── server.php ├── config ├── cors.php ├── services.php ├── view.php ├── hashing.php ├── broadcasting.php ├── filesystems.php ├── queue.php ├── logging.php ├── cache.php └── mail.php ├── .env.example ├── package.json ├── phpunit.xml ├── artisan └── composer.json /public/favicon.ico: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /resources/sass/app.scss: -------------------------------------------------------------------------------- 1 | // 2 | -------------------------------------------------------------------------------- /bootstrap/cache/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore 3 | -------------------------------------------------------------------------------- /resources/js/app.js: -------------------------------------------------------------------------------- 1 | require('./bootstrap'); 2 | -------------------------------------------------------------------------------- /storage/logs/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore 3 | -------------------------------------------------------------------------------- /database/.gitignore: -------------------------------------------------------------------------------- 1 | *.sqlite 2 | *.sqlite-journal 3 | -------------------------------------------------------------------------------- /public/robots.txt: -------------------------------------------------------------------------------- 1 | User-agent: * 2 | Disallow: 3 | -------------------------------------------------------------------------------- /storage/app/public/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore 3 | -------------------------------------------------------------------------------- /storage/app/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !public/ 3 | !.gitignore 4 | -------------------------------------------------------------------------------- /storage/framework/testing/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore 3 | -------------------------------------------------------------------------------- /storage/framework/views/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore 3 | -------------------------------------------------------------------------------- /storage/framework/cache/data/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore 3 | -------------------------------------------------------------------------------- /storage/framework/sessions/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore 3 | -------------------------------------------------------------------------------- /resources/views/auth/login.blade.php: -------------------------------------------------------------------------------- 1 | @extends('adminlte::auth.login') -------------------------------------------------------------------------------- /storage/framework/cache/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !data/ 3 | !.gitignore 4 | -------------------------------------------------------------------------------- /resources/views/auth/verify.blade.php: -------------------------------------------------------------------------------- 1 | @extends('adminlte::auth.verify') -------------------------------------------------------------------------------- /resources/views/auth/register.blade.php: -------------------------------------------------------------------------------- 1 | @extends('adminlte::auth.register') -------------------------------------------------------------------------------- /resources/views/auth/passwords/email.blade.php: -------------------------------------------------------------------------------- 1 | @extends('adminlte::auth.passwords.email') -------------------------------------------------------------------------------- /resources/views/auth/passwords/reset.blade.php: -------------------------------------------------------------------------------- 1 | @extends('adminlte::auth.passwords.reset') -------------------------------------------------------------------------------- /resources/views/auth/passwords/confirm.blade.php: -------------------------------------------------------------------------------- 1 | @extends('adminlte::auth.passwords.confirm') -------------------------------------------------------------------------------- /resources/views/vendor/adminlte/partials/footer/footer.blade.php: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | * text=auto 2 | *.css linguist-vendored 3 | *.scss linguist-vendored 4 | *.js linguist-vendored 5 | CHANGELOG.md export-ignore 6 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /public/vendor/adminlte/dist/img/AdminLTELogo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ir001/laravel-toko-online-whatsapp/HEAD/public/vendor/adminlte/dist/img/AdminLTELogo.png -------------------------------------------------------------------------------- /app/District.php: -------------------------------------------------------------------------------- 1 | 2 | @yield('right-sidebar') 3 | 4 | -------------------------------------------------------------------------------- /tests/TestCase.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | {{ is_string($item) ? $item : $item['header'] }} 4 | 5 | -------------------------------------------------------------------------------- /app/Http/Controllers/LandingpageController.php: -------------------------------------------------------------------------------- 1 | Dashboard 7 | @stop 8 | 9 | @section('content') 10 |

Welcome to this beautiful admin panel.

11 | @stop 12 | 13 | @section('css') 14 | @stop 15 | 16 | @section('js') 17 | 18 | @stop 19 | -------------------------------------------------------------------------------- /database/seeds/DatabaseSeeder.php: -------------------------------------------------------------------------------- 1 | call(UsersTableSeeder::class); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /tests/Unit/ExampleTest.php: -------------------------------------------------------------------------------- 1 | assertTrue(true); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /app/CategorySeller.php: -------------------------------------------------------------------------------- 1 | hasMany('App\Seller'); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /app/CategoryProduct.php: -------------------------------------------------------------------------------- 1 | hasMany('App\Product'); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /app/Http/Middleware/EncryptCookies.php: -------------------------------------------------------------------------------- 1 | middleware('auth:seller'); 13 | } 14 | public function index(){ 15 | return view('website.seller.dashboard'); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /tests/Feature/ExampleTest.php: -------------------------------------------------------------------------------- 1 | get('/'); 18 | 19 | $response->assertStatus(200); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /resources/views/vendor/adminlte/partials/navbar/dropdown-item.blade.php: -------------------------------------------------------------------------------- 1 | @inject('menuItemHelper', \JeroenNoten\LaravelAdminLte\Helpers\MenuItemHelper) 2 | 3 | @if ($menuItemHelper->isSubmenu($item)) 4 | 5 | {{-- Dropdown submenu --}} 6 | @include('adminlte::partials.navbar.dropdown-item-submenu') 7 | 8 | @elseif ($menuItemHelper->isLink($item)) 9 | 10 | {{-- Dropdown link --}} 11 | @include('adminlte::partials.navbar.dropdown-item-link') 12 | 13 | @endif 14 | -------------------------------------------------------------------------------- /tests/CreatesApplication.php: -------------------------------------------------------------------------------- 1 | make(Kernel::class)->bootstrap(); 19 | 20 | return $app; 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /app/Providers/BroadcastServiceProvider.php: -------------------------------------------------------------------------------- 1 | expectsJson()) { 18 | return route('login'); 19 | } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /resources/views/vendor/adminlte/partials/navbar/menu-item.blade.php: -------------------------------------------------------------------------------- 1 | @inject('menuItemHelper', \JeroenNoten\LaravelAdminLte\Helpers\MenuItemHelper) 2 | 3 | @if ($menuItemHelper->isSearchBar($item)) 4 | 5 | {{-- Search form --}} 6 | @include('adminlte::partials.navbar.menu-item-search-form') 7 | 8 | @elseif ($menuItemHelper->isSubmenu($item)) 9 | 10 | {{-- Dropdown menu --}} 11 | @include('adminlte::partials.navbar.menu-item-dropdown-menu') 12 | 13 | @elseif ($menuItemHelper->isLink($item)) 14 | 15 | {{-- Link --}} 16 | @include('adminlte::partials.navbar.menu-item-link') 17 | 18 | @endif 19 | -------------------------------------------------------------------------------- /app/Http/Controllers/HomeController.php: -------------------------------------------------------------------------------- 1 | middleware('auth'); 17 | } 18 | 19 | /** 20 | * Show the application dashboard. 21 | * 22 | * @return \Illuminate\Contracts\Support\Renderable 23 | */ 24 | public function index() 25 | { 26 | return view('dashboard'); 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /app/Http/Controllers/LoginController.php: -------------------------------------------------------------------------------- 1 | '« Previous', 17 | 'next' => 'Next »', 18 | 19 | ]; 20 | -------------------------------------------------------------------------------- /routes/channels.php: -------------------------------------------------------------------------------- 1 | id === (int) $id; 18 | }); 19 | -------------------------------------------------------------------------------- /resources/views/website/seller/layouts/menu.blade.php: -------------------------------------------------------------------------------- 1 |
2 | Dashboard 3 | Product 4 | Profile 5 | Setting 6 |
7 | -------------------------------------------------------------------------------- /routes/api.php: -------------------------------------------------------------------------------- 1 | get('/user', function (Request $request) { 18 | return $request->user(); 19 | }); 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 | -------------------------------------------------------------------------------- /resources/views/vendor/adminlte/partials/navbar/menu-item-search-form.blade.php: -------------------------------------------------------------------------------- 1 |
2 | {{ csrf_field() }} 3 |
4 | 6 |
7 | 10 |
11 |
12 |
13 | 14 | -------------------------------------------------------------------------------- /routes/console.php: -------------------------------------------------------------------------------- 1 | comment(Inspiring::quote()); 19 | })->describe('Display an inspiring quote'); 20 | -------------------------------------------------------------------------------- /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/vendor/fontawesome-free/css/solid.min.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * Font Awesome Free 5.13.0 by @fontawesome - https://fontawesome.com 3 | * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) 4 | */ 5 | @font-face{font-family:"Font Awesome 5 Free";font-style:normal;font-weight:900;font-display:block;src:url(../webfonts/fa-solid-900.eot);src:url(../webfonts/fa-solid-900.eot?#iefix) format("embedded-opentype"),url(../webfonts/fa-solid-900.woff2) format("woff2"),url(../webfonts/fa-solid-900.woff) format("woff"),url(../webfonts/fa-solid-900.ttf) format("truetype"),url(../webfonts/fa-solid-900.svg#fontawesome) format("svg")}.fa,.fas{font-family:"Font Awesome 5 Free";font-weight:900} -------------------------------------------------------------------------------- /public/vendor/fontawesome-free/css/brands.min.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * Font Awesome Free 5.13.0 by @fontawesome - https://fontawesome.com 3 | * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) 4 | */ 5 | @font-face{font-family:"Font Awesome 5 Brands";font-style:normal;font-weight:400;font-display:block;src:url(../webfonts/fa-brands-400.eot);src:url(../webfonts/fa-brands-400.eot?#iefix) format("embedded-opentype"),url(../webfonts/fa-brands-400.woff2) format("woff2"),url(../webfonts/fa-brands-400.woff) format("woff"),url(../webfonts/fa-brands-400.ttf) format("truetype"),url(../webfonts/fa-brands-400.svg#fontawesome) format("svg")}.fab{font-family:"Font Awesome 5 Brands";font-weight:400} -------------------------------------------------------------------------------- /public/vendor/fontawesome-free/css/regular.min.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * Font Awesome Free 5.13.0 by @fontawesome - https://fontawesome.com 3 | * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) 4 | */ 5 | @font-face{font-family:"Font Awesome 5 Free";font-style:normal;font-weight:400;font-display:block;src:url(../webfonts/fa-regular-400.eot);src:url(../webfonts/fa-regular-400.eot?#iefix) format("embedded-opentype"),url(../webfonts/fa-regular-400.woff2) format("woff2"),url(../webfonts/fa-regular-400.woff) format("woff"),url(../webfonts/fa-regular-400.ttf) format("truetype"),url(../webfonts/fa-regular-400.svg#fontawesome) format("svg")}.far{font-family:"Font Awesome 5 Free";font-weight:400} -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /app/Http/Middleware/RedirectIfAuthenticated.php: -------------------------------------------------------------------------------- 1 | check()) { 22 | return redirect(RouteServiceProvider::HOME); 23 | } 24 | 25 | return $next($request); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /app/Providers/AuthServiceProvider.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/AppServiceProvider.php: -------------------------------------------------------------------------------- 1 | "; 29 | }); 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /resources/views/vendor/adminlte/plugins.blade.php: -------------------------------------------------------------------------------- 1 | @foreach(config('adminlte.plugins') as $pluginName => $plugin) 2 | @if($plugin['active'] || View::getSection('plugins.' . ($plugin['name'] ?? $pluginName))) 3 | @foreach($plugin['files'] as $file) 4 | 5 | {{-- Check requested file type --}} 6 | @if($file['type'] == $type && $type == 'css') 7 | 8 | @elseif($file['type'] == $type && $type == 'js') 9 | 10 | @endif 11 | 12 | @endforeach 13 | @endif 14 | @endforeach 15 | -------------------------------------------------------------------------------- /resources/views/vendor/adminlte/partials/navbar/menu-item-left-sidebar-toggler.blade.php: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /resources/views/vendor/adminlte/partials/sidebar/menu-item.blade.php: -------------------------------------------------------------------------------- 1 | @inject('menuItemHelper', \JeroenNoten\LaravelAdminLte\Helpers\MenuItemHelper) 2 | 3 | @if ($menuItemHelper->isHeader($item)) 4 | 5 | {{-- Header --}} 6 | @include('adminlte::partials.sidebar.menu-item-header') 7 | 8 | @elseif ($menuItemHelper->isSearchBar($item)) 9 | 10 | {{-- Search form --}} 11 | @include('adminlte::partials.sidebar.menu-item-search-form') 12 | 13 | @elseif ($menuItemHelper->isSubmenu($item)) 14 | 15 | {{-- Treeview menu --}} 16 | @include('adminlte::partials.sidebar.menu-item-treeview-menu') 17 | 18 | @elseif ($menuItemHelper->isLink($item)) 19 | 20 | {{-- Link --}} 21 | @include('adminlte::partials.sidebar.menu-item-link') 22 | 23 | @endif 24 | -------------------------------------------------------------------------------- /resources/lang/vendor/adminlte/zh-CN/menu.php: -------------------------------------------------------------------------------- 1 | '主导航', 6 | 'blog' => '博客', 7 | 'pages' => '页面', 8 | 'account_settings' => '账户设置', 9 | 'profile' => '用户信息', 10 | 'change_password' => '修改密码', 11 | 'multilevel' => '多级', 12 | 'level_one' => '第一级', 13 | 'level_two' => '第二级', 14 | 'level_three' => '第三级', 15 | 'labels' => '标签', 16 | 'important' => '重要', 17 | 'warning' => '警告', 18 | 'information' => '信息', 19 | ]; 20 | -------------------------------------------------------------------------------- /resources/lang/vendor/adminlte/ja/menu.php: -------------------------------------------------------------------------------- 1 | 'メインメニュー', 6 | 'blog' => 'ブログ', 7 | 'pages' => 'ページ', 8 | 'account_settings' => 'アカウント設定', 9 | 'profile' => 'プロフィール', 10 | 'change_password' => 'パスワード変更', 11 | 'multilevel' => 'マルチ階層', 12 | 'level_one' => '階層 1', 13 | 'level_two' => '階層 2', 14 | 'level_three' => '階層 3', 15 | 'labels' => 'ラベル', 16 | 'important' => '重要', 17 | 'warning' => '警告', 18 | 'information' => 'インフォメーション', 19 | ]; 20 | -------------------------------------------------------------------------------- /app/Http/Controllers/Auth/ForgotPasswordController.php: -------------------------------------------------------------------------------- 1 | 2 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /app/Http/Middleware/TrustProxies.php: -------------------------------------------------------------------------------- 1 | 2 | 3 |
4 | {{ csrf_field() }} 5 | 6 |
7 | 10 |
11 | 14 |
15 |
16 |
17 | 18 | 19 | -------------------------------------------------------------------------------- /database/migrations/2020_10_22_170408_create_provinces_table.php: -------------------------------------------------------------------------------- 1 | id(); 18 | $table->string('name')->nullable(); 19 | $table->string('slug')->nullable(); 20 | }); 21 | } 22 | 23 | /** 24 | * Reverse the migrations. 25 | * 26 | * @return void 27 | */ 28 | public function down() 29 | { 30 | Schema::dropIfExists('provinces'); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /resources/lang/vendor/adminlte/tr/menu.php: -------------------------------------------------------------------------------- 1 | 'ANA MENÜ', 6 | 'blog' => 'Blog', 7 | 'pages' => 'Sayfalar', 8 | 'account_settings' => 'HESAP AYARLARI', 9 | 'profile' => 'Profil', 10 | 'change_password' => 'Parolanı değiştir', 11 | 'multilevel' => 'Çoklu Seviye', 12 | 'level_one' => 'Seviye 1', 13 | 'level_two' => 'Seviye 2', 14 | 'level_three' => 'Seviye 3', 15 | 'labels' => 'ETİKETLER', 16 | 'important' => 'Önemli', 17 | 'warning' => 'Uyarı', 18 | 'information' => 'Bilgi', 19 | ]; 20 | -------------------------------------------------------------------------------- /database/migrations/2020_10_30_134314_create_category_products_table.php: -------------------------------------------------------------------------------- 1 | id(); 18 | $table->string('name'); 19 | $table->string('slug'); 20 | }); 21 | } 22 | 23 | /** 24 | * Reverse the migrations. 25 | * 26 | * @return void 27 | */ 28 | public function down() 29 | { 30 | Schema::dropIfExists('category_products'); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /resources/lang/vendor/adminlte/vi/menu.php: -------------------------------------------------------------------------------- 1 | 'ĐIỀU HƯỚNG CHÍNH', 6 | 'blog' => 'Blog', 7 | 'pages' => 'Trang', 8 | 'account_settings' => 'CÀI ĐẶT TÀI KHOẢN', 9 | 'profile' => 'Hồ sơ', 10 | 'change_password' => 'Đổi mật khẩu', 11 | 'multilevel' => 'Đa cấp', 12 | 'level_one' => 'Cấp độ 1', 13 | 'level_two' => 'Cấp độ 2', 14 | 'level_three' => 'Cấp độ 3', 15 | 'labels' => 'NHÃN', 16 | 'Important' => 'Quan trọng', 17 | 'Warning' => 'Cảnh báo', 18 | 'Information' => 'Thông tin', 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/lang/vendor/adminlte/en/menu.php: -------------------------------------------------------------------------------- 1 | 'MAIN NAVIGATION', 6 | 'blog' => 'Blog', 7 | 'pages' => 'Pages', 8 | 'account_settings' => 'ACCOUNT SETTINGS', 9 | 'profile' => 'Profile', 10 | 'change_password' => 'Change Password', 11 | 'multilevel' => 'Multi Level', 12 | 'level_one' => 'Level 1', 13 | 'level_two' => 'Level 2', 14 | 'level_three' => 'Level 3', 15 | 'labels' => 'LABELS', 16 | 'important' => 'Important', 17 | 'warning' => 'Warning', 18 | 'information' => 'Information', 19 | ]; 20 | -------------------------------------------------------------------------------- /resources/lang/vendor/adminlte/id/menu.php: -------------------------------------------------------------------------------- 1 | 'NAVIGASI UTAMA', 6 | 'blog' => 'Blog', 7 | 'pages' => 'Halaman', 8 | 'account_settings' => 'PENGATURAN AKUN', 9 | 'profile' => 'Profil', 10 | 'change_password' => 'Ubah Kata Sandi', 11 | 'multilevel' => 'Multi Level', 12 | 'level_one' => 'Level 1', 13 | 'level_two' => 'Level 2', 14 | 'level_three' => 'Level 3', 15 | 'labels' => 'LABEL', 16 | 'important' => 'Penting', 17 | 'warning' => 'Peringatan', 18 | 'information' => 'Informasi', 19 | ]; 20 | -------------------------------------------------------------------------------- /resources/lang/vendor/adminlte/de/menu.php: -------------------------------------------------------------------------------- 1 | 'HAUPTMENÜ', 6 | 'blog' => 'Blog', 7 | 'pages' => 'Seiten', 8 | 'account_settings' => 'KONTOEINSTELLUNGEN', 9 | 'profile' => 'Profil', 10 | 'change_password' => 'Passwort ändern', 11 | 'multilevel' => 'Multi Level', 12 | 'level_one' => 'Level 1', 13 | 'level_two' => 'Level 2', 14 | 'level_three' => 'Level 3', 15 | 'labels' => 'Beschriftungen', 16 | 'important' => 'Wichtig', 17 | 'warning' => 'Warnung', 18 | 'information' => 'Information', 19 | ]; 20 | -------------------------------------------------------------------------------- /resources/views/vendor/adminlte/auth/verify.blade.php: -------------------------------------------------------------------------------- 1 | @extends('adminlte::auth.auth-page', ['auth_type' => 'login']) 2 | 3 | @section('auth_header', __('adminlte::adminlte.verify_message')) 4 | 5 | @section('auth_body') 6 | 7 | @if(session('resent')) 8 | 11 | @endif 12 | 13 | {{ __('adminlte::adminlte.verify_check_your_email') }} 14 | {{ __('adminlte::adminlte.verify_if_not_recieved') }}, 15 | 16 |
17 | @csrf 18 | . 21 |
22 | 23 | @stop 24 | -------------------------------------------------------------------------------- /resources/lang/vendor/adminlte/pt-br/menu.php: -------------------------------------------------------------------------------- 1 | 'Navegação Principal', 6 | 'blog' => 'Blog', 7 | 'pages' => 'Página', 8 | 'account_settings' => 'Configurações da Conta', 9 | 'profile' => 'Perfil', 10 | 'change_password' => 'Mudar Senha', 11 | 'multilevel' => 'Multinível', 12 | 'level_one' => 'Nível 1', 13 | 'level_two' => 'Nível 2', 14 | 'level_three' => 'Nível 3', 15 | 'labels' => 'Etiquetas', 16 | 'Important' => 'Importante', 17 | 'Warning' => 'Aviso', 18 | 'Information' => 'Informação', 19 | ]; 20 | -------------------------------------------------------------------------------- /resources/lang/vendor/adminlte/ru/menu.php: -------------------------------------------------------------------------------- 1 | 'ГЛАВНОЕ МЕНЮ', 6 | 'blog' => 'Блог', 7 | 'pages' => 'Страницы', 8 | 'account_settings' => 'НАСТРОЙКИ ПРОФИЛЯ', 9 | 'profile' => 'Профиль', 10 | 'change_password' => 'Изменить пароль', 11 | 'multilevel' => 'Многоуровневое меню', 12 | 'level_one' => 'Уровень 1', 13 | 'level_two' => 'Уровень 2', 14 | 'level_three' => 'Уровень 3', 15 | 'labels' => 'Метки', 16 | 'important' => 'Важно', 17 | 'warning' => 'Внимание', 18 | 'information' => 'Информация', 19 | ]; 20 | -------------------------------------------------------------------------------- /resources/lang/vendor/adminlte/uk/menu.php: -------------------------------------------------------------------------------- 1 | 'ГОЛОВНЕ МЕНЮ', 6 | 'blog' => 'Блог', 7 | 'pages' => 'Сторінки', 8 | 'account_settings' => 'НАЛАШТУВАННЯ ПРОФІЛЮ', 9 | 'profile' => 'Профіль', 10 | 'change_password' => 'Змінити пароль', 11 | 'multilevel' => 'Багаторівневе меню', 12 | 'level_one' => 'Рівень 1', 13 | 'level_two' => 'Рівень 2', 14 | 'level_three' => 'Рівень 3', 15 | 'labels' => 'Мітки', 16 | 'important' => 'Важливо', 17 | 'warning' => 'Увага', 18 | 'information' => 'Інформація', 19 | ]; 20 | -------------------------------------------------------------------------------- /database/migrations/2020_10_28_082032_create_category_sellers_table.php: -------------------------------------------------------------------------------- 1 | id(); 18 | $table->string('name')->nullable(); 19 | $table->string('slug')->nullable(); 20 | }); 21 | } 22 | 23 | /** 24 | * Reverse the migrations. 25 | * 26 | * @return void 27 | */ 28 | public function down() 29 | { 30 | Schema::dropIfExists('category_sellers'); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /resources/lang/vendor/adminlte/es/menu.php: -------------------------------------------------------------------------------- 1 | 'MENU PRINCIPAL', 6 | 'blog' => 'Blog', 7 | 'pages' => 'Páginas', 8 | 'account_settings' => 'AJUSTES DE LA CUENTA', 9 | 'profile' => 'Perfil', 10 | 'change_password' => 'Cambiar Contraseña', 11 | 'multilevel' => 'Multi Nivel', 12 | 'level_one' => 'Nivel 1', 13 | 'level_two' => 'Nivel 2', 14 | 'level_three' => 'Nivel 3', 15 | 'labels' => 'ETIQUETAS', 16 | 'important' => 'Importante', 17 | 'warning' => 'Advertencia', 18 | 'information' => 'Información', 19 | ]; 20 | -------------------------------------------------------------------------------- /database/migrations/2014_10_12_100000_create_password_resets_table.php: -------------------------------------------------------------------------------- 1 | string('email')->index(); 18 | $table->string('token'); 19 | $table->timestamp('created_at')->nullable(); 20 | }); 21 | } 22 | 23 | /** 24 | * Reverse the migrations. 25 | * 26 | * @return void 27 | */ 28 | public function down() 29 | { 30 | Schema::dropIfExists('password_resets'); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /app/Providers/EventServiceProvider.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 | -------------------------------------------------------------------------------- /database/migrations/2020_10_28_081602_create_districts_table.php: -------------------------------------------------------------------------------- 1 | id(); 18 | $table->foreignId('regency_id')->constrained(); 19 | $table->string('name')->nullable(); 20 | $table->string('slug')->nullable(); 21 | }); 22 | } 23 | 24 | /** 25 | * Reverse the migrations. 26 | * 27 | * @return void 28 | */ 29 | public function down() 30 | { 31 | Schema::dropIfExists('districts'); 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /database/migrations/2020_10_28_081655_create_villages_table.php: -------------------------------------------------------------------------------- 1 | id(); 18 | $table->foreignId('district_id')->constrained(); 19 | $table->string('name')->nullable(); 20 | $table->string('slug')->nullable(); 21 | }); 22 | } 23 | 24 | /** 25 | * Reverse the migrations. 26 | * 27 | * @return void 28 | */ 29 | public function down() 30 | { 31 | Schema::dropIfExists('villages'); 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /app/User.php: -------------------------------------------------------------------------------- 1 | 'datetime', 38 | ]; 39 | } 40 | -------------------------------------------------------------------------------- /database/migrations/2020_10_28_081459_create_regencies_table.php: -------------------------------------------------------------------------------- 1 | id(); 18 | $table->foreignId('province_id')->constrained(); 19 | $table->string('name')->nullable(); 20 | $table->string('slug')->nullable(); 21 | }); 22 | } 23 | 24 | /** 25 | * Reverse the migrations. 26 | * 27 | * @return void 28 | */ 29 | public function down() 30 | { 31 | Schema::dropIfExists('regencies'); 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /resources/lang/vendor/adminlte/zh-CN/adminlte.php: -------------------------------------------------------------------------------- 1 | '姓名', 6 | 'email' => '邮箱', 7 | 'password' => '密码', 8 | 'retype_password' => '重输密码', 9 | 'remember_me' => '记住我', 10 | 'register' => '注册', 11 | 'register_a_new_membership' => '注册新用户', 12 | 'i_forgot_my_password' => '忘记密码', 13 | 'i_already_have_a_membership' => '已经有账户', 14 | 'sign_in' => '登录', 15 | 'log_out' => '退出', 16 | 'toggle_navigation' => '切换导航', 17 | 'login_message' => '请先登录', 18 | 'register_message' => '注册新用户', 19 | 'password_reset_message' => '重置密码', 20 | 'reset_password' => '重置密码', 21 | 'send_password_reset_link' => '发送密码重置链接', 22 | ]; 23 | -------------------------------------------------------------------------------- /resources/views/vendor/adminlte/partials/sidebar/menu-item-link.blade.php: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /resources/views/vendor/adminlte/partials/navbar/dropdown-item-link.blade.php: -------------------------------------------------------------------------------- 1 |
  • 2 | 3 | 6 | 7 | {{-- Icon (optional) --}} 8 | @if(isset($item['icon'])) 9 | 12 | @endif 13 | 14 | {{-- Text --}} 15 | {{ $item['text'] }} 16 | 17 | {{-- Label (optional) --}} 18 | @if(isset($item['label'])) 19 | 20 | {{ $item['label'] }} 21 | 22 | @endif 23 | 24 | 25 | 26 |
  • -------------------------------------------------------------------------------- /resources/views/vendor/adminlte/partials/navbar/menu-item-logout-link.blade.php: -------------------------------------------------------------------------------- 1 | @php( $logout_url = View::getSection('logout_url') ?? config('adminlte.logout_url', 'logout') ) 2 | 3 | @if (config('adminlte.use_route_url', false)) 4 | @php( $logout_url = $logout_url ? route($logout_url) : '' ) 5 | @else 6 | @php( $logout_url = $logout_url ? url($logout_url) : '' ) 7 | @endif 8 | 9 | -------------------------------------------------------------------------------- /app/Seller.php: -------------------------------------------------------------------------------- 1 | belongsTo('App\CategorySeller'); 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /resources/views/vendor/adminlte/partials/navbar/menu-item-link.blade.php: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /database/migrations/2019_08_19_000000_create_failed_jobs_table.php: -------------------------------------------------------------------------------- 1 | id(); 18 | $table->text('connection'); 19 | $table->text('queue'); 20 | $table->longText('payload'); 21 | $table->longText('exception'); 22 | $table->timestamp('failed_at')->useCurrent(); 23 | }); 24 | } 25 | 26 | /** 27 | * Reverse the migrations. 28 | * 29 | * @return void 30 | */ 31 | public function down() 32 | { 33 | Schema::dropIfExists('failed_jobs'); 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /.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 | -------------------------------------------------------------------------------- /database/migrations/2020_10_28_120305_add_remember_token_to_sellers_table.php: -------------------------------------------------------------------------------- 1 | string('remember_token',100)->after('description')->nullable(); 18 | $table->timestamp('email_verified_at')->after('email')->nullable(); 19 | }); 20 | } 21 | 22 | /** 23 | * Reverse the migrations. 24 | * 25 | * @return void 26 | */ 27 | public function down() 28 | { 29 | Schema::table('sellers', function (Blueprint $table) { 30 | $table->dropColumn('remember_token'); 31 | }); 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /database/migrations/2014_10_12_000000_create_users_table.php: -------------------------------------------------------------------------------- 1 | id(); 18 | $table->string('name'); 19 | $table->string('email')->unique(); 20 | $table->timestamp('email_verified_at')->nullable(); 21 | $table->string('password'); 22 | $table->rememberToken(); 23 | $table->timestamps(); 24 | }); 25 | } 26 | 27 | /** 28 | * Reverse the migrations. 29 | * 30 | * @return void 31 | */ 32 | public function down() 33 | { 34 | Schema::dropIfExists('users'); 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /app/Http/Controllers/Auth/ResetPasswordController.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 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /resources/lang/vendor/adminlte/hr/adminlte.php: -------------------------------------------------------------------------------- 1 | 'Ime', 6 | 'email' => 'Email', 7 | 'password' => 'Lozinka', 8 | 'retype_password' => 'Ponovljena lozinka', 9 | 'remember_me' => 'Zapamti me', 10 | 'register' => 'Novi korisnik', 11 | 'register_a_new_membership' => 'Registracija', 12 | 'i_forgot_my_password' => 'Zaboravljena zaporka', 13 | 'i_already_have_a_membership' => 'Već imam korisnički račun', 14 | 'sign_in' => 'Prijava', 15 | 'log_out' => 'Odjava', 16 | 'toggle_navigation' => 'Pregled navigacije', 17 | 'login_message' => 'Prijava', 18 | 'register_message' => 'Registracija', 19 | 'password_reset_message' => 'Nova lozinka', 20 | 'reset_password' => 'Nova lozinka', 21 | 'send_password_reset_link' => 'Pošalji novi zahtjev lozinke', 22 | ]; 23 | -------------------------------------------------------------------------------- /resources/lang/vendor/adminlte/fa/adminlte.php: -------------------------------------------------------------------------------- 1 | 'نام', 6 | 'email' => 'ایمیل', 7 | 'password' => 'رمز عبور', 8 | 'retype_password' => 'تکرار رمز عبور', 9 | 'remember_me' => 'مرا به یاد داشته باش', 10 | 'register' => 'ثبت نام', 11 | 'register_a_new_membership' => 'ایجاد یک عضویت جدید', 12 | 'i_forgot_my_password' => 'رمز عبور را فراموش کرده ام', 13 | 'i_already_have_a_membership' => 'قبلا ثبت نام کرده ام', 14 | 'sign_in' => 'ورود', 15 | 'log_out' => 'خروج', 16 | 'toggle_navigation' => 'نمایش/مخفی کردن منو', 17 | 'login_message' => 'وارد شوید', 18 | 'register_message' => 'ثبت نام', 19 | 'password_reset_message' => 'بازنشانی رمز عبور', 20 | 'reset_password' => 'بازنشانی رمز عبور', 21 | 'send_password_reset_link' => 'ارسال لینک بازنشانی رمز عبور', 22 | ]; 23 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /resources/lang/vendor/adminlte/pl/adminlte.php: -------------------------------------------------------------------------------- 1 | 'Imię i nazwisko', 6 | 'email' => 'Email', 7 | 'password' => 'Hasło', 8 | 'retype_password' => 'Powtórz hasło', 9 | 'remember_me' => 'Zapamiętaj mnie', 10 | 'register' => 'Zarejestruj', 11 | 'register_a_new_membership' => 'Załóż nowe konto', 12 | 'i_forgot_my_password' => 'Zapomniałem hasła', 13 | 'i_already_have_a_membership' => 'Mam już konto', 14 | 'sign_in' => 'Zaloguj', 15 | 'log_out' => 'Wyloguj', 16 | 'toggle_navigation' => 'Przełącz nawigację', 17 | 'login_message' => 'Zaloguj się aby uzyskać dostęp do panelu', 18 | 'register_message' => 'Załóż nowe konto', 19 | 'password_reset_message' => 'Resetuj hasło', 20 | 'reset_password' => 'Resetuj hasło', 21 | 'send_password_reset_link' => 'Wyślij link do resetowania hasła', 22 | ]; 23 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /resources/lang/vendor/adminlte/pt-br/adminlte.php: -------------------------------------------------------------------------------- 1 | 'Nome completo', 6 | 'email' => 'Email', 7 | 'password' => 'Senha', 8 | 'retype_password' => 'Repita a senha', 9 | 'remember_me' => 'Lembrar-me', 10 | 'register' => 'Registrar', 11 | 'register_a_new_membership' => 'Registrar um novo membro', 12 | 'i_forgot_my_password' => 'Esqueci minha senha', 13 | 'i_already_have_a_membership' => 'Já sou um membro', 14 | 'sign_in' => 'Entrar', 15 | 'log_out' => 'Sair', 16 | 'toggle_navigation' => 'Trocar navegação', 17 | 'login_message' => 'Entre para iniciar uma nova sessão', 18 | 'register_message' => 'Registrar um novo membro', 19 | 'password_reset_message' => 'Recuperar senha', 20 | 'reset_password' => 'Recuperar senha', 21 | 'send_password_reset_link' => 'Enviar link de recuperação de senha', 22 | ]; 23 | -------------------------------------------------------------------------------- /resources/lang/vendor/adminlte/hu/adminlte.php: -------------------------------------------------------------------------------- 1 | 'Teljes név', 5 | 'email' => 'Email', 6 | 'password' => 'Jelszó', 7 | 'retype_password' => 'Jelszó újra', 8 | 'remember_me' => 'Emlékezz rám', 9 | 'register' => 'Regisztráció', 10 | 'register_a_new_membership' => 'Regisztrálás új tagként', 11 | 'i_forgot_my_password' => 'Elfelejtetem a jelszavam', 12 | 'i_already_have_a_membership' => 'Már tag vagyok', 13 | 'sign_in' => 'Belépés', 14 | 'log_out' => 'Kilépés', 15 | 'toggle_navigation' => 'Lenyíló navigáció', 16 | 'login_message' => 'Belépés a munkamenet elkezdéséhez', 17 | 'register_message' => 'Regisztrálás új tagként', 18 | 'password_reset_message' => 'Jelszó visszaállítása', 19 | 'reset_password' => 'Jelszó visszaállítása', 20 | 'send_password_reset_link' => 'Jelszó visszaállítás link küldése', 21 | ]; 22 | -------------------------------------------------------------------------------- /resources/lang/vendor/adminlte/vi/adminlte.php: -------------------------------------------------------------------------------- 1 | 'Tên đầy đủ', 6 | 'email' => 'Email', 7 | 'password' => 'Mật khẩu', 8 | 'retype_password' => 'Nhập lại mật khẩu', 9 | 'remember_me' => 'Nhớ tôi', 10 | 'register' => 'Đăng ký', 11 | 'register_a_new_membership' => 'Đăng ký thành viên mới', 12 | 'i_forgot_my_password' => 'Tôi quên mật khẩu của tôi', 13 | 'i_already_have_a_membership' => 'Tôi đã là thành viên', 14 | 'sign_in' => 'Đăng nhập', 15 | 'log_out' => 'Đăng xuất', 16 | 'toggle_navigation' => 'Chuyển đổi điều hướng', 17 | 'login_message' => 'Đăng nhập để bắt đầu phiên của bạn', 18 | 'register_message' => 'Đăng ký thành viên mới', 19 | 'password_reset_message' => 'Đặt lại mật khẩu', 20 | 'reset_password' => 'Đặt lại mật khẩu', 21 | 'send_password_reset_link' => 'Gửi liên kết đặt lại mật khẩu', 22 | ]; 23 | -------------------------------------------------------------------------------- /resources/views/vendor/adminlte/partials/navbar/menu-item-dropdown-menu.blade.php: -------------------------------------------------------------------------------- 1 | 32 | -------------------------------------------------------------------------------- /resources/lang/vendor/adminlte/ar/adminlte.php: -------------------------------------------------------------------------------- 1 | 'الاسم الثلاثي', 5 | 'email' => 'البريد الإلكتروني', 6 | 'password' => 'كلمة السر', 7 | 'retype_password' => 'أعد إدخال كلمة السر', 8 | 'remember_me' => 'ذكرني', 9 | 'register' => 'تسجيل جديد', 10 | 'register_a_new_membership' => 'تسجيل عضوية جديدة', 11 | 'i_forgot_my_password' => 'نسيت كلمة السر؟', 12 | 'i_already_have_a_membership' => 'هذا الحساب لديه عضوية سابقة', 13 | 'sign_in' => 'تسجيل الدخول', 14 | 'log_out' => 'تسجيل خروج', 15 | 'toggle_navigation' => 'القائمة الجانبية', 16 | 'login_message' => 'يجب تسجيل الدخول', 17 | 'register_message' => 'تم تسجيل العضوية الجديدة ', 18 | 'password_reset_message' => 'تم إعادة تعيين كلمة المرور', 19 | 'reset_password' => 'إعادة تعيين كلمة السر', 20 | 'send_password_reset_link' => 'إرسال رابط إعادة تعيين كلمة السر', 21 | ]; 22 | -------------------------------------------------------------------------------- /resources/lang/vendor/adminlte/uk/adminlte.php: -------------------------------------------------------------------------------- 1 | 'Повне і\'мя', 6 | 'email' => 'Пошта', 7 | 'password' => 'Пароль', 8 | 'retype_password' => 'Підтвердження пароля', 9 | 'remember_me' => 'Запам\'ятати мене', 10 | 'register' => 'Реєстрація', 11 | 'register_a_new_membership' => 'Реєстрація нового користувача', 12 | 'i_forgot_my_password' => 'Відновлення пароля', 13 | 'i_already_have_a_membership' => 'Я вже зареєстрований', 14 | 'sign_in' => 'Вхід', 15 | 'log_out' => 'Вихід', 16 | 'toggle_navigation' => 'Переключити навігацію', 17 | 'login_message' => 'Вхід до системи', 18 | 'register_message' => 'Реєстрація нового користувача', 19 | 'password_reset_message' => 'Відновлення пароля', 20 | 'reset_password' => 'Відновлення пароля', 21 | 'send_password_reset_link' => 'Відправити посилання для відновлення пароля', 22 | 23 | ]; 24 | -------------------------------------------------------------------------------- /resources/views/vendor/adminlte/partials/sidebar/menu-item-treeview-menu.blade.php: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /resources/lang/vendor/adminlte/ru/adminlte.php: -------------------------------------------------------------------------------- 1 | 'Полное имя', 6 | 'email' => 'Почта', 7 | 'password' => 'Пароль', 8 | 'retype_password' => 'Подтверждение пароля', 9 | 'remember_me' => 'Запомнить меня', 10 | 'register' => 'Регистрация', 11 | 'register_a_new_membership' => 'Регистрация нового пользователя', 12 | 'i_forgot_my_password' => 'Восстановление пароля', 13 | 'i_already_have_a_membership' => 'Я уже зарегистрирован', 14 | 'sign_in' => 'Вход', 15 | 'log_out' => 'Выход', 16 | 'toggle_navigation' => 'Переключить навигацию', 17 | 'login_message' => 'Вход в систему', 18 | 'register_message' => 'Регистрация нового пользователя', 19 | 'password_reset_message' => 'Восстановление пароля', 20 | 'reset_password' => 'Восстановление пароля', 21 | 'send_password_reset_link' => 'Отправить ссылку для восстановления пароля', 22 | 23 | ]; 24 | -------------------------------------------------------------------------------- /resources/views/vendor/adminlte/partials/navbar/dropdown-item-submenu.blade.php: -------------------------------------------------------------------------------- 1 | 32 | -------------------------------------------------------------------------------- /resources/lang/vendor/adminlte/it/adminlte.php: -------------------------------------------------------------------------------- 1 | 'Nome completo', 6 | 'email' => 'Email', 7 | 'password' => 'Password', 8 | 'retype_password' => 'Ripeti password', 9 | 'remember_me' => 'Ricordami', 10 | 'register' => 'Registrazione', 11 | 'register_a_new_membership' => 'Registra un nuovo abbonamento', 12 | 'i_forgot_my_password' => 'Ho dimenticato la password', 13 | 'i_already_have_a_membership' => 'Ho già un abbonamento', 14 | 'sign_in' => 'Accedi', 15 | 'log_out' => 'Logout', 16 | 'toggle_navigation' => 'Attiva la navigazione', 17 | 'login_message' => 'Accedi per iniziare la tua sessione', 18 | 'register_message' => 'Registra un nuovo abbonamento', 19 | 'password_reset_message' => 'Resetta la password', 20 | 'reset_password' => 'Resetta la password', 21 | 'send_password_reset_link' => 'Invia link di reset della password', 22 | ]; 23 | -------------------------------------------------------------------------------- /resources/lang/vendor/adminlte/ca/adminlte.php: -------------------------------------------------------------------------------- 1 | 'Nom complet', 5 | 'email' => 'Email', 6 | 'password' => 'Contrasenya', 7 | 'retype_password' => 'Confirmar la contrasenya', 8 | 'remember_me' => 'Recordar-me', 9 | 'register' => 'Registrar-se', 10 | 'register_a_new_membership' => 'Crear un nou compte', 11 | 'i_forgot_my_password' => 'He oblidat la meva contrasenya', 12 | 'i_already_have_a_membership' => 'Ja tinc un compte', 13 | 'sign_in' => 'Accedir', 14 | 'log_out' => 'Sortir', 15 | 'toggle_navigation' => 'Commutar la navegació', 16 | 'login_message' => 'Autenticar-se per a iniciar sessió', 17 | 'register_message' => 'Crear un nou compte', 18 | 'password_reset_message' => 'Restablir la contrasenya', 19 | 'reset_password' => 'Restablir la contrasenya', 20 | 'send_password_reset_link' => 'Enviar enllaç de restabliment de contrasenya', 21 | ]; 22 | -------------------------------------------------------------------------------- /resources/views/website/index.blade.php: -------------------------------------------------------------------------------- 1 | @extends('website.master') 2 | @section('title', 'Landing Page') 3 | @section('content') 4 |
    5 |
    6 |
    7 |
    8 |

    {{config('app.name')}}

    9 |

    10 | Toko Online WhatsApp adalah marketplace yang memudahkan Anda membeli produk atau jasa 11 | dengan memanfaatkan aplikasi WhatsApp. 12 | 13 |

    14 | 15 | Cari Produk 16 | 17 | 18 | Daftar 19 | 20 |
    21 |
    22 |
    23 |
    24 |
    25 |
    26 |
    27 |
    28 |

    Produk Terbaru

    29 |
    30 |
    31 |
    32 |
    33 | 34 | @endsection 35 | -------------------------------------------------------------------------------- /resources/lang/vendor/adminlte/nl/adminlte.php: -------------------------------------------------------------------------------- 1 | 'Volledige naam', 6 | 'email' => 'E-mailadres', 7 | 'password' => 'Wachtwoord', 8 | 'retype_password' => 'Wachtwoord nogmaals invoeren', 9 | 'remember_me' => 'Ingelogd blijven', 10 | 'register' => 'Registreren', 11 | 'register_a_new_membership' => 'Registreer een nieuw lidmaatschap', 12 | 'i_forgot_my_password' => 'Ik ben mijn wachtwoord vergeten', 13 | 'i_already_have_a_membership' => 'Ik heb al een lidmaatschap', 14 | 'sign_in' => 'Inloggen', 15 | 'log_out' => 'Uitloggen', 16 | 'toggle_navigation' => 'Schakel navigatie', 17 | 'login_message' => 'Log in om je sessie te starten', 18 | 'register_message' => 'Registreer een nieuw lidmaatschap', 19 | 'password_reset_message' => 'Wachtwoord herstellen', 20 | 'reset_password' => 'Wachtwoord herstellen', 21 | 'send_password_reset_link' => 'Verzend link voor wachtwoordherstel', 22 | ]; 23 | -------------------------------------------------------------------------------- /database/migrations/2020_10_30_134416_create_products_table.php: -------------------------------------------------------------------------------- 1 | id(); 18 | $table->foreignId('seller_id')->constrained(); 19 | $table->foreignId('category_id')->references('id')->on('category_products'); 20 | $table->string('name')->nullable(); 21 | $table->string('slug')->unique()->nullable(); 22 | $table->float('price')->nullable(); 23 | $table->text('images')->nullable(); 24 | $table->text('description')->nullable(); 25 | $table->timestamps(); 26 | }); 27 | } 28 | 29 | /** 30 | * Reverse the migrations. 31 | * 32 | * @return void 33 | */ 34 | public function down() 35 | { 36 | Schema::dropIfExists('products'); 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /app/Http/Controllers/Auth/LoginController.php: -------------------------------------------------------------------------------- 1 | middleware('guest')->except('logout'); 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /resources/lang/vendor/adminlte/fr/adminlte.php: -------------------------------------------------------------------------------- 1 | 'Nom', 6 | 'email' => 'Email', 7 | 'password' => 'Mot de passe', 8 | 'retype_password' => 'Entrez à nouveau le mot de passe', 9 | 'remember_me' => 'Se souvenir de moi', 10 | 'register' => 'Enregistrement', 11 | 'register_a_new_membership' => 'Enregistrer un nouveau membre', 12 | 'i_forgot_my_password' => 'J\'ai oublié mon mot de passe', 13 | 'i_already_have_a_membership' => 'J\'ai déjà un compte', 14 | 'sign_in' => 'Connexion', 15 | 'log_out' => 'Déconnexion', 16 | 'toggle_navigation' => 'Basculer la navigation', 17 | 'login_message' => 'Connectez-vous pour commencer une session', 18 | 'register_message' => 'Enregistrement d\'un nouveau membre', 19 | 'password_reset_message' => 'Réinitialisation du mot de passe', 20 | 'reset_password' => 'Réinitialisation du mot de passe', 21 | 'send_password_reset_link' => 'Envoi de la réinitialisation du mot de passe', 22 | ]; 23 | -------------------------------------------------------------------------------- /app/Http/Controllers/Auth/ConfirmPasswordController.php: -------------------------------------------------------------------------------- 1 | middleware('auth'); 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /resources/views/vendor/adminlte/partials/sidebar/left-sidebar.blade.php: -------------------------------------------------------------------------------- 1 | 28 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /resources/views/vendor/adminlte/partials/common/brand-logo-xl.blade.php: -------------------------------------------------------------------------------- 1 | @inject('layoutHelper', \JeroenNoten\LaravelAdminLte\Helpers\LayoutHelper) 2 | 3 | @php( $dashboard_url = View::getSection('dashboard_url') ?? config('adminlte.dashboard_url', 'home') ) 4 | 5 | @if (config('adminlte.use_route_url', false)) 6 | @php( $dashboard_url = $dashboard_url ? route($dashboard_url) : '' ) 7 | @else 8 | @php( $dashboard_url = $dashboard_url ? url($dashboard_url) : '' ) 9 | @endif 10 | 11 | isLayoutTopnavEnabled()) 13 | class="navbar-brand logo-switch" 14 | @else 15 | class="brand-link logo-switch" 16 | @endif> 17 | 18 | {{-- Small brand logo --}} 19 | {{ config('adminlte.logo_img_alt', 'AdminLTE') }} 22 | 23 | {{-- Large brand logo --}} 24 | {{ config('adminlte.logo_img_alt', 'AdminLTE') }} 27 | 28 | 29 | -------------------------------------------------------------------------------- /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/views/vendor/adminlte/partials/common/brand-logo-xs.blade.php: -------------------------------------------------------------------------------- 1 | @inject('layoutHelper', \JeroenNoten\LaravelAdminLte\Helpers\LayoutHelper) 2 | 3 | @php( $dashboard_url = View::getSection('dashboard_url') ?? config('adminlte.dashboard_url', 'home') ) 4 | 5 | @if (config('adminlte.use_route_url', false)) 6 | @php( $dashboard_url = $dashboard_url ? route($dashboard_url) : '' ) 7 | @else 8 | @php( $dashboard_url = $dashboard_url ? url($dashboard_url) : '' ) 9 | @endif 10 | 11 | isLayoutTopnavEnabled()) 13 | class="navbar-brand {{ config('adminlte.classes_brand') }}" 14 | @else 15 | class="brand-link {{ config('adminlte.classes_brand') }}" 16 | @endif> 17 | 18 | {{-- Small brand logo --}} 19 | {{ config('adminlte.logo_img_alt', 'AdminLTE') }} 23 | 24 | {{-- Brand text --}} 25 | 26 | {!! config('adminlte.logo', 'AdminLTE') !!} 27 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /resources/lang/vendor/adminlte/ja/adminlte.php: -------------------------------------------------------------------------------- 1 | '氏名', 6 | 'email' => 'メールアドレス', 7 | 'password' => 'パスワード', 8 | 'retype_password' => 'もう一度入力', 9 | 'remember_me' => 'パスワードを記憶する', 10 | 'register' => '登録する', 11 | 'register_a_new_membership' => 'アカウントを登録する', 12 | 'i_forgot_my_password' => 'パスワードを忘れた', 13 | 'i_already_have_a_membership' => 'すでにアカウントを持っている', 14 | 'sign_in' => 'ログイン', 15 | 'log_out' => 'ログアウト', 16 | 'toggle_navigation' => 'ナビゲーションを開閉', 17 | 'login_message' => 'ログインしてセッションを開始する', 18 | 'register_message' => 'アカウントを登録する', 19 | 'password_reset_message' => 'パスワードをリセットする', 20 | 'reset_password' => 'パスワードをリセットする', 21 | 'send_password_reset_link' => 'パスワードリセットリンクを送信する。', 22 | 'verify_message' => 'あなたのアカウントは認証が必要です。', 23 | 'verify_email_sent' => 'あなたのメールアドレスに認証用のリンクを送信しました。', 24 | 'verify_check_your_email' => '続行する前に、認証用リンクについてメールを確認してください。', 25 | 'verify_if_not_recieved' => 'メールが届かない場合', 26 | 'verify_request_another' => 'ここをクリックしてもう一度送信する', 27 | ]; 28 | -------------------------------------------------------------------------------- /app/Http/Controllers/Auth/VerificationController.php: -------------------------------------------------------------------------------- 1 | middleware('auth'); 39 | $this->middleware('signed')->only('verify'); 40 | $this->middleware('throttle:6,1')->only('verify', 'resend'); 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /app/Product.php: -------------------------------------------------------------------------------- 1 | belongsTo('App\CategoryProduct'); 22 | } 23 | 24 | 25 | // 26 | public function handleFoto($request){ 27 | $img = $request->file('images'); 28 | $filename = Str::slug($request->name).time().".".$img->extension(); 29 | $filepath = $request->images->storeAs('uploads/products', $filename,'public'); 30 | return "/storage/{$filepath}"; 31 | } 32 | 33 | public function updateFoto($request, $images){ 34 | $img = $request->file('images'); 35 | $filename = Str::slug($request->name).time().".".$img->extension(); 36 | $filepath = $request->images->storeAs('uploads/products', $filename,'public'); 37 | try{ 38 | unlink(public_path($images)); 39 | unlink(asset($images)); 40 | return "/storage/{$filepath}"; 41 | }catch(Exception $e){ 42 | return "/storage/{$filepath}"; 43 | } 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /resources/views/website/seller/dashboard.blade.php: -------------------------------------------------------------------------------- 1 | @extends('website.master') 2 | @section('title', 'Landing Page') 3 | @section('content') 4 |
    5 |
    6 | @if (auth('seller')->user()->email_verified_at == null) 7 |

    8 | Harap konfirmasi alamat email terlebih dahulu. 9 | 10 | Kirim Ulang Email 11 | 12 |

    13 | @endif 14 |
    15 |
    16 | @include('website.seller.layouts.menu') 17 |
    18 |
    19 |

    20 | Selamat Datang, Admin {{auth('seller')->user()->name}} 21 |

    22 |
    23 |
    24 |
    25 |
    26 | 27 | @endsection 28 | @section('js') 29 | @if (session()->has('success')) 30 | 40 | @endif 41 | @endsection 42 | -------------------------------------------------------------------------------- /app/Http/Controllers/Seller/LoginController.php: -------------------------------------------------------------------------------- 1 | check()){ 13 | return redirect()->intended(route('seller.dashboard')); 14 | } 15 | return view('website.seller.login'); 16 | } 17 | public function login(Request $request){ 18 | $validator = Validator::make(request()->all(),[ 19 | 'email' => 'required', 20 | 'password' => 'required|min:6' 21 | ],[ 22 | 'email.required' => 'Email wajib diisi!', 23 | 'password.required' => 'Kata sandi wajib diisi!', 24 | 'password.min' => 'Kata sandi setidaknya 6 karakter!', 25 | ]); 26 | if($validator->fails()){ 27 | return back()->withErrors($validator); 28 | } 29 | $credentials = ['email' => request()->email, 'password' => request()->password]; 30 | auth('seller')->attempt($credentials); 31 | if(auth('seller')->check()){ 32 | return redirect()->intended(route('seller.dashboard')); 33 | } 34 | return back()->withErrors('Email atau kata sandi salah!'); 35 | } 36 | public function logout(){ 37 | auth('seller')->logout(); 38 | return redirect()->route('seller.login'); 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /app/Http/Requests/ProductRequest.php: -------------------------------------------------------------------------------- 1 | 'required', 28 | 'images' => 'nullable|file|mimes:png,jpg,jpeg', 29 | 'price' => 'required|numeric|between:500,10000000', 30 | 'category_id' => 'required', 31 | 'description' => 'required', 32 | 'tags.*' => 'nullable', 33 | ]; 34 | } 35 | public function messages() 36 | { 37 | return [ 38 | 'name.required' => 'Nama produk wajib diisi!', 39 | 'images.file' => 'Foto produk harus berupa gambar', 40 | 'images.file' => 'Foto produk harus berupa gambar (png,jpg,jpeg)', 41 | 'price.required' => 'Harga produk wajib diisi!', 42 | 'price.numeric' => 'Harga produk harus berupa angka!', 43 | 'price.digits_between' => 'Harga produk setidaknya Rp.500 - Rp.10.000.000', 44 | 'category.required' => 'Kategori produk wajib diisi!', 45 | 'description.required' => 'Deskripsi produk wajib diisi!', 46 | ]; 47 | } 48 | } 49 | -------------------------------------------------------------------------------- /resources/views/vendor/adminlte/partials/navbar/navbar.blade.php: -------------------------------------------------------------------------------- 1 | 41 | -------------------------------------------------------------------------------- /resources/lang/vendor/adminlte/en/adminlte.php: -------------------------------------------------------------------------------- 1 | 'Full name', 6 | 'email' => 'Email', 7 | 'password' => 'Password', 8 | 'retype_password' => 'Retype password', 9 | 'remember_me' => 'Remember Me', 10 | 'register' => 'Register', 11 | 'register_a_new_membership' => 'Register a new membership', 12 | 'i_forgot_my_password' => 'I forgot my password', 13 | 'i_already_have_a_membership' => 'I already have a membership', 14 | 'sign_in' => 'Sign In', 15 | 'log_out' => 'Log Out', 16 | 'toggle_navigation' => 'Toggle navigation', 17 | 'login_message' => 'Sign in to start your session', 18 | 'register_message' => 'Register a new membership', 19 | 'password_reset_message' => 'Reset Password', 20 | 'reset_password' => 'Reset Password', 21 | 'send_password_reset_link' => 'Send Password Reset Link', 22 | 'verify_message' => 'Your account needs a verification', 23 | 'verify_email_sent' => 'A fresh verification link has been sent to your email address.', 24 | 'verify_check_your_email' => 'Before proceeding, please check your email for a verification link.', 25 | 'verify_if_not_recieved' => 'If you did not receive the email', 26 | 'verify_request_another' => 'click here to request another', 27 | 'confirm_password_message' => 'Please, confirm your password to continue.', 28 | ]; 29 | -------------------------------------------------------------------------------- /database/migrations/2020_10_28_082106_create_sellers_table.php: -------------------------------------------------------------------------------- 1 | id(); 18 | $table->foreignId('category_id')->references('id')->on('category_sellers'); 19 | $table->bigInteger('province_id')->nullable(); 20 | $table->bigInteger('regency_id')->nullable(); 21 | $table->bigInteger('district_id')->nullable(); 22 | $table->bigInteger('village_id')->nullable(); 23 | $table->smallInteger('status')->default('0'); /* 0 = Polos, 1 = Sudah verif email, 2 = peringatan, 3 = Banned */ 24 | $table->smallInteger('is_verified')->default('0'); /* 0 = Belum verif, 1 = Badge verif */ 25 | $table->string('email')->unique(); 26 | $table->string('password'); 27 | $table->string('name')->nullable(); 28 | $table->string('slug')->nullable(); 29 | $table->string('whatsapp')->nullable(); 30 | $table->text('description')->nullable(); 31 | $table->timestamps(); 32 | }); 33 | } 34 | 35 | /** 36 | * Reverse the migrations. 37 | * 38 | * @return void 39 | */ 40 | public function down() 41 | { 42 | Schema::dropIfExists('sellers'); 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /resources/lang/vendor/adminlte/id/adminlte.php: -------------------------------------------------------------------------------- 1 | 'Nama lengkap', 6 | 'email' => 'Email', 7 | 'password' => 'Kata sandi', 8 | 'retype_password' => 'Ketik ulang kata sandi', 9 | 'remember_me' => 'Ingat Saya', 10 | 'register' => 'Daftar', 11 | 'register_a_new_membership' => 'Daftar sebagai anggota baru', 12 | 'i_forgot_my_password' => 'Saya lupa kata sandi', 13 | 'i_already_have_a_membership' => 'Saya telah menjadi anggota', 14 | 'sign_in' => 'Masuk', 15 | 'log_out' => 'Keluar', 16 | 'toggle_navigation' => 'Toggle navigasi', 17 | 'login_message' => 'Masuk untuk memulai sesi Anda', 18 | 'register_message' => 'Daftar sebagai anggota baru', 19 | 'password_reset_message' => 'Atur Ulang Kata Sandi', 20 | 'reset_password' => 'Atur Ulang Kata Sandi', 21 | 'send_password_reset_link' => 'Kirim Tautan Atur Ulang Kata Sandi', 22 | 'verify_message' => 'Akun Anda membutuhkan verifikasi', 23 | 'verify_email_sent' => 'Tautan verifikasi baru telah dikirimkan ke email Anda.', 24 | 'verify_check_your_email' => 'Sebelum melanjutkan, periksa email Anda untuk tautan verifikasi.', 25 | 'verify_if_not_recieved' => 'Jika Anda tidak menerima email', 26 | 'verify_request_another' => 'klik disini untuk meminta ulang', 27 | 'confirm_password_message' => 'Konfirmasi kata sandi Anda untuk melanjutkan', 28 | ]; 29 | -------------------------------------------------------------------------------- /resources/views/website/master.blade.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | @yield('title', 'Toko Online WhatsApp') 8 | {{-- Fontawesome --}} 9 | 10 | {{-- Bootstrap --}} 11 | 12 | @yield('css') 13 | 14 | 15 | @include('website.layouts.navbar') 16 | @yield('content') 17 | {{-- Jquery --}} 18 | 19 | {{-- Boostrap Bundle --}} 20 | 21 | {{-- Swal --}} 22 | 23 | @yield('js') 24 | 25 | 26 | -------------------------------------------------------------------------------- /resources/lang/vendor/adminlte/tr/adminlte.php: -------------------------------------------------------------------------------- 1 | 'Ad ve Soyadı', 6 | 'email' => 'E-Posta Adresi', 7 | 'password' => 'Parola', 8 | 'retype_password' => 'Yeniden Parola', 9 | 'remember_me' => 'Beni Hatırla', 10 | 'register' => 'Kaydol', 11 | 'register_a_new_membership' => 'Yeni üye kaydı', 12 | 'i_forgot_my_password' => 'Parolamı unuttum', 13 | 'i_already_have_a_membership' => 'Zaten üye kaydım var', 14 | 'sign_in' => 'Giriş Yap', 15 | 'log_out' => 'Çıkış Yap', 16 | 'toggle_navigation' => 'Ana menüyü aç/kapa', 17 | 'login_message' => 'Oturumunuzu devam ettirmek için giriş yapmalısınız', 18 | 'register_message' => 'Yeni üye kaydı oluştur', 19 | 'password_reset_message' => 'Parola Sıfırlama', 20 | 'reset_password' => 'Parola Sıfırlama', 21 | 'send_password_reset_link' => 'Parola Sıfırlama Linki Gönder', 22 | 'verify_message' => 'Hesabınızın doğrulanmaya ihtiyacı var', 23 | 'verify_email_sent' => 'Hesap doğrulama linki E-posta adresinize gönderildi.', 24 | 'verify_check_your_email' => 'İşlemlere devam etmeden önce doğrulama linki için e-posta adresinizi kontrol edin.', 25 | 'verify_if_not_recieved' => 'Eğer doğrulama e-postası adresinize ulaşmadıysa', 26 | 'verify_request_another' => 'buraya tıklayarak yeni bir doğrulama linki talep edebilirsiniz', 27 | 'confirm_password_message' => 'Devam etmek için lütfen parolanızı doğrulayın.', 28 | 29 | ]; 30 | -------------------------------------------------------------------------------- /resources/lang/vendor/adminlte/es/adminlte.php: -------------------------------------------------------------------------------- 1 | 'Nombre completo', 6 | 'email' => 'Email', 7 | 'password' => 'Contraseña', 8 | 'retype_password' => 'Confirmar la contraseña', 9 | 'remember_me' => 'Recordarme', 10 | 'register' => 'Registrarse', 11 | 'register_a_new_membership' => 'Crear una nueva cuenta', 12 | 'i_forgot_my_password' => 'Olvidé mi contraseña', 13 | 'i_already_have_a_membership' => 'Ya tengo una cuenta', 14 | 'sign_in' => 'Acceder', 15 | 'log_out' => 'Salir', 16 | 'toggle_navigation' => 'Alternar barra de navegación', 17 | 'login_message' => 'Autenticarse para iniciar sesión', 18 | 'register_message' => 'Crear una nueva cuenta', 19 | 'password_reset_message' => 'Restablecer la contraseña', 20 | 'reset_password' => 'Restablecer la contraseña', 21 | 'send_password_reset_link' => 'Enviar enlace para restablecer la contraseña', 22 | 'verify_message' => 'Tu cuenta necesita una verificación', 23 | 'verify_email_sent' => 'Se ha enviado un nuevo enlace de verificación a su correo electrónico.', 24 | 'verify_check_your_email' => 'Antes de continuar, busque en su correo electrónico un enlace de verificación.', 25 | 'verify_if_not_recieved' => 'Si no has recibido el correo electrónico', 26 | 'verify_request_another' => 'haga clic aquí para solicitar otro', 27 | 'confirm_password_message' => 'Por favor, confirme su contraseña para continuar.', 28 | ]; 29 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /resources/lang/vendor/adminlte/de/adminlte.php: -------------------------------------------------------------------------------- 1 | 'Vollständiger Name', 6 | 'email' => 'E-Mail', 7 | 'password' => 'Passwort', 8 | 'retype_password' => 'Passwort bestätigen', 9 | 'remember_me' => 'Angemeldet bleiben', 10 | 'register' => 'Registrieren', 11 | 'register_a_new_membership' => 'Ein neues Konto registrieren', 12 | 'i_forgot_my_password' => 'Ich habe mein Passwort vergessen', 13 | 'i_already_have_a_membership' => 'Ich bin bereits registriert', 14 | 'sign_in' => 'Anmelden', 15 | 'log_out' => 'Abmelden', 16 | 'toggle_navigation' => 'Navigation umschalten', 17 | 'login_message' => 'Bitte melden Sie sich an, um auf den geschützten Bereich zuzugreifen', 18 | 'register_message' => 'Bitte füllen Sie das Formular aus, um ein neues Konto zu registrieren', 19 | 'password_reset_message' => 'Bitte geben Sie Ihre E-Mail Adresse ein, um Ihr Passwort zurückzusetzen', 20 | 'reset_password' => 'Passwort zurücksetzen', 21 | 'send_password_reset_link' => 'Link zur Passwortwiederherstellung senden', 22 | 'verify_message' => 'Ihr Account muss noch bestätigt werden', 23 | 'verify_email_sent' => 'Es wurde ein neuer Bestätigungslink an Ihre E-Mail Adresse gesendet.', 24 | 'verify_check_your_email' => 'Bevor Sie fortfahren, überprüfen Sie bitte Ihre E-Mail auf einen Bestätigungslink.', 25 | 'verify_if_not_recieved' => 'Wenn Sie die E-Mail nicht empfangen haben', 26 | 'verify_request_another' => 'klicken Sie hier, um eine neue E-Mail anzufordern', 27 | ]; 28 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /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": "^8.2", 12 | "guzzlehttp/guzzle": "^7.0.1", 13 | "jeroennoten/laravel-adminlte": "^3.12", 14 | "laravel/framework": "^12.0", 15 | "laravel/tinker": "^2.0", 16 | "laravel/ui": "^4.0" 17 | }, 18 | "require-dev": { 19 | "spatie/laravel-ignition": "^2.0", 20 | "laravel/sanctum": "^4.0", 21 | "doctrine/dbal" : "^3.0", 22 | "mockery/mockery": "^1.3.1", 23 | "nunomaduro/collision": "^8.1", 24 | "phpunit/phpunit": "^11.0", 25 | "laravel/passport" : "^12.0" 26 | }, 27 | "config": { 28 | "optimize-autoloader": true, 29 | "preferred-install": "dist", 30 | "sort-packages": true 31 | }, 32 | "extra": { 33 | "laravel": { 34 | "dont-discover": [] 35 | } 36 | }, 37 | "autoload": { 38 | "psr-4": { 39 | "App\\": "app/" 40 | }, 41 | "classmap": [ 42 | "database/seeds", 43 | "database/factories" 44 | ] 45 | }, 46 | "autoload-dev": { 47 | "psr-4": { 48 | "Tests\\": "tests/" 49 | } 50 | }, 51 | "minimum-stability": "stable", 52 | "prefer-stable": true, 53 | "scripts": { 54 | "post-autoload-dump": [ 55 | "Illuminate\\Foundation\\ComposerScripts::postAutoloadDump", 56 | "@php artisan package:discover --ansi" 57 | ], 58 | "post-root-package-install": [ 59 | "@php -r \"file_exists('.env') || copy('.env.example', '.env');\"" 60 | ], 61 | "post-create-project-cmd": [ 62 | "@php artisan key:generate --ansi" 63 | ] 64 | } 65 | } 66 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /resources/views/vendor/adminlte/auth/passwords/email.blade.php: -------------------------------------------------------------------------------- 1 | @extends('adminlte::auth.auth-page', ['auth_type' => 'login']) 2 | 3 | @php( $password_email_url = View::getSection('password_email_url') ?? config('adminlte.password_email_url', 'password/email') ) 4 | 5 | @if (config('adminlte.use_route_url', false)) 6 | @php( $password_email_url = $password_email_url ? route($password_email_url) : '' ) 7 | @else 8 | @php( $password_email_url = $password_email_url ? url($password_email_url) : '' ) 9 | @endif 10 | 11 | @section('auth_header', __('adminlte::adminlte.password_reset_message')) 12 | 13 | @section('auth_body') 14 | 15 | @if(session('status')) 16 |
    17 | {{ session('status') }} 18 |
    19 | @endif 20 | 21 |
    22 | {{ csrf_field() }} 23 | 24 | {{-- Email field --}} 25 |
    26 | 28 |
    29 |
    30 | 31 |
    32 |
    33 | @if($errors->has('email')) 34 |
    35 | {{ $errors->first('email') }} 36 |
    37 | @endif 38 |
    39 | 40 | {{-- Send reset link button --}} 41 | 45 | 46 |
    47 | 48 | @stop 49 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /resources/views/vendor/adminlte/auth/auth-page.blade.php: -------------------------------------------------------------------------------- 1 | @extends('adminlte::master') 2 | 3 | @php( $dashboard_url = View::getSection('dashboard_url') ?? config('adminlte.dashboard_url', 'home') ) 4 | 5 | @if (config('adminlte.use_route_url', false)) 6 | @php( $dashboard_url = $dashboard_url ? route($dashboard_url) : '' ) 7 | @else 8 | @php( $dashboard_url = $dashboard_url ? url($dashboard_url) : '' ) 9 | @endif 10 | 11 | @section('adminlte_css') 12 | @stack('css') 13 | @yield('css') 14 | @stop 15 | 16 | @section('classes_body'){{ ($auth_type ?? 'login') . '-page' }}@stop 17 | 18 | @section('body') 19 |
    20 | 21 | {{-- Logo --}} 22 | 28 | 29 | {{-- Card Box --}} 30 |
    31 | 32 | {{-- Card Header --}} 33 | @hasSection('auth_header') 34 |
    35 |

    36 | @yield('auth_header') 37 |

    38 |
    39 | @endif 40 | 41 | {{-- Card Body --}} 42 |
    43 | @yield('auth_body') 44 |
    45 | 46 | {{-- Card Footer --}} 47 | @hasSection('auth_footer') 48 | 51 | @endif 52 | 53 |
    54 | 55 |
    56 | @stop 57 | 58 | @section('adminlte_js') 59 | @stack('js') 60 | @yield('js') 61 | @stop 62 | -------------------------------------------------------------------------------- /app/Exceptions/Handler.php: -------------------------------------------------------------------------------- 1 | expectsJson()) { 60 | return response()->json(['error' => 'Unauthenticated.'], 401); 61 | } 62 | 63 | $guard = Arr::get($exception->guards(), 0); 64 | 65 | $route = 'login'; 66 | switch ($guard) { 67 | case 'admin': 68 | $route = 'admin.login'; 69 | break; 70 | case 'seller': 71 | $route = 'seller.login'; 72 | break; 73 | case 'buyer': 74 | default: 75 | $route = 'login'; 76 | break; 77 | } 78 | return redirect()->route($route); 79 | } 80 | } 81 | -------------------------------------------------------------------------------- /resources/views/vendor/adminlte/page.blade.php: -------------------------------------------------------------------------------- 1 | @extends('adminlte::master') 2 | 3 | @inject('layoutHelper', \JeroenNoten\LaravelAdminLte\Helpers\LayoutHelper) 4 | 5 | @if($layoutHelper->isLayoutTopnavEnabled()) 6 | @php( $def_container_class = 'container' ) 7 | @else 8 | @php( $def_container_class = 'container-fluid' ) 9 | @endif 10 | 11 | @section('adminlte_css') 12 | @stack('css') 13 | @yield('css') 14 | @stop 15 | 16 | @section('classes_body', $layoutHelper->makeBodyClasses()) 17 | 18 | @section('body_data', $layoutHelper->makeBodyData()) 19 | 20 | @section('body') 21 |
    22 | 23 | {{-- Top Navbar --}} 24 | @if($layoutHelper->isLayoutTopnavEnabled()) 25 | @include('adminlte::partials.navbar.navbar-layout-topnav') 26 | @else 27 | @include('adminlte::partials.navbar.navbar') 28 | @endif 29 | 30 | {{-- Left Main Sidebar --}} 31 | @if(!$layoutHelper->isLayoutTopnavEnabled()) 32 | @include('adminlte::partials.sidebar.left-sidebar') 33 | @endif 34 | 35 | {{-- Content Wrapper --}} 36 |
    37 | 38 | {{-- Content Header --}} 39 |
    40 |
    41 | @yield('content_header') 42 |
    43 |
    44 | 45 | {{-- Main Content --}} 46 |
    47 |
    48 | @yield('content') 49 |
    50 |
    51 | 52 |
    53 | 54 | {{-- Footer --}} 55 | @hasSection('footer') 56 | @include('adminlte::partials.footer.footer') 57 | @endif 58 | 59 | {{-- Right Control Sidebar --}} 60 | @if(config('adminlte.right_sidebar')) 61 | @include('adminlte::partials.sidebar.right-sidebar') 62 | @endif 63 | 64 |
    65 | @stop 66 | 67 | @section('adminlte_js') 68 | @stack('js') 69 | @yield('js') 70 | @stop 71 | -------------------------------------------------------------------------------- /app/Http/Controllers/Auth/RegisterController.php: -------------------------------------------------------------------------------- 1 | middleware('guest'); 42 | } 43 | 44 | /** 45 | * Get a validator for an incoming registration request. 46 | * 47 | * @param array $data 48 | * @return \Illuminate\Contracts\Validation\Validator 49 | */ 50 | protected function validator(array $data) 51 | { 52 | return Validator::make($data, [ 53 | 'name' => ['required', 'string', 'max:255'], 54 | 'email' => ['required', 'string', 'email', 'max:255', 'unique:users'], 55 | 'password' => ['required', 'string', 'min:8', 'confirmed'], 56 | ]); 57 | } 58 | 59 | /** 60 | * Create a new user instance after a valid registration. 61 | * 62 | * @param array $data 63 | * @return \App\User 64 | */ 65 | protected function create(array $data) 66 | { 67 | return User::create([ 68 | 'name' => $data['name'], 69 | 'email' => $data['email'], 70 | 'password' => Hash::make($data['password']), 71 | ]); 72 | } 73 | } 74 | -------------------------------------------------------------------------------- /app/Http/Controllers/Seller/RegisterController.php: -------------------------------------------------------------------------------- 1 | 'required|min:3|max:35', 21 | 'email' => 'required|email|unique:sellers', 22 | 'password' => 'required|confirmed', 23 | 'aggree' => 'required', 24 | ]; 25 | $messages = [ 26 | 'name.required' => 'Nama toko wajib diisi!', 27 | 'name.min' => 'Nama toko setidaknya memiliki 3 karakter', 28 | 'name.max' => 'Nama toko maksimal 35 karakter', 29 | 'email.required' => 'Email wajib diisi', 30 | 'email.email' => 'Email tidak valid, periksa kembali!', 31 | 'email.unique' => 'Maaf, email sudah terdaftar. Masuk', 32 | 'password.required' => 'Kata sandi wajib diisi', 33 | 'password.confirmed' => 'Konfirmasi kata sandi tidak cocok, periksa kembali!', 34 | 'aggree.required' => 'Anda harus menyetujui S&K yang berlaku!', 35 | ]; 36 | $validator = Validator::make(request()->all(),$rules,$messages); 37 | if($validator->fails()){ 38 | return back()->withErrors($validator); 39 | } 40 | try{ 41 | Seller::create([ 42 | 'slug' => Str::slug(request()->name).'-'.rand(99,999), 43 | 'name' => ucwords(Str::lower(request()->name)), 44 | 'email' => Str::lower(request()->email), 45 | 'password' => Hash::make(request()->password), 46 | ]); 47 | }catch(Exception $e){ 48 | return back()->withErrors('Invalid server error!'. $e->getMessage()); 49 | } 50 | return back()->withSuccess('Akun Anda Telah Terdaftar, Periksa Email Anda Untuk Konfirmasi Alamat Email'); 51 | } 52 | } 53 | -------------------------------------------------------------------------------- /resources/views/vendor/adminlte/partials/navbar/navbar-layout-topnav.blade.php: -------------------------------------------------------------------------------- 1 | 58 | -------------------------------------------------------------------------------- /app/Http/Kernel.php: -------------------------------------------------------------------------------- 1 | [ 31 | \App\Http\Middleware\EncryptCookies::class, 32 | \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class, 33 | \Illuminate\Session\Middleware\StartSession::class, 34 | // \Illuminate\Session\Middleware\AuthenticateSession::class, 35 | \Illuminate\View\Middleware\ShareErrorsFromSession::class, 36 | \App\Http\Middleware\VerifyCsrfToken::class, 37 | \Illuminate\Routing\Middleware\SubstituteBindings::class, 38 | ], 39 | 40 | 'api' => [ 41 | 'throttle:60,1', 42 | \Illuminate\Routing\Middleware\SubstituteBindings::class, 43 | ], 44 | ]; 45 | 46 | /** 47 | * The application's route middleware. 48 | * 49 | * These middleware may be assigned to groups or used individually. 50 | * 51 | * @var array 52 | */ 53 | protected $routeMiddleware = [ 54 | 'auth' => \App\Http\Middleware\Authenticate::class, 55 | 'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class, 56 | 'bindings' => \Illuminate\Routing\Middleware\SubstituteBindings::class, 57 | 'cache.headers' => \Illuminate\Http\Middleware\SetCacheHeaders::class, 58 | 'can' => \Illuminate\Auth\Middleware\Authorize::class, 59 | 'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class, 60 | 'password.confirm' => \Illuminate\Auth\Middleware\RequirePassword::class, 61 | 'signed' => \Illuminate\Routing\Middleware\ValidateSignature::class, 62 | 'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class, 63 | 'verified' => \Illuminate\Auth\Middleware\EnsureEmailIsVerified::class, 64 | ]; 65 | } 66 | -------------------------------------------------------------------------------- /app/Http/Controllers/Seller/ProductController.php: -------------------------------------------------------------------------------- 1 | user()->id) 15 | ->latest() 16 | ->paginate(6); 17 | return view('website.seller.product.index', compact('product')); 18 | } 19 | public function create(){ 20 | return view('website.seller.product.create'); 21 | } 22 | public function store(ProductRequest $request){ 23 | $model = new Product(); 24 | $attr = $request->validated(); 25 | $attr['seller_id'] = auth('seller')->user()->id; 26 | $attr['slug'] = Str::slug($attr['name']).'-'.$this->slug_suffle(); 27 | if($request->has('images')){ 28 | $attr['images'] = $model->handleFoto($request); 29 | } 30 | try{ 31 | $model->create($attr); 32 | return back()->withSuccess('Produk baru telah ditambahkan!'); 33 | }catch(Exception $e){ 34 | return back()->withErrors('Error : '.$e->getMessage()); 35 | } 36 | } 37 | public function edit(Product $product){ 38 | $this->checkUser($product); 39 | return view('website.seller.product.edit', compact('product')); 40 | } 41 | public function update(ProductRequest $request, Product $product){ 42 | $model = new Product(); 43 | $this->checkUser($product); 44 | $attr = $request->validated(); 45 | if($request->has('images')){ 46 | $attr['images'] = $model->updateFoto($request, $product->images); 47 | } 48 | try{ 49 | $product->update($attr); 50 | return back()->withSuccess('Produk baru telah diubah!'); 51 | }catch(Exception $e){ 52 | return back()->withErrors('Error : '.$e->getMessage()); 53 | } 54 | } 55 | public function destroy(Product $product){ 56 | $this->checkUser($product); 57 | try{ 58 | $product->delete(); 59 | return back()->withSuccess('Produk telah dihapus!'); 60 | }catch(Exception $e){ 61 | return back()->withErrors('Error: '.$e->getMessage()); 62 | } 63 | } 64 | /* */ 65 | public function slug_suffle(){ 66 | $str = rand(100,999).Str::random(3); 67 | $str = str_shuffle($str); 68 | return $str; 69 | } 70 | public function checkUser($product){ 71 | if(auth('seller')->user()->id != $product->seller_id){ /* Mencegah user menghapus product bukan miliknya */ 72 | abort(404); 73 | } 74 | } 75 | } 76 | -------------------------------------------------------------------------------- /resources/views/website/layouts/navbar.blade.php: -------------------------------------------------------------------------------- 1 | 55 | -------------------------------------------------------------------------------- /config/filesystems.php: -------------------------------------------------------------------------------- 1 | env('FILESYSTEM_DRIVER', 'public'), 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/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 | -------------------------------------------------------------------------------- /resources/views/website/seller/login.blade.php: -------------------------------------------------------------------------------- 1 | @extends('website.master') 2 | @section('title', 'Landing Page') 3 | @section('content') 4 |
    5 |
    6 |
    7 |
    8 |

    Login

    9 |

    Lorem ipsum dolor sit amet consectetur adipisicing elit. Dolor quo sunt eos ab voluptas quas unde sit provident non rerum commodi officia et hic, veniam eum. Ab minima aliquam impedit! Fugiat itaque laboriosam expedita at laborum, ipsa omnis nulla officiis quas eos vel laudantium quidem natus dolore ducimus nemo? Corporis architecto facere debitis consectetur voluptatem cumque harum, facilis, blanditiis excepturi quae maxime minus doloremque doloribus! Sapiente necessitatibus est ratione. Explicabo delectus magnam minus expedita optio debitis maiores fugiat ducimus temporibus!

    10 |
    11 |
    12 |
    13 |
    14 |

    Masuk sebagai Penjual

    15 |
    16 |
    17 | @if (session()->has('errors')) 18 | @foreach (json_decode(session()->get('errors'),1) as $item) 19 |

    20 | {!!$item[0]!!} 21 |

    22 | @endforeach 23 | @endif 24 |
    25 | @csrf 26 |
    27 | 28 | 29 |
    30 |
    31 | 32 | 33 |
    34 |
    35 |

    36 | Belum punya akun? Daftar. 37 |

    38 |
    39 | Kembali 40 | 43 |
    44 |
    45 |
    46 |
    47 |
    48 |
    49 |
    50 |
    51 |
    52 | 53 | @endsection 54 | -------------------------------------------------------------------------------- /routes/web.php: -------------------------------------------------------------------------------- 1 | 'seller'], function () { 20 | Route::get('login', 'App\Http\Controllers\Seller\LoginController@index')->name('seller.login'); 21 | Route::get('logout', 'Seller\LoginController@logout')->name('seller.logout'); 22 | Route::post('login', 'Seller\LoginController@login'); 23 | Route::get('register', 'Seller\RegisterController@index')->name('seller.register'); 24 | Route::post('register', 'Seller\RegisterController@register'); 25 | Route::group(['middleware' => ['auth:seller']], function () { 26 | Route::get('dashboard', 'Seller\DashboardController@index')->name('seller.dashboard'); 27 | // Product 28 | Route::get('product', 'Seller\ProductController@index')->name('seller.product'); 29 | Route::get('product/create', 'Seller\ProductController@create')->name('seller.product.create'); 30 | Route::post('product', 'Seller\ProductController@store')->name('seller.product.store'); 31 | Route::get('product/{product:slug}/edit', 'Seller\ProductController@edit'); 32 | Route::patch('product/{product:slug}', 'Seller\ProductController@update'); 33 | Route::delete('product/{product:slug}', 'Seller\ProductController@destroy'); 34 | 35 | Route::get('profile', 'Seller\ProfileController@index')->name('seller.profile'); 36 | Route::get('setting', 'Seller\SettingController@index')->name('seller.setting'); 37 | }); 38 | }); 39 | Route::group(['prefix' => 'buyer'], function () { 40 | Route::get('login', 'App\Http\Controllers\Buyer\LoginController@index')->name('login'); 41 | Route::get('logout', 'Buyer\LoginController@index')->name('logout'); 42 | 43 | }); 44 | Route::group(['prefix' => 'admin-panel'], function () { 45 | /* Login */ 46 | Route::get('login', 'Auth\LoginController@showLoginForm')->name('admin.login'); 47 | Route::post('login', 'Auth\LoginController@login'); 48 | /* Logout */ 49 | Route::post('logout', 'Auth\LoginController@logout'); 50 | Route::get('logout', 'Auth\LoginController@logout'); 51 | /* Forgot Password */ 52 | Route::match(['get', 'head'], 'password/confirm', 'Auth\ConfirmPasswordController@showConfirmForm'); 53 | Route::post('password/confirm', 'Auth\ConfirmPasswordController@confirm'); 54 | Route::post('password/email', 'Auth\ForgotPasswordController@sendResetLinkEmail'); 55 | Route::match(['get', 'head'], 'password/reset', 'Auth\ForgotPasswordController@showLinkRequestForm')->name('password.request'); 56 | Route::post('password/reset', 'Auth\ForgotPasswordController@reset')->name('password.update'); 57 | Route::match(['get', 'head'], 'password/reset/{token}', 'Auth\ForgotPasswordController@showResetForm')->name('password.reset'); 58 | }); 59 | Route::get('admin-panel', 'HomeController@index')->name('home'); 60 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /resources/views/welcome.blade.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Laravel 8 | 9 | 10 | 11 | 12 | 13 | 65 | 66 | 67 |
    68 | @if (Route::has('login')) 69 | 80 | @endif 81 | 82 |
    83 |
    84 | Laravel 85 |
    86 | 87 | 97 |
    98 |
    99 | 100 | 101 | -------------------------------------------------------------------------------- /resources/views/vendor/adminlte/auth/passwords/confirm.blade.php: -------------------------------------------------------------------------------- 1 | @extends('adminlte::master') 2 | 3 | @section('adminlte_css') 4 | @yield('css') 5 | @stop 6 | 7 | @section('classes_body', 'lockscreen') 8 | 9 | @php( $password_reset_url = View::getSection('password_reset_url') ?? config('adminlte.password_reset_url', 'password/reset') ) 10 | @php( $dashboard_url = View::getSection('dashboard_url') ?? config('adminlte.dashboard_url', 'home') ) 11 | 12 | @if (config('adminlte.use_route_url', false)) 13 | @php( $password_reset_url = $password_reset_url ? route($password_reset_url) : '' ) 14 | @php( $dashboard_url = $dashboard_url ? route($dashboard_url) : '' ) 15 | @else 16 | @php( $password_reset_url = $password_reset_url ? url($password_reset_url) : '' ) 17 | @php( $dashboard_url = $dashboard_url ? url($dashboard_url) : '' ) 18 | @endif 19 | 20 | @section('body') 21 |
    22 | 23 | {{-- Lockscreen logo --}} 24 | 30 | 31 | {{-- Lockscreen user name --}} 32 |
    33 | {{ isset(Auth::user()->name) ? Auth::user()->name : Auth::user()->email }} 34 |
    35 | 36 | {{-- Lockscreen item --}} 37 |
    38 | @if(config('adminlte.usermenu_image')) 39 |
    40 | {{ Auth::user()->name }} 41 |
    42 | @endif 43 | 44 |
    46 | @csrf 47 | 48 |
    49 | 52 |
    53 | 56 |
    57 |
    58 | 59 |
    60 |
    61 | 62 | {{-- Password error alert --}} 63 | @error('password') 64 | 67 | @enderror 68 | 69 | {{-- Help block --}} 70 |
    71 | {{ __('adminlte::adminlte.confirm_password_message') }} 72 |
    73 | 74 | {{-- Additional links --}} 75 |
    76 | 77 | {{ __('adminlte::adminlte.i_forgot_my_password') }} 78 | 79 |
    80 | 81 |
    82 | @stop 83 | 84 | @section('adminlte_js') 85 | @stack('js') 86 | @yield('js') 87 | @stop 88 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /resources/views/vendor/adminlte/auth/passwords/reset.blade.php: -------------------------------------------------------------------------------- 1 | @extends('adminlte::auth.auth-page', ['auth_type' => 'login']) 2 | 3 | @php( $password_reset_url = View::getSection('password_reset_url') ?? config('adminlte.password_reset_url', 'password/reset') ) 4 | 5 | @if (config('adminlte.use_route_url', false)) 6 | @php( $password_reset_url = $password_reset_url ? route($password_reset_url) : '' ) 7 | @else 8 | @php( $password_reset_url = $password_reset_url ? url($password_reset_url) : '' ) 9 | @endif 10 | 11 | @section('auth_header', __('adminlte::adminlte.password_reset_message')) 12 | 13 | @section('auth_body') 14 |
    15 | {{ csrf_field() }} 16 | 17 | {{-- Token field --}} 18 | 19 | 20 | {{-- Email field --}} 21 |
    22 | 24 |
    25 |
    26 | 27 |
    28 |
    29 | @if($errors->has('email')) 30 |
    31 | {{ $errors->first('email') }} 32 |
    33 | @endif 34 |
    35 | 36 | {{-- Password field --}} 37 |
    38 | 41 |
    42 |
    43 | 44 |
    45 |
    46 | @if($errors->has('password')) 47 |
    48 | {{ $errors->first('password') }} 49 |
    50 | @endif 51 |
    52 | 53 | {{-- Password confirmation field --}} 54 |
    55 | 58 |
    59 |
    60 | 61 |
    62 |
    63 | @if($errors->has('password_confirmation')) 64 |
    65 | {{ $errors->first('password_confirmation') }} 66 |
    67 | @endif 68 |
    69 | 70 | {{-- Confirm password reset button --}} 71 | 75 | 76 |
    77 | @stop 78 | -------------------------------------------------------------------------------- /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', 'hello@example.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 | -------------------------------------------------------------------------------- /resources/views/layouts/app.blade.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | {{ config('app.name', 'Laravel') }} 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 |
    24 | 74 | 75 |
    76 | @yield('content') 77 |
    78 |
    79 | 80 | 81 | -------------------------------------------------------------------------------- /resources/views/vendor/adminlte/partials/navbar/menu-item-dropdown-user-menu.blade.php: -------------------------------------------------------------------------------- 1 | @php( $logout_url = View::getSection('logout_url') ?? config('adminlte.logout_url', 'logout') ) 2 | @php( $profile_url = View::getSection('profile_url') ?? config('adminlte.profile_url', 'logout') ) 3 | 4 | @if (config('adminlte.usermenu_profile_url', false)) 5 | @php( $profile_url = Auth::user()->adminlte_profile_url() ) 6 | @endif 7 | 8 | @if (config('adminlte.use_route_url', false)) 9 | @php( $profile_url = $profile_url ? route($profile_url) : '' ) 10 | @php( $logout_url = $logout_url ? route($logout_url) : '' ) 11 | @else 12 | @php( $profile_url = $profile_url ? url($profile_url) : '' ) 13 | @php( $logout_url = $logout_url ? url($logout_url) : '' ) 14 | @endif 15 | 16 | 87 | -------------------------------------------------------------------------------- /public/vendor/popper/umd/popper.js.flow: -------------------------------------------------------------------------------- 1 | // @flow 2 | 3 | export type Position = 'top' | 'right' | 'bottom' | 'left'; 4 | 5 | export type Placement = 6 | | 'auto-start' 7 | | 'auto' 8 | | 'auto-end' 9 | | 'top-start' 10 | | 'top' 11 | | 'top-end' 12 | | 'right-start' 13 | | 'right' 14 | | 'right-end' 15 | | 'bottom-end' 16 | | 'bottom' 17 | | 'bottom-start' 18 | | 'left-end' 19 | | 'left' 20 | | 'left-start'; 21 | 22 | export type Offset = { 23 | top: number, 24 | left: number, 25 | width: number, 26 | height: number, 27 | position: Position, 28 | }; 29 | 30 | export type Boundary = 'scrollParent' | 'viewport' | 'window'; 31 | 32 | export type Behavior = 'flip' | 'clockwise' | 'counterclockwise'; 33 | 34 | export type Data = { 35 | instance: Popper, 36 | placement: Placement, 37 | originalPlacement: Placement, 38 | flipped: boolean, 39 | hide: boolean, 40 | arrowElement: Element, 41 | styles: CSSStyleDeclaration, 42 | arrowStyles: CSSStyleDeclaration, 43 | boundaries: Object, 44 | offsets: { 45 | popper: Offset, 46 | reference: Offset, 47 | arrow: { 48 | top: number, 49 | left: number, 50 | }, 51 | }, 52 | }; 53 | 54 | export type ModifierFn = (data: Data, options: Object) => Data; 55 | 56 | export type Padding = { 57 | top?: number, 58 | bottom?: number, 59 | left?: number, 60 | right?: number, 61 | }; 62 | 63 | export type BaseModifier = { 64 | order?: number, 65 | enabled?: boolean, 66 | fn?: ModifierFn, 67 | }; 68 | 69 | export type Modifiers = { 70 | shift?: BaseModifier, 71 | offset?: BaseModifier & { 72 | offset?: number | string, 73 | }, 74 | preventOverflow?: BaseModifier & { 75 | priority?: Position[], 76 | padding?: number | Padding, 77 | boundariesElement?: Boundary | Element, 78 | escapeWithReference?: boolean, 79 | }, 80 | keepTogether?: BaseModifier, 81 | arrow?: BaseModifier & { 82 | element?: string | Element | null, 83 | }, 84 | flip?: BaseModifier & { 85 | behavior?: Behavior | Position[], 86 | padding?: number | Padding, 87 | boundariesElement?: Boundary | Element, 88 | flipVariations?: boolean, 89 | flipVariationsByContent?: boolean, 90 | }, 91 | inner?: BaseModifier, 92 | hide?: BaseModifier, 93 | applyStyle?: BaseModifier & { 94 | onLoad?: Function, 95 | gpuAcceleration?: boolean, 96 | }, 97 | computeStyle?: BaseModifier & { 98 | gpuAcceleration?: boolean, 99 | x?: 'bottom' | 'top', 100 | y?: 'left' | 'right', 101 | }, 102 | 103 | [name: string]: (BaseModifier & { [string]: * }) | null, 104 | }; 105 | 106 | export type Options = { 107 | placement?: Placement, 108 | positionFixed?: boolean, 109 | eventsEnabled?: boolean, 110 | modifiers?: Modifiers, 111 | removeOnDestroy?: boolean, 112 | 113 | onCreate?: (data: Data) => void, 114 | 115 | onUpdate?: (data: Data) => void, 116 | }; 117 | 118 | export type ReferenceObject = { 119 | +clientHeight: number, 120 | +clientWidth: number, 121 | +referenceNode?: Node, 122 | 123 | getBoundingClientRect(): 124 | | ClientRect 125 | | { 126 | width: number, 127 | height: number, 128 | top: number, 129 | right: number, 130 | bottom: number, 131 | left: number, 132 | }, 133 | }; 134 | 135 | export type Instance = { 136 | destroy: () => void, 137 | scheduleUpdate: () => void, 138 | update: () => void, 139 | enableEventListeners: () => void, 140 | disableEventListeners: () => void, 141 | }; 142 | 143 | declare class Popper { 144 | static placements: Placement; 145 | 146 | popper: Element; 147 | reference: Element | ReferenceObject; 148 | 149 | constructor( 150 | reference: Element | ReferenceObject, 151 | popper: Element, 152 | options?: Options 153 | ): Instance; 154 | } 155 | 156 | declare export default typeof Popper; 157 | --------------------------------------------------------------------------------