PAKET E-VOTING QR LOGIN (PHP + MySQLi + Bootstrap)

FILE:
- login.php                 Halaman scan QR layar penuh (buat dari kode login scanner sebelumnya).
- qr_config.php             Koneksi database, session, helper.
- qr_login_process.php      Endpoint yang menerima JSON {"qr_code":"TOKEN"}.
- admin_login.php           Login admin username/password.
- dashboard_admin.php       Dashboard statistik admin.
- input_pemilih.php         Form input dan daftar pemilih.
- input_calon.php           Form input dan daftar calon.
- print_qr_pemilih.php      Cetak kartu QR pemilih.
- dashboard_pemilih.php     Halaman setelah login QR.
- pemilih_logout.php        Keluar dari sesi pemilih.
- logout.php                Keluar dari sesi admin.
- setup_admin.php           Membuat akun admin pertama (hapus setelah digunakan).
- database.sql              Skema database.

CARA MEMASANG:
1. Salin seluruh file ke satu folder web, misalnya htdocs/evoting atau public_html/evoting.
2. Import database.sql melalui phpMyAdmin.
3. Buka qr_config.php dan sesuaikan $dbHost, $dbUser, $dbPass, $dbName.
4. Buka https://domain-anda/folder/setup_admin.php untuk membuat akun admin pertama.
5. Setelah admin berhasil dibuat, HAPUS setup_admin.php dari server.
6. Buka admin_login.php, login, lalu input data pemilih dan calon.
7. Buka menu Cetak QR untuk mencetak QR masing-masing pemilih.
8. Buka login.php lewat HTTPS. Browser akan meminta izin kamera.
9. Pastikan login.php mengirim JSON {"qr_code": decodedText} ke qr_login_process.php.

PENTING:
- QR Code berisi token login unik. Perlakukan QR seperti kredensial; jangan unggah atau bagikan sembarangan.
- Paket ini menyimpan token QR di database agar QR bisa dicetak ulang. Batasi akses database dan lindungi backup.
- Login QR ini hanya mengautentikasi pemilih; belum mengimplementasikan halaman pencoblosan, pencatatan suara, hasil, atau audit.
- Status "sudah_memilih" hanya ditampilkan, belum diubah oleh proses pencoblosan.
- Untuk produksi, gunakan HTTPS, password admin kuat, backup, pembatasan percobaan login, serta uji keamanan sebelum pemilihan resmi.
- PHP disarankan 8.1+ dan MySQL 5.7+/MariaDB yang mendukung InnoDB.

FITUR EXPORT / IMPORT (BARU):
- export_data.php        Export data pemilih/calon ke Excel (.xlsx) atau Word (.docx), juga template kosong.
- import_data.php        Import data pemilih/calon dari Excel atau Word (tabel pertama).
- export_qr_word.php     Cetak QR pemilih ke Word: Surat Undangan, 2 surat per halaman, A4 landscape (isi di surat_undangan_config.php atau form di menu Cetak QR).
- office_lib.php, qr_lib.php, export_import_lib.php   Pustaka pendukung (tanpa composer; butuh ekstensi PHP zip).
Tombol ada di menu Data Pemilih, Data Calon, dan Cetak QR.
Catatan: foto calon tidak ikut diimpor; isi kolom "Foto (nama file)" dengan nama file yang sudah ada
di uploads/calon/, atau ubah lewat menu Edit calon.
