Aplikasi ini adalah sistem manajemen seminar proposal dan skripsi untuk perguruan tinggi, dibangun menggunakan CodeIgniter 4. Fungsinya meliputi pengelolaan mahasiswa, dosen, seminar proposal, daftar skripsi, bimbingan, penilaian, dan API REST untuk berbagai entitas.
- Login dan otentikasi pengguna
- Manajemen mahasiswa, dosen, koordinator, operator, dan profil pengguna
- CRUD untuk daftar skripsi, daftar seminar proposal, ruangan, dan detail sempro
- REST API untuk Mahasiswa, Daftar Skripsi, Daftar Seminar, Dosen, Judul, Penilaian, Bimbingan, dan lainnya
- Upload file bimbingan dan validasi berkas
- Penerapan filter akses (
isLoggedIn) untuk halaman terproteksi
- PHP
^8.2 - CodeIgniter 4
^4.7 - PHPUnit
^10.5.16 - FakerPHP untuk pengujian
app/Controllers/- kontroler utama dan APIapp/Models/- model database untuk entitas seperti Mahasiswa, Dosen, Sempro, dll.app/Config/- konfigurasi aplikasi, rute, database, filter, dan layananapp/Database/Migrations/- skema database dan tabelapp/Database/Seeds/- data awal untuk pengujian atau pengembanganapp/Views/- tampilan antarmuka penggunapublic/- root publik untuk web serverwritable/- cache, log, upload, session
-
Clone repository:
git clone https://github.com/username/seminar_proposal.git cd seminar_proposal -
Install dependensi Composer:
composer install
-
Duplikat file
envke.envdan sesuaikan:cp .env.example .env
-
Atur konfigurasi database di
.env:database.default.hostnamedatabase.default.databasedatabase.default.usernamedatabase.default.passwordapp.baseURL
-
Jalankan migrasi database:
php spark migrate
-
(Opsional) Isi data awal dengan seeder:
php spark db:seed NamaSeeder
-
Di lingkungan pengembangan lokal:
php spark serve
-
Pastikan web server diarahkan ke folder
public/.
Rute utama aplikasi:
GET /→Login::indexPOST /login/cek-user→Login::cekUserGET /home→Home::indexGET /login/logout→Login::logout
Halaman terproteksi menggunakan filter isLoggedIn:
passwordprofileoperatorkoordinatordosenusermahasiswadafskripsidosbingsemprodafsemproruangandetsempro
GET /mahasiswarest→ list mahasiswaGET /mahasiswarest/{id}→ detail mahasiswaPOST /mahasiswarest→ tambah mahasiswaPUT /mahasiswarest/{id}→ update mahasiswa
GET /dafskripsirestGET /dafskripsirest/{id}POST /dafskripsirestPUT /dafskripsirest/{id}
GET /dafsemprorestGET /dafsemprorest/{id}POST /dafsemprorestPUT /dafsemprorest/{id}
GET /userrestGET /userrest/{id}POST /userrestPUT /userrest/{id}
GET /detsemprorestGET /detsemprorest/{id}POST /detsemprorestPUT /detsemprorest/{id}
GET /dosbingrestGET /dosbingrest/{id}POST /dosbingrestPUT /dosbingrest/{id}
GET /bimbinganrestGET /bimbinganrest/{id}POST /bimbinganrestPUT /bimbinganrest/{id}
GET /bimbingandosenrestGET /bimbingandosenrest/{id}POST /bimbingandosenrestPUT /bimbingandosenrest/{id}
GET /updatebimbingandosenrest/{id}PUT /updatebimbingandosenrest/{id}
GET /mahasiswasemprorest/{id}GET /mahasiswasemprorest/{id}
resource('dosenrest')resource('judulrest')resource('penilaianrest')
GET /kbbiapi/searchGET /kbbirest/index
Terdapat migrasi dan tabel untuk entitas utama:
usersmahasiswadosendaftar_semprodaftar_skripsisemprodet_semprobimbingandosbingruanganperiodejudul_skripsi
- Pastikan
public/digunakan sebagai document root. - Gunakan
.envuntuk menyimpan konfigurasi sensitif. - Periksa filter di
app/Config/Filters.phpjika menyesuaikan otentikasi. - Tambahkan rute baru di
app/Config/Routes.phpuntuk endpoint tambahan.
Dokumentasi ini berfungsi sebagai panduan dasar untuk memahami struktur proyek, menjalankan aplikasi, dan menggunakan endpoint API.
Jika Anda ingin memperluas proyek, tambahkan modul baru di app/Controllers/, model di app/Models/, dan tampilan di app/Views/.