Real-time Sync List
Firestore đồng bộ danh sách yêu thích trên nhiều thiết bị.
Bản sao giao diện truyền hình Netflix cinematic hoàn chỉnh với quản lý nhiều profile bảo mật, tìm kiếm nâng cao và đồng bộ danh sách phim thời gian thực.
Tạo và chuyển đổi nhiều profile với PIN bảo mật riêng.
Firestore đồng bộ danh sách yêu thích trên nhiều thiết bị.
Xem trailer YouTube trong giao diện cinematic tùy biến.
Lưu tiến độ xem theo profile để người dùng quay lại đúng nội dung đang xem dở.
Gợi ý phim dựa trên lịch sử xem, thể loại và hành vi trong từng profile.
Tìm kiếm, xem chi tiết phim/series và metadata từ TMDB API.
Quy tắc Firestore tách dữ liệu user/profile, tránh đọc ghi chéo tài khoản.
Chuẩn hóa ID giữa TMDB, Firestore và UI để tránh lỗi duplicate/watch progress.
Tạo và chuyển đổi nhiều profile với PIN bảo mật riêng.
Firestore đồng bộ danh sách yêu thích trên nhiều thiết bị.
Xem trailer YouTube trong giao diện cinematic tùy biến.
Lưu tiến độ xem theo profile để người dùng quay lại đúng nội dung đang xem dở.
Gợi ý phim dựa trên lịch sử xem, thể loại và hành vi trong từng profile.
Tìm kiếm, xem chi tiết phim/series và metadata từ TMDB API.
Quy tắc Firestore tách dữ liệu user/profile, tránh đọc ghi chéo tài khoản.
Chuẩn hóa ID giữa TMDB, Firestore và UI để tránh lỗi duplicate/watch progress.
Tôi chọn Netflix vì bề ngoài quen thuộc nhưng bên trong có nhiều bài toán state: profile, watch progress, list sync, recommendation và media detail.
Một tài khoản có nhiều profile, mỗi profile có PIN, lịch sử xem, danh sách yêu thích và tiến độ xem riêng.
Firebase Auth/Firestore phù hợp MVP streaming clone vì có realtime sync, security rules và deploy-friendly cho frontend.
TMDB API cung cấp metadata phim/series, ảnh, thể loại và search để UI có nội dung thật thay vì hardcode.
Repo có nhiều tài liệu fix như ID normalization, Continue Watching, cache lock, YouTube layout và recommendation upgrade, cho thấy dự án có debugging thật.
Project này chứng minh tôi biết làm product UI phức tạp, xử lý dữ liệu realtime và sửa bug state thay vì chỉ cắt giao diện.
Tôi chọn Netflix vì bề ngoài quen thuộc nhưng bên trong có nhiều bài toán state: profile, watch progress, list sync, recommendation và media detail.
Một tài khoản có nhiều profile, mỗi profile có PIN, lịch sử xem, danh sách yêu thích và tiến độ xem riêng.
Firebase Auth/Firestore phù hợp MVP streaming clone vì có realtime sync, security rules và deploy-friendly cho frontend.
TMDB API cung cấp metadata phim/series, ảnh, thể loại và search để UI có nội dung thật thay vì hardcode.
Repo có nhiều tài liệu fix như ID normalization, Continue Watching, cache lock, YouTube layout và recommendation upgrade, cho thấy dự án có debugging thật.
Project này chứng minh tôi biết làm product UI phức tạp, xử lý dữ liệu realtime và sửa bug state thay vì chỉ cắt giao diện.
Nếu không tách dữ liệu theo user/profile, My List hoặc Continue Watching có thể hiển thị nhầm giữa các profile trong cùng tài khoản.
TMDB movie/tv/search và Firestore có thể sinh ID khác format, gây duplicate item, mất progress hoặc recommendation sai.
Client app dùng Firestore trực tiếp nên security rules phải đảm bảo user chỉ đọc/ghi dữ liệu của chính họ.
Cần xử lý play mới, resume, remove khỏi danh sách, update progress và tránh item chưa xem đủ vẫn xuất hiện sai.
YouTube trailer có thể thiếu video, layout iframe dễ vỡ trên mobile và cần fallback khi TMDB không trả trailer phù hợp.
Nếu chỉ random phim thì không có giá trị; recommendation cần dựa vào lịch sử xem/thể loại để có logic sản phẩm rõ ràng.
Nếu không tách dữ liệu theo user/profile, My List hoặc Continue Watching có thể hiển thị nhầm giữa các profile trong cùng tài khoản.
TMDB movie/tv/search và Firestore có thể sinh ID khác format, gây duplicate item, mất progress hoặc recommendation sai.
Client app dùng Firestore trực tiếp nên security rules phải đảm bảo user chỉ đọc/ghi dữ liệu của chính họ.
Cần xử lý play mới, resume, remove khỏi danh sách, update progress và tránh item chưa xem đủ vẫn xuất hiện sai.
YouTube trailer có thể thiếu video, layout iframe dễ vỡ trên mobile và cần fallback khi TMDB không trả trailer phù hợp.
Nếu chỉ random phim thì không có giá trị; recommendation cần dựa vào lịch sử xem/thể loại để có logic sản phẩm rõ ràng.
Tôi tổ chức Firestore theo user/profile để My List, PIN và Continue Watching không trộn dữ liệu giữa các profile.
Tôi xử lý ID normalization giữa TMDB và Firestore để giảm lỗi duplicate, progress mismatch và item không update đúng.
Tôi lưu tiến độ xem, cập nhật trạng thái resume và hiển thị lại nội dung đang xem dở theo từng profile.
Tôi dùng lịch sử xem/thể loại làm tín hiệu gợi ý thay vì random, giúp tính năng có câu chuyện kỹ thuật rõ hơn.
Tôi bổ sung Firestore rules/indexes để query tốt hơn và giới hạn quyền đọc/ghi dữ liệu theo user.
Tôi dùng React/TypeScript/Framer Motion để làm profile selection, hero, modal detail, trailer và transition mượt.
Tôi tổ chức Firestore theo user/profile để My List, PIN và Continue Watching không trộn dữ liệu giữa các profile.
Tôi xử lý ID normalization giữa TMDB và Firestore để giảm lỗi duplicate, progress mismatch và item không update đúng.
Tôi lưu tiến độ xem, cập nhật trạng thái resume và hiển thị lại nội dung đang xem dở theo từng profile.
Tôi dùng lịch sử xem/thể loại làm tín hiệu gợi ý thay vì random, giúp tính năng có câu chuyện kỹ thuật rõ hơn.
Tôi bổ sung Firestore rules/indexes để query tốt hơn và giới hạn quyền đọc/ghi dữ liệu theo user.
Tôi dùng React/TypeScript/Framer Motion để làm profile selection, hero, modal detail, trailer và transition mượt.
Netflix Clone không chỉ giống giao diện mà có auth, profile, PIN, realtime My List, progress, search, trailer và recommendation.
Các file docs về ID normalization, Continue Watching fix, cache lock và recommendation cho thấy tôi từng debug state/data thật.
Người xem có thể hiểu nhanh luồng chính: đăng nhập, chọn profile, xem phim, lưu list, resume và nhận gợi ý.
Project giúp nói sâu về Firebase data modeling, Firestore rules, third-party API, state management và UI motion.
Không stream video thật vì vấn đề bản quyền; trailer/metadata phụ thuộc TMDB/YouTube API nên cần fallback khi API thiếu dữ liệu.
Có thể thêm test e2e cho profile/progress, caching tốt hơn cho TMDB và recommendation ranking rõ điểm hơn.
Tôi học được rằng clone UI chỉ có giá trị khi có dữ liệu, auth, state, security rules và edge-case handling đi kèm.
Dự án giúp tôi cải thiện khả năng thiết kế state model cho frontend nhiều tầng: account, profile, saved list, watch progress và recommendation.
Đây là ví dụ cho thấy tôi quan tâm đến trải nghiệm người dùng và chi tiết sản phẩm, không chỉ dựng layout nhìn giống bản gốc.
Netflix Clone không chỉ giống giao diện mà có auth, profile, PIN, realtime My List, progress, search, trailer và recommendation.
Các file docs về ID normalization, Continue Watching fix, cache lock và recommendation cho thấy tôi từng debug state/data thật.
Người xem có thể hiểu nhanh luồng chính: đăng nhập, chọn profile, xem phim, lưu list, resume và nhận gợi ý.
Project giúp nói sâu về Firebase data modeling, Firestore rules, third-party API, state management và UI motion.
Không stream video thật vì vấn đề bản quyền; trailer/metadata phụ thuộc TMDB/YouTube API nên cần fallback khi API thiếu dữ liệu.
Có thể thêm test e2e cho profile/progress, caching tốt hơn cho TMDB và recommendation ranking rõ điểm hơn.
Tôi học được rằng clone UI chỉ có giá trị khi có dữ liệu, auth, state, security rules và edge-case handling đi kèm.
Dự án giúp tôi cải thiện khả năng thiết kế state model cho frontend nhiều tầng: account, profile, saved list, watch progress và recommendation.
Đây là ví dụ cho thấy tôi quan tâm đến trải nghiệm người dùng và chi tiết sản phẩm, không chỉ dựng layout nhìn giống bản gốc.
Mỗi màn hình đi kèm phần mô tả chi tiết để làm rõ luồng hoạt động và trải nghiệm người dùng thực tế.

cardhover
Ảnh này dùng làm bằng chứng cho flow Netflix Clone. Màn hình "cardhover" giúp giải thích rõ trạng thái UI, dữ liệu hiển thị và thao tác người dùng ở bước đó.

đăng nhập bằng google
Ảnh này dùng làm bằng chứng cho flow Netflix Clone. Màn hình "đăng nhập bằng google" giúp giải thích rõ trạng thái UI, dữ liệu hiển thị và thao tác người dùng ở bước đó.

đăng nhập hồ sơ bị khóa mã pin
Ảnh này dùng làm bằng chứng cho flow Netflix Clone. Màn hình "đăng nhập hồ sơ bị khóa mã pin" giúp giải thích rõ trạng thái UI, dữ liệu hiển thị và thao tác người dùng ở bước đó.

màn hình chọn hồ sơ
Ảnh này dùng làm bằng chứng cho flow Netflix Clone. Màn hình "màn hình chọn hồ sơ" giúp giải thích rõ trạng thái UI, dữ liệu hiển thị và thao tác người dùng ở bước đó.

chức năng tiếp tục xem và đề xuất thông minh dựa trên phim đã coi
Ảnh này dùng làm bằng chứng cho flow Netflix Clone. Màn hình "chức năng tiếp tục xem và đề xuất thông minh dựa trên phim đã coi" giúp giải thích rõ trạng thái UI, dữ liệu hiển thị và thao tác người dùng ở bước đó.
Xem toàn bộ mã nguồn trên GitHub hoặc mở bản demo hoạt động thực tế.
Tôi đang tìm kiếm những thử thách mới và cơ hội hợp tác. Nếu bạn có câu hỏi hoặc chỉ muốn chào hỏi, tôi sẽ phản hồi sớm nhất có thể.