naufalzakyramadhan 36eebac312 Merge pull request 'Refactor groups/Tapops menjadi modular dan OOP' (#2) from fix/tapops-modular-oop into feat/tapops-group
Reviewed-on: pangkywara/tapops-student-web-if-development-kit#2

Terima kasih atas refactor yang komprehensif ini. Pemisahan ke arsitektur OOP membuat codebase jauh lebih rapi dan maintainable. Saya telah melakukan verifikasi pada lingkungan QA dengan hasil sebagai berikut:

Verification Checklist:
[OK] Modularization & Entry Points: Pemecahan file JS menjadi beberapa modul (app, controllers, services, models, dll) dan pemisahan shell pada index.html serta viewer.html telah dicek. Semua aset dimuat dengan benar tanpa blocking.
[OK] Backward Compatibility: Fungsionalitas legacy tetap berjalan normal. Shim pada main.js dan viewer.js telah diverifikasi dan merespons interaksi pengguna tanpa error di console.
[OK] CSS Restructure: Tidak ditemukan isu regresi pada UI. Tata letak halaman dokumen tetap konsisten setelah reorganisasi repository CSS.
[OK] Unit & Syntax Tests: Perintah npm run test:tapops Passed (termasuk skenario untuk formatter, date range, pagination, dan struktur static). Perintah node --check Passed untuk semua file JS dalam direktori groups/Tapops.
[OK] Build Process: Perintah npm run build berhasil dieksekusi tanpa error.

Notes: Kerja bagus dalam menjaga backward compatibility tetap aman di tengah refactor skala besar ini!
2026-06-04 11:31:34 +00:00
2026-04-06 23:33:50 +07:00

Student Web IF — Development Kit

Paket tugas halaman statis untuk mahasiswa Informatika UNTAN. Navbar dan footer identik dengan web resmi prodi (informatika.untan.ac.id).

Jalankan project

npm install
npm run dev

Buka URL dari Vite (default: http://localhost:5173) lalu akses launcher di /.

Script NPM

Perintah Fungsi
npm run dev Jalankan local dev server
npm run build Build static output ke folder dist
npm run preview Preview hasil build

Struktur Folder

student-web-if-development-kit/
├── index.html                  ← Launcher (daftar link semua grup)
├── assets/
│   └── global/
│       ├── output.css          ← Tailwind CSS (compiled dari web prod)
│       ├── localization.js     ← Toggle bahasa ID/EN
│       ├── hero.webp
│       ├── footer.png
│       └── logo.png
└── groups/
    ├── Jellyfish.Corp/         ← Group 01
    ├── HabisIniSeminar/        ← Group 02
    ├── HarusSelesaiKP/         ← Group 03
    ├── C4A/                    ← Group 04
    ├── M4N1FEST/               ← Group 05
    ├── ACAAB/                  ← Group 06 — Sorotan dan Prestasi Karya Mahasiswa
    ├── LimaEm/                 ← Group 07 — Kehidupan Mahasiswa & Himpunan (HMIF)
    ├── RODA/                   ← Group 08 — Riset & Kelompok Bidang Keahlian (KBK)
    ├── Tapops/                 ← Group 09 — Berkas Penting
    └── ApeNameTeamE/           ← Group 10 — Beasiswa

Setiap folder grup berisi:

  • index.html → halaman tugas (navbar + footer sudah tersedia)
  • style.css → CSS tambahan milik kelompok (opsional)

Aturan Pengerjaan

  1. Tiap kelompok hanya mengedit foldernya sendiri.
  2. Area konten yang boleh diubah hanya bagian ini di dalam index.html:
<!-- ================= START: BAGIAN YANG DIEDIT KELOMPOK ================= -->
...konten kalian di sini...
<!-- ================= END: BAGIAN YANG DIEDIT KELOMPOK ================= -->
  1. Jangan ubah navbar, footer, dan path asset global (../../assets/global/...).
  2. Boleh menambah <style> atau mengedit style.css untuk styling konten.
  3. node_modules tidak perlu di-commit — jalankan npm install untuk generate ulang.

Catatan Teknis

  • Navbar dan footer menggunakan Tailwind CSS dari assets/global/output.css (tidak perlu install Tailwind per grup).
  • Mega menu dan mobile menu sudah aktif via inline script di tiap halaman.

Fitur Bilingual (ID / EN)

Setiap halaman grup mendukung toggle bahasa Indonesia ↔ English di pojok kanan atas navbar.

Cara kerja

  • Bahasa default mengikuti pengaturan browser (navigator.language).
  • Pilihan bahasa disimpan di localStorage, sehingga tetap aktif saat pindah halaman atau refresh.
  • Klik ID untuk Bahasa Indonesia, klik EN untuk English.
  • Elemen navbar dan footer akan otomatis berganti teks.

Cara menambahkan terjemahan pada konten kelompok

Jika kelompok ingin konten di #assignment-body ikut berganti bahasa, gunakan atribut data-i18n dan daftarkan terjemahannya di localization.js.

Langkah 1 — Tambahkan atribut data-i18n pada elemen HTML di index.html:

<h2 data-i18n="grp_acaab_title">Sorotan Prestasi Mahasiswa</h2>
<p data-i18n="grp_acaab_desc">Halaman ini menampilkan prestasi mahasiswa Informatika UNTAN.</p>

Langkah 2 — Daftarkan key tersebut di assets/global/localization.js pada bagian id dan en:

const translations = {
    id: {
        // ...key lainnya...
        grp_acaab_title: "Sorotan Prestasi Mahasiswa",
        grp_acaab_desc:  "Halaman ini menampilkan prestasi mahasiswa Informatika UNTAN.",
    },
    en: {
        // ...key lainnya...
        grp_acaab_title: "Student Achievement Highlights",
        grp_acaab_desc:  "This page showcases the achievements of Informatika UNTAN students.",
    }
};

Catatan: Gunakan prefix unik per kelompok pada nama key (contoh: grp_acaab_, grp_roda_) agar tidak bentrok dengan key kelompok lain.

Output Pengumpulan

Setiap kelompok submit perubahan pada:

  • groups/<nama-folder>/index.html
  • groups/<nama-folder>/style.css (jika ada)
S
Description
Nama Team :LimaEm Proyek: Kehidupan Mahasiswa dan Himpunan (HMIF)
Readme 201 MiB
Languages
HTML 56.9%
JavaScript 23.9%
CSS 19.2%