Skip to content

eddmann/our-wedding-gallery

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

43 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Our Wedding Gallery

Serverless photo gallery with the ability to upload and view photos within an infinite scrolling list.

🌎 Website | 📷 Gallery | 🏗️ Infrastructure

Overview

In the tradition of over engineering a problem related to our upcoming wedding - we really did not want resized/compressed photos shared through WhatsApp/iMessage of the day. So instead, I decided to create a simple photo gallery site which provides guests with the ability to share the the original photos in one place.

  • Local development enviornment which replicates production using Serverless Offline.
  • Serverless JavaScript RESTful API using HAL.
  • Create React App and Tailwind CSS-based client single-page application, hosted statically on S3.
  • Uploaded photos stored within S3 using pre-signed POST requests.
  • Photos resized upon successful upload to S3 (in WebP format) using Lambda and Node.js Sharp library.
  • Photo metadata stored within DynamoDB using a Single-Table Design. Uses a hot key for presenting the listed gallery 😬, so as to take advantage of the timestamp-based sort key.
  • CI pipeline developed using GitHub workflows, deploying the API and client to the given stage-environments (staging and production).

Getting Started

make client/install api/install
make client/dev/start
make api/dev/start

Architecture