From d78b6055f8a0acc6bbb46527e099a628f2075e1b Mon Sep 17 00:00:00 2001 From: HANIF FEBRIANSYAH Date: Thu, 29 Aug 2024 07:51:56 +0700 Subject: [PATCH 1/3] Woke --- .env.example | 64 +++++++++++++++++++ .../Controllers/AdminDataKursusController.php | 25 -------- app/Http/Controllers/PengunjungController.php | 41 ++++++++++++ .../2024_08_25_153939_data_kursus.php | 23 +++---- storage/app/public/.gitignore | 2 - 5 files changed, 117 insertions(+), 38 deletions(-) create mode 100644 .env.example create mode 100644 app/Http/Controllers/PengunjungController.php delete mode 100644 storage/app/public/.gitignore diff --git a/.env.example b/.env.example new file mode 100644 index 0000000..5f0b731 --- /dev/null +++ b/.env.example @@ -0,0 +1,64 @@ +APP_NAME=Laravel +APP_ENV=local +APP_KEY= +APP_DEBUG=true +APP_TIMEZONE=UTC +APP_URL=http://localhost + +APP_LOCALE=en +APP_FALLBACK_LOCALE=en +APP_FAKER_LOCALE=en_US + +APP_MAINTENANCE_DRIVER=file +# APP_MAINTENANCE_STORE=database + +BCRYPT_ROUNDS=12 + +LOG_CHANNEL=stack +LOG_STACK=single +LOG_DEPRECATIONS_CHANNEL=null +LOG_LEVEL=debug + +DB_CONNECTION=sqlite +# DB_HOST=127.0.0.1 +# DB_PORT=3306 +# DB_DATABASE=laravel +# DB_USERNAME=root +# DB_PASSWORD= + +SESSION_DRIVER=database +SESSION_LIFETIME=120 +SESSION_ENCRYPT=false +SESSION_PATH=/ +SESSION_DOMAIN=null + +BROADCAST_CONNECTION=log +FILESYSTEM_DISK=local +QUEUE_CONNECTION=database + +CACHE_STORE=database +CACHE_PREFIX= + +MEMCACHED_HOST=127.0.0.1 + +REDIS_CLIENT=phpredis +REDIS_HOST=127.0.0.1 +REDIS_PASSWORD=null +REDIS_PORT=6379 + +MAIL_MAILER=log +MAIL_HOST=127.0.0.1 +MAIL_PORT=2525 +MAIL_USERNAME=null +MAIL_PASSWORD=null +MAIL_ENCRYPTION=null +MAIL_FROM_ADDRESS="hello@example.com" +MAIL_FROM_NAME="${APP_NAME}" + +AWS_ACCESS_KEY_ID= +AWS_SECRET_ACCESS_KEY= +AWS_DEFAULT_REGION=us-east-1 +AWS_BUCKET= +AWS_USE_PATH_STYLE_ENDPOINT=false + +VITE_APP_NAME="${APP_NAME}" \ No newline at end of file diff --git a/app/Http/Controllers/AdminDataKursusController.php b/app/Http/Controllers/AdminDataKursusController.php index a84c7af..8e6baaa 100644 --- a/app/Http/Controllers/AdminDataKursusController.php +++ b/app/Http/Controllers/AdminDataKursusController.php @@ -36,29 +36,4 @@ public function destroy(string $id) return redirect()->route('admin.dataKursus')->with('success', 'Data berhasil dihapus.'); } - - // PENGUNJUNG - public function home() - { - $landingpage = DataKursus::inRandomOrder()->limit(3)->get(); - return view('user.home', compact('landingpage')); - } - - - public function kursus() - { - $data_kursus = DataKursus::limit(6)->get(); - return view('user.kursus', compact('data_kursus')); - } - public function detail() - { - return view('user.detailKursus'); - } - - - public function maps() - { - $latilongti = DataKursus::all(); - return view('user.peta', compact('latilongti')); - } } diff --git a/app/Http/Controllers/PengunjungController.php b/app/Http/Controllers/PengunjungController.php new file mode 100644 index 0000000..e8632fc --- /dev/null +++ b/app/Http/Controllers/PengunjungController.php @@ -0,0 +1,41 @@ +limit(3)->get(); + return view('user.home', compact('landingpage')); + } + + + public function kursus() + { + $data_kursus = DataKursus::limit(6)->get(); + return view('user.kursus', compact('data_kursus')); + } + + + + public function detail(string $id) + { + $data = DataKursus::find($id); + // dd($data); + $imageNames = json_decode($data->img_konten, true); + return view('user.detailKursus', compact(['data', 'imageNames'])); + } + + + + public function maps() + { + $latilongti = DataKursus::all(); + return view('user.peta', compact('latilongti')); + } +} diff --git a/database/migrations/2024_08_25_153939_data_kursus.php b/database/migrations/2024_08_25_153939_data_kursus.php index a2a1065..6a2cf24 100644 --- a/database/migrations/2024_08_25_153939_data_kursus.php +++ b/database/migrations/2024_08_25_153939_data_kursus.php @@ -12,17 +12,18 @@ public function up() { Schema::create('data_kursus', function (Blueprint $table) { - $table->id(); // Kolom id dengan auto increment - $table->string('nama_kursus'); // Kolom nama_kursus - $table->string('img')->nullable(); // Kolom img (nullable jika tidak wajib diisi) - $table->text('deskripsi'); // Kolom deskripsi - $table->string('paket'); // Kolom paket - $table->string('metode'); // Kolom metode - $table->text('fasilitas'); // Kolom fasilitas - $table->string('lokasi'); // Kolom lokasi - $table->decimal('latitude', 10, 7); // Kolom latitude (10 digit, 7 desimal) - $table->decimal('longtitude', 10, 7); // Kolom longitude (10 digit, 7 desimal) - $table->timestamps(); // Kolom createbed_at dan updated_at + $table->id(); + $table->string('nama_kursus'); + $table->string('img')->nullable(); + $table->longText('deskripsi'); + $table->string('paket'); + $table->string('metode'); + $table->text('fasilitas'); + $table->string('lokasi'); + $table->decimal('latitude', 10, 7); + $table->decimal('longtitude', 10, 7); + $table->json('img_konten')->nullable(); + $table->timestamps(); }); } diff --git a/storage/app/public/.gitignore b/storage/app/public/.gitignore deleted file mode 100644 index d6b7ef3..0000000 --- a/storage/app/public/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -* -!.gitignore From 9805b5de9076e384683acddd4aa2bcd4b2801c6e Mon Sep 17 00:00:00 2001 From: HANIF FEBRIANSYAH Date: Thu, 29 Aug 2024 08:28:08 +0700 Subject: [PATCH 2/3] Proses --- .../views/admin/dataKursusAdmin.blade.php | 7 +- .../admin/tambahDataKursusAdmin.blade.php | 148 +++++++++++------- resources/views/partials/head.blade.php | 5 +- resources/views/user/home.blade.php | 2 +- routes/web.php | 15 +- 5 files changed, 109 insertions(+), 68 deletions(-) diff --git a/resources/views/admin/dataKursusAdmin.blade.php b/resources/views/admin/dataKursusAdmin.blade.php index 5270740..909c0d2 100644 --- a/resources/views/admin/dataKursusAdmin.blade.php +++ b/resources/views/admin/dataKursusAdmin.blade.php @@ -4,6 +4,9 @@
+ @@ -41,7 +44,9 @@ class="font-medium text-white hover:underline py-2 px-4 bg-[#4F7F81] rounded-xl" class="font-medium text-white hover:underline py-2 px-4 bg-[#4F7F81] rounded-xl"> Hapus - + @csrf @method('DELETE') diff --git a/resources/views/admin/tambahDataKursusAdmin.blade.php b/resources/views/admin/tambahDataKursusAdmin.blade.php index 80159c0..3671c6f 100644 --- a/resources/views/admin/tambahDataKursusAdmin.blade.php +++ b/resources/views/admin/tambahDataKursusAdmin.blade.php @@ -1,89 +1,123 @@ + + +
+
+ + + +
+
@csrf
- +
- -
- - + +
- -
- - + +
- -
- - + +
- -
- - -
- - -
- - -
- - -
- - -
- - -
- - + Latitude +
- -
- - + +
+
+ + + +
+
+ + + +
+
+ + + +
+
+ + + +
+
+ + +
+ + +
+ class="text-white bg-blue-700 hover:bg-blue-800 focus:ring-4 focus:outline-none focus:ring-blue-300 font-medium rounded-lg text-sm w-full sm:w-auto px-5 py-2.5 text-center ">Submit
- +
diff --git a/resources/views/partials/head.blade.php b/resources/views/partials/head.blade.php index 3788139..09dcb3c 100644 --- a/resources/views/partials/head.blade.php +++ b/resources/views/partials/head.blade.php @@ -2,4 +2,7 @@ @vite('resources/css/app.css') - \ No newline at end of file + + + + diff --git a/resources/views/user/home.blade.php b/resources/views/user/home.blade.php index e1c1061..cfc782d 100644 --- a/resources/views/user/home.blade.php +++ b/resources/views/user/home.blade.php @@ -35,7 +35,7 @@ class="mb-2 text-2xl poppins-regular font-extrabold tracking-tight text-gray-900 "> {{ $landingpage->nama_kursus }} -

{{ $landingpage->deskripsi }}

+

{{ $landingpage->deskripsi}}

diff --git a/routes/web.php b/routes/web.php index 7ad77e1..12cf088 100644 --- a/routes/web.php +++ b/routes/web.php @@ -4,21 +4,20 @@ use App\Http\Controllers\AdminDashboardController; use App\Http\Controllers\AdminDataKursusController; use App\Http\Controllers\LoginController; - - +use App\Http\Controllers\PengunjungController; Route::get('/admin/dashboard', [AdminDashboardController::class, 'index'])->name('admin.home'); Route::get('/admin/data-kursus', [AdminDataKursusController::class, 'dataKursus'])->name('admin.dataKursus'); -Route::get('/admin/tambahdata', [AdminDataKursusController::class, 'create'])->name('admin.tambahDataKursus'); - +Route::get('/admin/tambahdata', [AdminDataKursusController::class, 'create'])->name('kursus.create'); Route::delete('/admin/delete/{id}', [AdminDataKursusController::class, 'destroy'])->name('delete'); Route::get('/admin/courses', [AdminDataKursusController::class, 'index']); Route::get('/login', [LoginController::class, 'index'])->name('login'); -Route::get('/', [AdminDataKursusController::class, 'home'])->name('home'); -Route::get('/kursus', [AdminDataKursusController::class, 'kursus'])->name('user.kursus'); // Perbaikan pada rute ini -Route::get('/peta', [AdminDataKursusController::class, 'maps'])->name('user.peta'); +Route::get('/', [PengunjungController::class, 'home'])->name('home'); +Route::get('/kursus', [PengunjungController::class, 'kursus'])->name('user.kursus'); -Route::get('/detailKursus', [AdminDataKursusController::class, 'detail'])->name('user.detailKursus'); +Route::get('/peta', [PengunjungController::class, 'maps'])->name('user.peta'); + +Route::get('kursus/{id}/detail', [PengunjungController::class, 'detail'])->name('kursus.detail'); \ No newline at end of file From 277ee2f467609373d9b257660d9824a77e5fa90f Mon Sep 17 00:00:00 2001 From: HANIF FEBRIANSYAH Date: Tue, 3 Sep 2024 14:46:03 +0700 Subject: [PATCH 3/3] DONE TAMBAH DATA --- app/Exceptions/Exception.php | 16 ++ .../Controllers/AdminDataKursusController.php | 83 +++++++++- app/Models/DataKursus.php | 15 +- .../2024_08_25_153939_data_kursus.php | 4 +- package-lock.json | 2 +- .../views/admin/dataKursusAdmin.blade.php | 2 +- .../admin/tambahDataKursusAdmin.blade.php | 146 +++++++++--------- .../views/components/adminlayout.blade.php | 19 ++- resources/views/components/layout.blade.php | 16 +- resources/views/partials/head.blade.php | 3 +- resources/views/user/peta.blade.php | 2 +- routes/web.php | 9 +- 12 files changed, 217 insertions(+), 100 deletions(-) create mode 100644 app/Exceptions/Exception.php diff --git a/app/Exceptions/Exception.php b/app/Exceptions/Exception.php new file mode 100644 index 0000000..8b672a9 --- /dev/null +++ b/app/Exceptions/Exception.php @@ -0,0 +1,16 @@ +validate( - [] - ); + try { + $validator = Validator::make($request->all(), [ + 'nama_kursus' => 'required', + 'img' => 'required|file|mimes:jpeg,png,jpg|max:2048', + 'deskripsi' => 'required', + 'paket' => 'required', + 'metode' => 'required', + 'fasilitas' => 'required', + 'lokasi' => 'required', + 'latitude' => 'required|numeric|between:-90,90', + 'longitude' => 'required|numeric|between:-180,180', + 'img_konten.*' => 'file|mimes:jpeg,png,jpg|max:2048', + ]); + + // if ($validator->fails()) { + // return redirect()->back()->withInput()->withErrors($validator); + // } + $imgPath = $request->file('img')->store('images', 'public'); + $imgKontenPaths = []; + if ($request->hasFile('img_konten')) { + foreach ($request->file('img_konten') as $file) { + $imgKontenPaths[] = $file->store('images', 'public'); + } + } + + // Simpan data ke dalam database + $result = DataKursus::create([ + 'nama_kursus' => $request->nama_kursus, + 'img' => $imgPath, + 'deskripsi' => $request->deskripsi, + 'paket' => $request->paket, + 'metode' => $request->metode, + 'fasilitas' => $request->fasilitas, + 'lokasi' => $request->lokasi, + 'latitude' => $request->latitude, + 'longitude' => $request->longitude, + 'img_konten' => json_encode($imgKontenPaths), + ]); + + return redirect('/admin/data-kursus'); + } catch (\Exception $e) { + dd($e->getMessage()); + } } + public function w(Request $request) + { + // $validator = Validator::make($request->all(), [ + // 'nama' => 'required', + // 'img' => 'required', + // 'deskripsi' => 'required', + // 'paket' => 'required', + // 'metode' => 'required', + // 'fasilitas' => 'required', + // 'lokasi' => 'required', + // 'latitude' => 'required', + // 'longtitude' => 'required', + // 'img_konten' => 'required', + // ]); + // DataKursus::create([ + // "nama_kursus" => $request->nama, + // "img" => $request->img, + // "deskripsi" => $request->diskripsi, + // "paket" => $request->paket, + // "metode" => $request->metode, + // "fasilitas" => $request->fasilitas, + // "lokasi" => $request->lokasi, + // "latitude" => $request->latitude, + // "longtitude" => $request->longtitude, + // "img_konten" => $request->img_konten, + + // ]); + // if ($validator->fails()) return redirect()->back()->withInput()->withErrors($validator); + } + + + + public function destroy(string $id) { $data = DataKursus::find($id); @@ -35,5 +111,4 @@ public function destroy(string $id) } return redirect()->route('admin.dataKursus')->with('success', 'Data berhasil dihapus.'); } - } diff --git a/app/Models/DataKursus.php b/app/Models/DataKursus.php index 10d2495..49f6268 100644 --- a/app/Models/DataKursus.php +++ b/app/Models/DataKursus.php @@ -9,9 +9,20 @@ class DataKursus extends Model { use HasFactory; - // Tabel yang digunakan oleh model ini protected $table = 'data_kursus'; - // Jika Anda menggunakan timestamp di tabel + protected $fillable = [ + 'nama_kursus', + 'img', + 'deskripsi', + 'paket', + 'metode', + 'fasilitas', + 'lokasi', + 'latitude', + 'longitude', // Pastikan nama kolom sesuai dengan migrasi + 'img_konten' + ]; + public $timestamps = true; } diff --git a/database/migrations/2024_08_25_153939_data_kursus.php b/database/migrations/2024_08_25_153939_data_kursus.php index 6a2cf24..cb07ac3 100644 --- a/database/migrations/2024_08_25_153939_data_kursus.php +++ b/database/migrations/2024_08_25_153939_data_kursus.php @@ -20,8 +20,8 @@ public function up() $table->string('metode'); $table->text('fasilitas'); $table->string('lokasi'); - $table->decimal('latitude', 10, 7); - $table->decimal('longtitude', 10, 7); + $table->decimal('latitude', 10, 8)->index(); // Increased precision + $table->decimal('longitude', 11, 8)->index(); // Increased precision $table->json('img_konten')->nullable(); $table->timestamps(); }); diff --git a/package-lock.json b/package-lock.json index e86f0d5..2e06e98 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,5 +1,5 @@ { - "name": "salma", + "name": "SIG-Salma", "lockfileVersion": 3, "requires": true, "packages": { diff --git a/resources/views/admin/dataKursusAdmin.blade.php b/resources/views/admin/dataKursusAdmin.blade.php index 909c0d2..830be57 100644 --- a/resources/views/admin/dataKursusAdmin.blade.php +++ b/resources/views/admin/dataKursusAdmin.blade.php @@ -5,7 +5,7 @@
diff --git a/resources/views/admin/tambahDataKursusAdmin.blade.php b/resources/views/admin/tambahDataKursusAdmin.blade.php index 3671c6f..ab066fc 100644 --- a/resources/views/admin/tambahDataKursusAdmin.blade.php +++ b/resources/views/admin/tambahDataKursusAdmin.blade.php @@ -1,6 +1,3 @@ - - -
@@ -8,116 +5,113 @@ - -
+ @csrf
- + -
-
- - -
-
- - + placeholder="Kampung Inggris LC - Language Center" required />
+ +
- + + class="block w-full text-sm text-gray-900 border border-gray-300 rounded-lg cursor-pointer bg-gray-50" + id="file_input" type="file" name="img">
+ +
- - Deskripsi + +
+ + +
+ + +
+ + +
+ +
+ +
- - longitude + + placeholder="longitude"/>
+ +
- - - + placeholder="Write your thoughts here...">
+ +
- - - + placeholder="Write your thoughts here...">
+ +
- - - + placeholder="Write your thoughts here...">
+ +
- - - + placeholder="Write your thoughts here...">
-
- - -
- - -
- + class="text-white bg-blue-700 hover:bg-blue-800 focus:ring-4 focus:outline-none focus:ring-blue-300 font-medium rounded-lg text-sm w-full sm:w-auto px-5 py-2.5 text-center">Submit +
- + + + @push('script') + + + @endpush + +
diff --git a/resources/views/components/adminlayout.blade.php b/resources/views/components/adminlayout.blade.php index d61d17b..31d173a 100644 --- a/resources/views/components/adminlayout.blade.php +++ b/resources/views/components/adminlayout.blade.php @@ -1,6 +1,15 @@ -@include('components.navbarAdmin ') -@include('partials.head') -@include('partials.font') + + + + + @include('components.navbarAdmin') + @include('partials.head') + @include('partials.font') + + - {{ $slot }} - \ No newline at end of file + {{ $slot }} + + + + diff --git a/resources/views/components/layout.blade.php b/resources/views/components/layout.blade.php index 5263a9f..4bd23c8 100644 --- a/resources/views/components/layout.blade.php +++ b/resources/views/components/layout.blade.php @@ -1,8 +1,16 @@ + + + + @include('components.navbar') + @include('partials.head') + @include('partials.font') -@include('components.navbar') -@include('partials.head') -@include('partials.font') + {{ $slot }} -@include('components.footer') \ No newline at end of file + +@include('components.footer') + + + diff --git a/resources/views/partials/head.blade.php b/resources/views/partials/head.blade.php index 09dcb3c..8c4ce8f 100644 --- a/resources/views/partials/head.blade.php +++ b/resources/views/partials/head.blade.php @@ -3,6 +3,5 @@ @vite('resources/css/app.css') - - +@stack('script') diff --git a/resources/views/user/peta.blade.php b/resources/views/user/peta.blade.php index 306a3b4..ed719e8 100644 --- a/resources/views/user/peta.blade.php +++ b/resources/views/user/peta.blade.php @@ -11,7 +11,7 @@

Halaman ini berisi tentang kursus di Pare!

- +
name('admin.home'); Route::get('/admin/data-kursus', [AdminDataKursusController::class, 'dataKursus'])->name('admin.dataKursus'); -Route::get('/admin/tambahdata', [AdminDataKursusController::class, 'create'])->name('kursus.create'); +Route::post('/admin/store', [AdminDataKursusController::class, 'store'])->name('kursus.store'); +Route::get('/admin/createData', [AdminDataKursusController::class, 'create'])->name('admin.create'); Route::delete('/admin/delete/{id}', [AdminDataKursusController::class, 'destroy'])->name('delete'); - Route::get('/admin/courses', [AdminDataKursusController::class, 'index']); +// LOGIN Route::get('/login', [LoginController::class, 'index'])->name('login'); + +// PELANGGAN Route::get('/', [PengunjungController::class, 'home'])->name('home'); Route::get('/kursus', [PengunjungController::class, 'kursus'])->name('user.kursus');