Aplikasi Smartphone Presentation Remote & Laser Pointer untuk Microsoft PowerPoint dan Canva berbasis WebSockets, Python, dan Android ADB.
Saat melakukan presentasi penting (seperti sidang skripsi, seminar, pitch deck bisnis, atau kuliah umum), pembicara sering kali terbatas karena harus menekan tombol spasi atau panah di keyboard laptop secara manual, atau menggunakan pointer fisik konvensional.
PPTController mengubah smartphone (Android / iOS) Anda menjadi alat kendali presentasi profesional (wireless presenter remote) berlatensi sangat rendah (< 15 ms).
Aplikasi ini mendukung kontrol navigasi slide dan pointer laser untuk berbagai platform presentasi populer:
- Microsoft PowerPoint (Slideshow fullscreen, Presenter View, dan mode edit)
- Canva Presentation (di Google Chrome, Edge, Firefox)
- Google Slides
- PDF Presenter / Adobe Acrobat Reader
- Navigasi Slide Universal & Responsif:
- Tombol Sentuh di HP: Tombol NEXT besar yang ramah jempol dan tombol PREV.
- Dukungan Tombol Volume Fisik (Android): Tekan tombol fisik Volume Up pada bodi HP untuk Next Slide dan Volume Down untuk Prev Slide. Anda bisa berpindah slide tanpa perlu melihat layar HP atau bahkan saat HP berada di dalam saku jas/celana.
- Native Laser Pointer PowerPoint (
Ctrl + L):- Menggunakan engine laser pointer resmi bawaan Microsoft PowerPoint yang diakselerasi oleh GPU.
- Mode Touchpad: Sentuh dan geser jempol di kotak touchpad HP untuk mengarahkan laser pointer secara presisi tanpa lag.
- Mode Air-Mouse (Gyroscope): Arahkan HP di udara seperti remote pointer fisik menggunakan sensor orientasi ponsel.
- Otomatis kembali ke kursor panah standar (
Ctrl + A) saat sentuhan dilepas.
- Pintasan Presenter Terpadu:
- Mulai Slideshow (
F5): Memulai presentasi dari awal. - Lanjut Slideshow (
Shift + F5): Melanjutkan slide show dari slide aktif. - Layar Hitam / Blackout (
B): Menggelapkan layar untuk menarik fokus audiens ke pembicara (dilengkapi proteksi sentuhan tak disengaja). - Layar Putih / Whiteout (
W): Memutihkan layar. - Keluar Presentasi (
Esc): Mengakhiri slide show. - Canva Magic Shortcuts: Tombol confetti (🎉), drumroll (🥁), bubbles (🫧), dan quiet (🤫).
- Mulai Slideshow (
- Ergonomi & Produktivitas Pembicara:
- Stopwatch / Presentation Timer: Penghitung durasi waktu presentasi langsung di layar HP agar durasi bicara tetap terkontrol.
- Haptic Vibration Feedback: Ponsel bergetar lembut saat tombol ditekan sebagai konfirmasi taktil.
- Screen Wake-Lock: Menjaga layar ponsel tidak terkunci atau mati otomatis selama presentasi berlangsung.
- Dua Mode Akses Fleksibel:
- Mode Web PWA (Zero-Install): Cukup scan QR Code dari kamera HP mana pun (Android/iPhone) tanpa perlu menginstal aplikasi.
- Mode Native Android APK (
PPTRemote.apk): Mengizinkan integrasi tombol fisik volume bodi ponsel.
| Komponen | Teknologi / Tools | Keterangan |
|---|---|---|
| Backend Server | Python 3.12, FastAPI, Uvicorn, WebSockets | Server lokal real-time berlatensi ultra-rendah (<15ms) |
| Desktop GUI Host | Tkinter, Pillow, QRCode | Panel kontrol desktop laptop dengan tampilan QR Code |
| Input Engine | Windows Win32 API (ctypes), user32.dll, pynput |
Injeksi keystroke tingkat native ke desktop interaktif (WinSta0\default) |
| Mobile Web Remote | HTML5, CSS3 Modern Dark Mode, JavaScript ES6 | WebSockets, Touch Events, Vibration API, Wake Lock API |
| Android Companion | Java, Android SDK 34, Android WebView, Gradle 8.9 | Menangkap event hardware KEYCODE_VOLUME_UP & KEYCODE_VOLUME_DOWN |
| DevSecOps & Testing | Pytest, GitHub CLI (gh), ADB (Android Debug Bridge) |
Audit keamanan tanpa leak kredensial, automated test suite |
- Laptop/PC berbasis Windows 10 / 11.
- Telah terinstal Python 3.10+.
- Smartphone (Android atau iOS) yang terhubung ke laptop melalui:
- Opsi 1 (USB Debugging / Kabel USB): Paling direkomendasikan untuk stabilitas maksimal di ruang sidang/seminar.
- Opsi 2 (Wi-Fi / Hotspot): Smartphone dan laptop berada di jaringan Wi-Fi yang sama atau HP mengaktifkan Personal Hotspot ke laptop.
-
Clone repositori ini:
git clone https://github.com/Adrian463588/PPTController.git cd PPTController -
Instal dependensi Python yang dibutuhkan:
pip install -r requirements.txt
-
Jalankan server pengontrol:
- Cara Cepat: Klik dua kali file
start_controller.bat - Atau lewat terminal:
python app.py
Panel host akan muncul di layar laptop dan menampilkan QR Code serta URL server (misal:
http://192.168.0.5:8765). - Cara Cepat: Klik dua kali file
Pilih salah satu metode koneksi berikut:
- Hubungkan HP Android ke laptop menggunakan kabel USB dan pastikan USB Debugging aktif.
- Jalankan perintah reverse port forwarding sekali saja di terminal laptop:
adb reverse tcp:8765 tcp:8765
- Buka browser di HP Anda dan ketikkan alamat:
Atau buka aplikasi PPT Remote di HP Android Anda, masukkan alamat
http://127.0.0.1:8765127.0.0.1:8765, lalu tekan Hubungkan.
- Pastikan HP dan laptop terhubung ke jaringan Wi-Fi yang sama (atau laptop terhubung ke Hotspot HP Anda).
- Arahkan kamera HP ke QR Code yang tampil di layar laptop.
- Buka tautan yang muncul. Antarmuka remote controller akan langsung terbuka di browser HP Anda.
- Buka file presentasi Anda di laptop (Microsoft PowerPoint atau Canva).
- Di layar smartphone:
- Tekan tombol ▶ Mulai (F5) untuk memulai slideshow presentasi.
- Tekan tombol NEXT (atau tombol fisik Volume Up di HP) untuk maju ke slide berikutnya.
- Tekan tombol PREV (atau tombol fisik Volume Down di HP) untuk mundur ke slide sebelumnya.
- Geser jempol Anda di kotak touchpad HP untuk mengaktifkan dan menggerakkan Laser Pointer Merah PowerPoint.
- Gunakan tombol timer ▶ di HP untuk memantau durasi waktu berbicara Anda.
Proyek ini telah dilengkapi test suite otomatis menggunakan pytest:
python -m pytest tests/test_controller.py -vProyek ini dikembangkan dengan prinsip DevSecOps:
- Zero Credential Leaks: Tidak ada API key, token otentikasi, atau kredensial rahasia yang disimpan dalam repositori.
- Sanitasi File: Menggunakan
.gitignorekomprehensif untuk mencegah berkas sampah (build artifacts, cache Python/Gradle, dan log sesi) terunggah ke repositori publik. - Isolated Focus Control: Input controller berinteraksi secara aman pada desktop interaktif Windows tanpa mengganggu proses sistem lainnya.
Dibuat dengan dedikasi oleh: Adrian Syah Abidin
- GitHub: @Adrian463588
Didistribusikan di bawah lisensi MIT. Silakan gunakan dan modifikasi secara bebas untuk kebutuhan presentasi, riset, atau perkuliahan Anda.