🎯 Inspiration

Medical teams in disaster zones struggle to transfer patient records over unstable networks. Files fail mid-transfer, data travels unencrypted, and critical documents get delayed. We built FlexTransfer Pro to solve this.

💡 What It Does

  1. Client-Side AES-256 Encryption: Server never sees plaintext data
  2. Smart Chunk Ordering: Handles out-of-order packet arrival automatically
  3. Adaptive Network Modes: Switches between Burst/Steady/Survival based on connection quality
  4. Auto-Resume: Disconnections don't restart—only missing chunks upload
  5. Priority Queue: Critical files transfer first
  6. Real-Time Integrity: SHA-256 verification on every chunk

🔨 How We Built It

Frontend: React.js + Web Crypto API (native AES-GCM-256 encryption) Backend: Node.js + Express + MongoDB GridFS Real-Time: Socket.IO for live progress updates Key Innovation: Chunks get unique IDs and reassemble out-of-order using JavaScript Maps

🧗 Key Challenges & Solutions

  1. Out-of-Order Chunks: Used Map-based ChunkReassembler class to buffer and reorder by ID
  2. Memory Overflow: FileReader slicing + async generators for streaming encryption
  3. Network Quality: NetworkMonitor calculates quality score to switch modes automatically
  4. MongoDB Size Limits: Integrated GridFS for chunks >4MB
  5. Real-Time UX: Socket.IO instead of polling for instant progress updates

📚 What We Learned

  1. Web Crypto API is incredibly fast for browser-side encryption
  2. Chunk ordering requires Map-based buffering for network robustness
  3. Socket.IO dramatically improves UX vs polling
  4. React Hooks + Context API sufficient for state management
  5. Drag & Drop UI more intuitive than traditional file inputs

🚀 Next Steps

P2P WebRTC fallback, compression, multi-file batching, Service Worker offline mode, Enterprise features (HIPAA/GDPR compliance)

Built With

Share this project:

Updates