This is very good. I’d make two accuracy edits: describe EventBridge as partial, and describe donation as eligibility/local mock flow—not a real recipient integration. Use this version: Inspiration Households often discover food too late: a forgotten item expires, a receipt gets lost, or a “Best By” label is treated like a safety deadline. PantryPulse turns pantry awareness into timely, practical action: use it, cook it, shop for it, or donate it safely. What it does PantryPulse is a Telegram household agent. Users photograph receipts or food packages, review extracted items, correct dates when needed, and add confirmed items to their pantry. It provides:
- Pantry and expiring-item views
- Conservative guidance that distinguishes Use By, Best By, and Sell By labels
- Recipe-rescue suggestions for at-risk food
- Shopping-list generation, editing, approval, and handoff to a preferred grocery app
- Donation eligibility checks and a local mock donation flow
- Feedback actions for used, still-good, and tossed food
- One combined decision view instead of multiple noisy alerts How we built it We built PantryPulse with Python, Telegram, Strands Agents SDK, Amazon Bedrock, AWS Lambda, API Gateway, DynamoDB, Systems Manager Parameter Store, CloudWatch, and EventBridge. The application uses deterministic rules for expiry, donation eligibility, inventory status, and persistence. Bedrock is used where image understanding and helpful language add value, while safety-critical decisions remain rule-based. DynamoDB stores pantry inventory, feedback, idempotency records, and short-lived interaction sessions. EventBridge is deployed for scheduled-event handling; unattended household delivery remains future work. Challenges we ran into The biggest challenge was making a conversational Telegram app reliable on serverless infrastructure. Lambda is stateless, but users expect buttons such as “Add to pantry,” “Approve,” and “Donate” to work across separate messages. We solved this by persisting short-lived photo previews, shopping lists, decision state, and callback sessions in DynamoDB. We also addressed Linux Lambda packaging, Bedrock IAM permissions, duplicate-photo prevention, and safe handling of uncertain expiry extraction. Accomplishments that we're proud of
- Built a working end-to-end Telegram pantry workflow on AWS
- Added photo-to-pantry confirmation with duplicate protection
- Kept food-safety logic deterministic and conservative
- Created durable serverless interaction sessions for multi-step button flows
- Implemented shopping, recipe rescue, donation eligibility, feedback, and rescue statistics
- Added evaluation coverage for date-label behavior, specialist topology, and donation safety
- Verified 239 passing tests, 20/20 date-label cases, and 5/5 specialist-topology checks
- Kept deployment within a cost-conscious UAT/demo environment What we learned We learned that a useful agent system needs clear boundaries: models can interpret images and improve communication, but deterministic code should own safety decisions and data changes. We also learned that serverless conversational apps need durable state. A button callback is not part of the same process as the message that created it, so interaction state must be designed as a first-class persistence problem. What's next for PantryPulse Next, we plan to improve shopping-list refresh, surplus-management controls, durable demo mode, and serverless rate limiting while expanding specialist-agent use without weakening deterministic safety rules. We also want to explore opt-in grocery-ordering workflows with Amazon Fresh, Whole Foods, or other grocery partners—but only where supported customer-facing APIs and user authorization are available. Until then, PantryPulse prepares a clear shopping list and hands users off to their preferred grocery app for review and checkout.

Log in or sign up for Devpost to join the conversation.