{"type":"excalidraw","version":2,"source":"https://AwesomeSystemDesign.dev","elements":[{"angle":0,"strokeColor":"#6577aa","backgroundColor":"#eef1fc","fillStyle":"solid","strokeWidth":1.5,"strokeStyle":"solid","roughness":0.7,"opacity":100,"version":1,"versionNonce":1,"isDeleted":false,"groupIds":["step-1"],"frameId":null,"roundness":null,"boundElements":[{"type":"text","id":"shape-1"}],"updated":0,"link":null,"locked":false,"id":"shape-0","type":"rectangle","seed":41,"x":36,"y":32,"width":381.60832,"height":68,"customData":{"revealStep":1}},{"angle":0,"strokeColor":"#394557","backgroundColor":"transparent","fillStyle":"solid","strokeWidth":1.5,"strokeStyle":"solid","roughness":0.7,"opacity":100,"version":1,"versionNonce":1,"isDeleted":false,"groupIds":["step-1"],"frameId":null,"roundness":null,"boundElements":null,"updated":0,"link":null,"locked":false,"id":"shape-1","type":"text","seed":114,"x":56,"y":54.3,"width":341.60832,"height":23.400000000000002,"fontSize":18,"fontFamily":1,"text":"Version | Dimensions| Size | Use Case","originalText":"Version | Dimensions| Size | Use Case","textAlign":"center","verticalAlign":"middle","containerId":"shape-0","lineHeight":1.3,"autoResize":false,"customData":{"revealStep":1}},{"angle":0,"strokeColor":"#628572","backgroundColor":"#edf5ee","fillStyle":"solid","strokeWidth":1.5,"strokeStyle":"solid","roughness":0.7,"opacity":100,"version":1,"versionNonce":1,"isDeleted":false,"groupIds":["step-2"],"frameId":null,"roundness":null,"boundElements":[{"type":"text","id":"shape-3"}],"updated":0,"link":null,"locked":false,"id":"shape-2","type":"rectangle","seed":187,"x":457.60832000000005,"y":32,"width":390,"height":270,"customData":{"revealStep":2}},{"angle":0,"strokeColor":"#394557","backgroundColor":"transparent","fillStyle":"solid","strokeWidth":1.5,"strokeStyle":"solid","roughness":0.7,"opacity":100,"version":1,"versionNonce":1,"isDeleted":false,"groupIds":["step-2"],"frameId":null,"roundness":null,"boundElements":null,"updated":0,"link":null,"locked":false,"id":"shape-3","type":"text","seed":260,"x":477.60832000000005,"y":50,"width":350,"height":234,"fontSize":18,"fontFamily":1,"text":"thumb | 150x150 | ~15 KB | Profile\ngrid, search\nsmall | 320x320 | ~40 KB |\nNotifications, previews\nmedium | 640x640 | ~100 KB| Feed\n(low bandwidth)\nfull | 1080x1080 | ~300 KB| Feed\n(standard), detail\noriginal | as-is | ~3 MB | Download,\nzoom","originalText":"thumb | 150x150 | ~15 KB | Profile\ngrid, search\nsmall | 320x320 | ~40 KB |\nNotifications, previews\nmedium | 640x640 | ~100 KB| Feed\n(low bandwidth)\nfull | 1080x1080 | ~300 KB| Feed\n(standard), detail\noriginal | as-is | ~3 MB | Download,\nzoom","textAlign":"center","verticalAlign":"middle","containerId":"shape-2","lineHeight":1.3,"autoResize":false,"customData":{"revealStep":2}},{"angle":0,"strokeColor":"#a68a53","backgroundColor":"#fff7e6","fillStyle":"solid","strokeWidth":1.5,"strokeStyle":"solid","roughness":0.7,"opacity":100,"version":1,"versionNonce":1,"isDeleted":false,"groupIds":["step-3"],"frameId":null,"roundness":null,"boundElements":[{"type":"text","id":"shape-5"}],"updated":0,"link":null,"locked":false,"id":"shape-4","type":"rectangle","seed":333,"x":36,"y":342,"width":508.42990000000003,"height":699,"customData":{"revealStep":3}},{"angle":0,"strokeColor":"#394557","backgroundColor":"transparent","fillStyle":"solid","strokeWidth":1.5,"strokeStyle":"solid","roughness":0.7,"opacity":100,"version":1,"versionNonce":1,"isDeleted":false,"groupIds":["step-3"],"frameId":null,"roundness":null,"boundElements":null,"updated":0,"link":null,"locked":false,"id":"shape-5","type":"text","seed":406,"x":56,"y":360,"width":468.42990000000003,"height":663,"fontSize":17,"fontFamily":1,"text":"Image Processing Details\n\nInput: Raw photo (3-20 MB, various formats)\n\nStep 1: Validate\n- Check file format (JPEG, PNG, HEIC, WebP)\n- Virus/malware scan\n- EXIF data extraction (GPS, camera, timestamp)\n- Strip sensitive EXIF (preserve orientation)\n\nStep 2: Process\n- Auto-orient based on EXIF rotation tag\n- Apply filter (if user selected one)\n- Color profile normalization (sRGB)\n\nStep 3: Resize (generate multiple versions)\n\nStep 4: Compress\n- JPEG quality 85% for full, 80% for medium/small\n- WebP generation for Android (30% smaller)\n- Progressive JPEG (loads blurry-to-sharp)\n\nStep 5: Content moderation (ML)\n- NSFW detection\n- Violence detection\n- Spam/scam text overlay detection\n- Flag for human review if confidence < threshold\n\nOutput: 5 image files stored in S3\nTotal processing time: 2-5 seconds per photo","originalText":"Image Processing Details\n\nInput: Raw photo (3-20 MB, various formats)\n\nStep 1: Validate\n- Check file format (JPEG, PNG, HEIC, WebP)\n- Virus/malware scan\n- EXIF data extraction (GPS, camera, timestamp)\n- Strip sensitive EXIF (preserve orientation)\n\nStep 2: Process\n- Auto-orient based on EXIF rotation tag\n- Apply filter (if user selected one)\n- Color profile normalization (sRGB)\n\nStep 3: Resize (generate multiple versions)\n\nStep 4: Compress\n- JPEG quality 85% for full, 80% for medium/small\n- WebP generation for Android (30% smaller)\n- Progressive JPEG (loads blurry-to-sharp)\n\nStep 5: Content moderation (ML)\n- NSFW detection\n- Violence detection\n- Spam/scam text overlay detection\n- Flag for human review if confidence < threshold\n\nOutput: 5 image files stored in S3\nTotal processing time: 2-5 seconds per photo","textAlign":"left","verticalAlign":"middle","containerId":"shape-4","lineHeight":1.3,"autoResize":false,"customData":{"revealStep":3}}],"appState":{"viewBackgroundColor":"#fbfbf8","gridSize":null},"files":{}}