SnapAlbum is building a simple photo gallery service. Users can:
- Upload photos - drag and drop images (JPEG, PNG, WebP) up to 20 MB each. Auto-generate thumbnails (small, medium, large).•Albums - organize photos into albums with a title, description, and cover photo.•Sharing - generate public gallery links. Viewers can browse photos in a masonry grid layout.•EXIF data - extract and display camera info, date taken, and GPS coordinates (if present).•Slideshow - full-screen slideshow mode for viewing albums.•Download - download individual photos or entire albums as a ZIP file.
Targeting 20,000 users with 5 million photos total.
Design an image gallery service where users upload photos, organize them into albums, and share galleries. Build this architecture under realistic production constraints, then validate tradeoffs in the design lab simulation.