README

Pet Recipe App

A Gemini AI-powered recipe generator for pet owners, built on a production-shaped serverless AWS stack: static hosting, Cognito authentication, API Gateway + Lambda, and DynamoDB persistence for saved recipes and pet profiles.

Python Gemini API AWS Lambda DynamoDB API Gateway Cognito S3 / CloudFront HTML / CSS / JavaScript

What It Does

Pet owners describe what they have on hand and what their pet needs, and the app generates a recipe using Google's Gemini model. Signed-in users can save generated recipes and manage pet profiles that carry over between sessions.

Architecture

Hosting

The frontend is deployed to S3 and served through CloudFront at app.joesparkman.com/pet-recipe-app for global delivery and cache control.

Auth

Amazon Cognito handles Hosted UI sign-in with PKCE. The browser stores tokens in session state and sends Bearer JWTs on protected routes.

API & Compute

API Gateway routes requests to Lambda: POST /recipes for generation, plus protected GET/POST routes for saved recipes and pet profiles.

Data

DynamoDB persists user-scoped data across two tables, SavedRecipes and PetProfiles, keyed by identity claims from Cognito tokens.

AI Integration

Lambda builds the recipe prompt and calls Gemini's generateContent, then returns the generated recipe text to the browser UI.

Security Model

The frontend never holds server credentials; secrets stay in backend configuration, and IAM access is scoped to only the services each Lambda needs.

API

This README was written from the app's published architecture and stack rather than pulled from a repo file - the source repository does not currently include a README.md.
Open App Story Visual Diagram Back to Portfolio