๐ฌ Project Name: SyncWatch โ Long-Distance Couple Movie App ๐ Goal: Let couples in long-distance relationships watch movies together in perfect sync using minimal internet data. Unlike Netflix Party-style streaming, the movie is downloaded locally, and only small sync messages are exchanged between devices.
๐งฉ Core Features Feature Description ๐ Local Movie File Selection Each user selects the same movie file stored on their device. ๐ File Match Verification The app checks that both users selected the exact same file (via hash or metadata like duration). ๐ฅ Google Login Simple and secure sign-in using Google authentication. ๐ Session Join/Create One user creates a session, the other joins using a code or link. Only the creator can allow access. ๐ฅ Media Player Custom video player with play/pause/seek controls โ looks clean, dark UI. ๐ก Sync Over Low Data No content is streamed. Only control messages (e.g., play, pause, seek time) are sent โ like sending a WhatsApp message. ๐ Privacy & Control Only session members can connect. No media file leaves the device.
๐จ User Interface (UI) Design Screen Description ๐ Home/Join Page User logs in with Google and chooses to create or join a session. ๐ฌ Watch Tab File selector + video player. Shows sync status (connected/disconnected). โ๏ธ Settings Tab Options for privacy, theme, debug logs (if needed). ๐ SessionCard UI component showing session info, status, participants.
๐ ๏ธ Technical Stack Component Technology Framework Expo + React Native Navigation expo-router Media Playback expo-av or expo-video Authentication expo-auth-session, Firebase Auth with Google File Access expo-file-system Sync Messaging Firebase Realtime DB or Firestore, or socket-based (optional) Hash Check md5 or similar module
โ ๏ธ Important Concepts โ๏ธ Both devices must have identical files selected manually.
๐ถ Network usage is extremely low โ only syncing actions like pause, seek.
๐ No file upload โ completely local and private playback.
๐ฑ Works well on low-end phones and poor network (because no streaming).
๐ How it works โ Flow Summary: User A signs in with Google & creates a session
User B signs in & joins the session
Both select the same local movie file
App verifies files match (e.g., duration, hash)
User A presses "Play" โ a message is sent to B to play at same time
If anyone pauses/seeks โ sync message is sent
After playback begins, no internet is required except sync signals
Log in or sign up for Devpost to join the conversation.