Iflix adalah aplikasi web streaming video yang memungkinkan pengguna untuk menonton video secara sinkron bersama teman-teman, dilengkapi dengan fitur obrolan real-time. Proyek ini dibangun dengan tujuan untuk menciptakan pengalaman menonton bersama yang menyenangkan dan interaktif.
- Pemutaran Video Sinkron: Kontrol pemutaran (play, pause, seek) disinkronkan secara otomatis untuk semua pengguna dalam satu ruangan.
- Obrolan Real-time: Berkomunikasi dengan teman-teman melalui fitur chat yang terintegrasi.
- Ganti Video: Pengguna dapat mengganti video yang sedang ditonton dengan video lain melalui URL.
- Daftar Pengguna Online: Menampilkan daftar pengguna yang sedang online di dalam ruangan.
- Desain Responsif: Tampilan yang menyesuaikan dengan berbagai ukuran layar, baik desktop maupun mobile.
- Backend:
- Node.js
- Express.js
- Socket.IO untuk komunikasi real-time.
- Prisma sebagai ORM untuk interaksi dengan database.
- Database:
- Frontend:
- HTML5
- CSS3
- JavaScript (Vanilla)
- Deployment:
- Node.js (versi 18 atau lebih baru)
- npm (biasanya terinstal bersama Node.js)
- MongoDB (atau akun MongoDB Atlas)
- Docker (Opsional, untuk menjalankan dengan container)
-
Clone repositori ini:
git clone https://github.com/frdiskandr/netflix-clone.git cd netflix-clone
-
Instal dependensi proyek:
npm install
Jalankan perintah berikut untuk memulai server pengembangan dengan nodemon
yang akan otomatis me-restart server setiap kali ada perubahan pada file.
npm run dev
Aplikasi akan berjalan di http://localhost:3000
.
Jika Anda memiliki Docker, Anda dapat menjalankan aplikasi dalam sebuah container.
docker compose up --build
Aplikasi akan berjalan di http://localhost:3000
.
- Buka browser dan akses
http://localhost:3000
. - Klik menu "Nonton Bareng" untuk masuk ke halaman utama fitur nonton bersama.
- Masukkan username Anda pada modal yang muncul.
- Bagikan URL halaman tersebut kepada teman-teman Anda.
- Gunakan tombol "Ganti Video" (ikon film) untuk memutar video dari URL lain.
- Kontrol video (play, pause, seek) akan tersinkronisasi dengan semua peserta.
- Gunakan panel obrolan di sisi kanan untuk berdiskusi.