🎯 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
- Client-Side AES-256 Encryption: Server never sees plaintext data
- Smart Chunk Ordering: Handles out-of-order packet arrival automatically
- Adaptive Network Modes: Switches between Burst/Steady/Survival based on connection quality
- Auto-Resume: Disconnections don't restart—only missing chunks upload
- Priority Queue: Critical files transfer first
- 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
- Out-of-Order Chunks: Used Map-based ChunkReassembler class to buffer and reorder by ID
- Memory Overflow: FileReader slicing + async generators for streaming encryption
- Network Quality: NetworkMonitor calculates quality score to switch modes automatically
- MongoDB Size Limits: Integrated GridFS for chunks >4MB
- Real-Time UX: Socket.IO instead of polling for instant progress updates
📚 What We Learned
- Web Crypto API is incredibly fast for browser-side encryption
- Chunk ordering requires Map-based buffering for network robustness
- Socket.IO dramatically improves UX vs polling
- React Hooks + Context API sufficient for state management
- 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
- aes-gcm-256
- axios
- express.js
- gridfs
- javascript
- mongodb
- multer
- node.js
- pbkdf2
- react.js
- sha-256
- socket.io
- web-crypto-api
Log in or sign up for Devpost to join the conversation.