{"id":31238983,"url":"https://github.com/ikhsan3adi/siakad-mini","last_synced_at":"2026-05-16T18:06:54.205Z","repository":{"id":315080843,"uuid":"1058026055","full_name":"ikhsan3adi/siakad-mini","owner":"ikhsan3adi","description":"Proyek 3 Mission 3: SIAKAD Mini Codeigniter 4 dengan menerapkan Authentication dan Authorization menggunakan Role-Based Access Control (RBAC)","archived":false,"fork":false,"pushed_at":"2025-09-16T14:51:10.000Z","size":132,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-09-16T16:41:13.803Z","etag":null,"topics":["akademik","codeigniter","codeigniter4","php","rbac","role-based-access-control","siakad","sistem-informasi"],"latest_commit_sha":null,"homepage":"","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ikhsan3adi.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-09-16T14:20:23.000Z","updated_at":"2025-09-16T14:51:14.000Z","dependencies_parsed_at":"2025-09-16T16:41:16.003Z","dependency_job_id":"c840262f-0e1a-4cd7-b869-f6bab23fc459","html_url":"https://github.com/ikhsan3adi/siakad-mini","commit_stats":null,"previous_names":["ikhsan3adi/siakad-mini"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/ikhsan3adi/siakad-mini","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ikhsan3adi%2Fsiakad-mini","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ikhsan3adi%2Fsiakad-mini/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ikhsan3adi%2Fsiakad-mini/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ikhsan3adi%2Fsiakad-mini/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ikhsan3adi","download_url":"https://codeload.github.com/ikhsan3adi/siakad-mini/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ikhsan3adi%2Fsiakad-mini/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":276460409,"owners_count":25646553,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-22T02:00:08.972Z","response_time":79,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["akademik","codeigniter","codeigniter4","php","rbac","role-based-access-control","siakad","sistem-informasi"],"created_at":"2025-09-22T19:27:07.188Z","updated_at":"2026-05-16T18:06:54.198Z","avatar_url":"https://github.com/ikhsan3adi.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Mission 4: Enhancing Interactivity with DOM \u0026 JS\n\n- Nama: Ikhsan Satriadi\n- NIM: 241511080\n- Prodi: D3 - Teknik Informatika\n- Kelas: 2C\n\n## Mata Kuliah Proyek 3: Pengembangan Perangkat Lunak Berbasis Web\n\n### Deskripsi Proyek\n\nAplikasi SIAKAD Mini adalah sebuah sistem informasi akademik sederhana yang dirancang untuk memudahkan pengelolaan data mahasiswa dan mata kuliah di lingkungan perguruan tinggi. Aplikasi ini dibangun menggunakan framework CodeIgniter 4 dan mengimplementasikan fitur autentikasi serta otorisasi pengguna dengan bantuan library CodeIgniter Shield.\n\n🆕 Aplikasi ini telah ditingkatkan interaktivitasnya dengan menambahkan validasi form di sisi frontend menggunakan JavaScript dan DOM manipulation. Beberapa fitur baru juga telah ditambahkan untuk meningkatkan pengalaman pengguna, seperti konfirmasi modal untuk tindakan penting dan kemampuan untuk melakukan aksi secara massal (bulk actions).\n\nFitur utama dari aplikasi ini meliputi:\n\n#### Auth\n\n- [X] Login\n    - [X] Frontend form validation \\w DOM manipulation 🆕\n- [X] Authentication with JWT\n- [X] Authorization with roles/group (admin, student)\n\n#### Admin area\n\n- [X] Dashboard\n    - [X] Show total number of users\n    - [X] Show total number of courses\n- [X] Courses management\n    - [X] Show course list with pagination and search\n    - [X] Show course details\n    - [X] Create new course\n        - [X] Frontend form validation 🆕\n    - [X] Edit course\n        - [X] Frontend form validation 🆕\n    - [X] Delete course (if no students are enrolled)\n        - [X] Bulk delete courses 🆕\n        - [X] Delete confirmation modal 🆕\n- [X] Users management\n    - [X] Stundent + admin\n        - [X] Show user list with search\n        - [X] Show user details\n        - [X] Create new user\n            - [X] Frontend form validation 🆕\n        - [X] Edit user\n            - [X] Frontend form validation 🆕\n        - [X] Delete user\n            - [X] Bulk delete users 🆕\n            - [X] Delete confirmation modal 🆕\n    - [X] Stundent specific actions\n        - [X] View enrolled courses on student details page\n\n#### Student area\n\n- [X] Dashboard\n    - [X] Total enrolled courses\n    - [X] Show grades summary\n        - [X] Average grade\n        - [X] Total credits\n        - [X] Total courses completed (Grade is not null)\n\n- [X] Courses management\n    - [X] View available courses\n    - [X] Enroll in a course\n        - [X] Bulk enroll courses 🆕\n        - [X] Enroll confirmation modal 🆕\n    - [X] Unenroll from a course 🆕\n        - [X] Bulk unenroll courses 🆕\n        - [X] Unenroll confirmation modal 🆕\n    - [X] View course details\n    - [X] Search and paginate courses\n    - [X] View enrolled courses\n\n---\n\n### Teknologi yang Digunakan\n\n- Framework: CodeIgniter 4\n- Library: CodeIgniter Shield (untuk autentikasi dan otorisasi)\n- Dependency Management: Composer\n- Bahasa Pemrograman: PHP \u0026 JavaScript\n- Database: MySQL/MariaDB\n- Frontend: HTML, CSS, Bootstrap 5\n\n---\n\n### Screenshot Uji Coba\n\n#### Login Page with Frontend Validation\n\n![Login Page](image/README/login.png)\n\n#### Student: Courses Management\n\nAvailable Courses List with Bulk Enroll, Confirmation Modal and dynamic stats for selected courses\n\n![Student Available Courses](image/README/student-available-courses.png)\n\n![Student Enroll Confirmation](image/README/student-enroll-confirmation.png)\n\n#### Student: Enrolled Courses\n\nEnrolled Courses List with Bulk Unenroll and Confirmation Modal\n\n![Student Enrolled Courses](image/README/student-enrolled-courses.png)\n\n![Student Unenroll Confirmation](image/README/student-unenroll-confirmation.png)\n\n#### Admin: Courses Management\n\nCourses List with Bulk Actions and Delete Confirmation Modal\n\n![Admin Courses List](image/README/admin-courses.png)\n\nFrontend Form Validation for Create and Edit Course\n\n![Admin Create Course](image/README/admin-create-course.png)\n\n#### Admin: Users Management\n\nUsers List with Bulk Actions and Delete Confirmation Modal\n\n![Admin Users List](image/README/admin-users.png)\n\n![Admin Bulk Delete Confirmation](image/README/admin-bulk-delete-confirmation.png)\n\nFrontend Form Validation for Create and Edit User\n\n![Admin Create User](image/README/admin-create-user.png)\n\n---\n\n### Cara Menjalankan\n\n1. Clone repository ini ke dalam direktori server lokal Anda.\n\n   ```bash\n   git clone https://github.com/ikhsan3adi/siakad-mini.git\n   cd siakad-mini\n    ```\n\n2. Jalankan perintah composer untuk menginstal dependensi yang diperlukan.\n\n   ```bash\n   composer install\n   ```\n\n3. Buat database baru di MySQL bernama `siakad_mini` (bisa disesuaikan di `.env`).\n4. Jalankan perintah migrasi untuk membuat tabel yang diperlukan.\n\n   ```bash\n   php spark migrate --all\n   ```\n\n5. Jalankan seeder untuk mengisi tabel dengan data awal.\n\n   ```bash\n    php spark db:seed AddInitialAdminSeeder     # wajib untuk membuat user admin\n    php spark db:seed AddInitialStudentSeeder   # opsional untuk membuat user student\n    php spark db:seed AddInitialCourseSeeder    # opsional untuk membuat data course\n    php spark db:seed AddEnrolledCourseSeeder   # opsional untuk membuat data enrolled course\n   ```\n\n6. Salin file `env` dan rename menjadi `.env` dan sesuaikan konfigurasi database sesuai dengan pengaturan lokal Anda.\n7. Jalankan server pengembangan CodeIgniter.\n\n   ```bash\n   php spark serve\n   ```\n\n8. Buka browser dan akses `http://localhost:8080` untuk melihat aplikasi berjalan.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fikhsan3adi%2Fsiakad-mini","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fikhsan3adi%2Fsiakad-mini","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fikhsan3adi%2Fsiakad-mini/lists"}