A Laravel-based scholarship (beasiswa) and achievement (prestasi) management system for mahasiswa.
Fitur utama:
- Kelola beasiswa (CRUD) — daftar beasiswa, atur kuota dan periode
- Verifikasi pendaftaran beasiswa oleh admin (approve/reject)
- Verifikasi prestasi mahasiswa (review sertifikat)
- Pengaturan bobot SAW (Simple Additive Weighting) dan perhitungan normalisasi + skor
- Laporan yang dapat difilter berdasarkan rentang waktu dan diekspor ke PDF
- Kelola pengguna (admin dapat membuat, mengedit, dan menghapus akun)
Catatan singkat perubahan yang telah dibuat:
- Perbaikan
Usermodel: menambahkanroledannimpada$fillable, memperbaiki properti$casts, dan menambahkan helperisAdmin(). - Menambahkan migration untuk kolom
nimdi tabelusers(database/migrations/2025_11_27_000000_add_nim_to_users_table.php). - Menambahkan middleware
EnsureUserIsAdmindiapp/Http/Middleware/EnsureUserIsAdmin.phpdan menggunakannya pada group routeadmin. - Menambahkan controller
Admin\UserControllerdengan CRUD dan view blade diresources/views/admin/users/*. - Menambahkan method
storepadaAdmin\SawController(pembuatan bobot kriteria) agar form/bobot-saw/storeberfungsi.
Persyaratan
- PHP >= 8.0
- Composer
- MySQL (atau database lain yang didukung Laravel)
- Node.js & npm (untuk asset build dengan Vite/Tailwind)
Setup lokal (Windows PowerShell)
- Salin file
.env.exampleke.envdan atur kredensial database sertaAPP_URL.
copy .env.example .env
php artisan key:generate- Instal dependensi PHP dan JS
composer install
npm install
npm run build- Jalankan migration dan seeder (jika ingin data contoh)
php artisan migrate
php artisan db:seed- Jika menggunakan storage publik (untuk file prestasi), jalankan:
php artisan storage:link- Jalankan server lokal
php artisan servePDF Export
- Saya merekomendasikan paket
barryvdh/laravel-dompdfuntuk export PDF server-side. - Untuk memasang:
composer require barryvdh/laravel-dompdf- Setelah terpasang, Anda dapat membuat controller action yang memanggil view laporan dan mengembalikannya sebagai PDF, misal:
use Barryvdh\DomPDF\Facade\Pdf;
public function exportReport(Request $req) {
$data = /* ambil data filter */;
$pdf = Pdf::loadView('admin.laporan.pdf', compact('data'));
return $pdf->download('laporan.pdf');
}Catatan penting dan langkah lanjut
- Pastikan tabel
usersmemiliki kolomnim. Saya menambahkan migration yang menambah kolom ini; jalankanphp artisan migrate. - Saya menambahkan middleware
EnsureUserIsAdmin. Routes admin sekarang menggunakan kelas middleware tersebut; pastikan user yang login memilikirole = 'admin'. - Beberapa view admin sudah ada di
resources/views/admin/*. Saya menambahkan tampilan dasar untukadmin/users. - Untuk menyelesaikan semua fitur (polish UI, cetak laporan PDF dengan filter tanggal, kelola beasiswa lengkap, penanganan file yang lebih baik, notifikasi), saya sarankan langkah bertahap yang terprioritaskan — saya bisa lanjutkan implementasinya satu per satu.
Cara saya bisa terus bekerja (opsional):
- Implementasi lengkap CRUD Beasiswa dan view yang lebih profesional
- Lengkapi laporan: endpoint filter tanggal, layout laporan, dan tombol ekspor PDF
- Perbaikan UI/UX pada halaman verifikasi pendaftaran dan prestasi
- Menambahkan test feature untuk alur verifikasi
Jika mau, saya akan lanjutkan mengimplementasikan satu fitur setelah konfirmasi Anda (mis. lengkapkan Kelola Beasiswa, lalu laporan PDF).
Jika ada preferensi styling atau fitur tambahan (mis. integrasi email notifikasi, role granular, atau single-sign-on), beri tahu saya dan saya integrasikan. Proyek DipaTalent
Selamat datang di Proyek DipaTalent. Ini adalah sistem informasi yang dibangun menggunakan Laravel 12, Breeze, dan Tailwind CSS, yang dirancang untuk mengelola data talenta dengan sistem autentikasi dan peran pengguna yang berbeda.
Tentang Proyek
DipaTalent adalah sebuah platform sistem informasi yang bertujuan untuk mengelola dan memamerkan data talenta, kemungkinan besar di lingkungan akademik atau organisasi. Proyek ini mencakup autentikasi pengguna yang aman dan dashboard yang berbeda berdasarkan peran pengguna (Admin, Mahasiswa, dan Umum), memungkinkan fungsionalitas yang disesuaikan untuk setiap jenis pengguna.
Fitur Utama
Autentikasi Lengkap: Proses registrasi, login, dan reset password yang aman menggunakan Laravel Breeze.
Berbasis Peran (Role-Based): Tampilan dashboard yang berbeda untuk:
Admin: Untuk mengelola data master, pengguna, dan konten.
Mahasiswa: Untuk melihat informasi akademik, profil, dll.
Umum: Tampilan dashboard standar untuk pengguna terdaftar.
Frontend Modern: Dibangun dengan Blade dan Tailwind CSS, dikompilasi menggunakan Vite.
Struktur Proyek Bersih: Mengikuti praktik terbaik Laravel untuk kemudahan pemeliharaan.
Teknologi yang Digunakan
Backend: PHP 8.2+ / Laravel 12
Frontend: Blade, Tailwind CSS, Alpine.js
Kompilasi Aset: Vite
Autentikasi: Laravel Breeze
Database: MySQL (default) / PostgreSQL (opsional)
Instalasi & Konfigurasi
Ikuti langkah-langkah berikut untuk menjalankan proyek ini di lingkungan lokal Anda.
- Clone Repository
git clone https://github.com/dayattt111/project_dipaTalent.git cd project_dipaTalent
- Instal Dependensi Backend
Pastikan Anda memiliki Composer terinstal.
composer install
- Siapkan File Environment (.env)
Salin file .env.example dan buat file .env baru.
cp .env.example .env
- Buat Kunci Aplikasi (App Key)
php artisan key:generate
- Konfigurasi Database
Buka file .env dan atur koneksi database Anda (buat database baru di MySQL/phpMyAdmin dengan nama dipa_talent atau sesuai keinginan Anda).
DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=dipa_talent DB_USERNAME=root DB_PASSWORD=
- Jalankan Migrasi Database
Perintah ini akan membuat semua tabel yang diperlukan di database Anda.
php artisan migrate
- Instal Dependensi Frontend
Pastikan Anda memiliki Node.js (termasuk npm) terinstal.
npm install
Cara Menjalankan Proyek
Anda perlu menjalankan dua server secara bersamaan di dua terminal terpisah.
Terminal 1: Jalankan Server Laravel
php artisan serve
Terminal 2: Jalankan Server Vite (Compile Aset)
npm run dev
Setelah kedua server berjalan, buka aplikasi di browser Anda: http://127.0.0.1:8000
Lisensi
Proyek ini berada di bawah Lisensi MIT.