Inspiration UCF's dining spots close every night with good food still on the counter, while many students eat on a tight budget. We wanted to connect the two on our own campus. What it does KnightSaver is an iOS app where UCF dining spots sell leftover food as cheap Surprise Bags.

For students

UCF students only: you sign in with your @ucf.edu email, so every account belongs to a real UCF student. The database itself refuses any other student sign-up. Explore: Surprise Bags from 17 real UCF dining spots, with pickup time, bags left, street address, walking distance from your location and Apple Maps directions. Shelves like Pick up now, Near you, Community favorites and All on campus, plus search. Reserve or join the waitlist: reserve with Apple Pay; when a bag is sold out, join the waitlist and get an offer if one frees up. Manage or cancel your pickup from Profile. Knight Pass: one reusable QR pass in your profile that staff scan at the counter. Past Surprise Reveals: after a verified pickup, rate the portion, quality and pickup and add a photo of what you got, so the next student knows what to expect. Impact: UCF's weekly campus goal, plus your rescued bags, food saved, CO₂e avoided, a 6-week chart and your recent rescues. Only staff-verified pickups count, and a "How is CO₂e estimated?" page shows the formula and its FAO source. Rewards: every verified order earns Saver Cash, which you spend at campus kitchens by showing a QR (the server checks the balance and never charges twice), and unlocks gifts from partner shops near campus, redeemed with a one-time code. There's also a weekly Rescue League (nicknames only), Knight of the Week and 8 badges. App tour and dark mode: a short tour for new accounts and a dark mode switch in Profile.

For kitchen staff

Live dashboard: current Surprise Bags, reserved pickups, waitlist offers and today's verified rescues. Scan Knight Pass: the camera reads the student's QR, finds their reservation (or lets staff pick one if there are several), and verifies the pickup, optionally with the bag's weight. A pickup can't be verified twice. The same scanner takes Saver Cash off the bill. Manage listings: edit, pause, close or cancel a listing, mark no-shows as missed, and set a max bags per listing. Impact report: bags collected, pickup completion, revenue recovered, average rating and CO₂e avoided, updated only after verified pickups.

AI

EcoKnight AI: a "How can I help you?" assistant for food-waste and climate questions. It can look up the student's own impact, rescues and league standing through read-only tools, and uses a sourced fact list (USDA, EPA) for general numbers. AI listing assistant: staff just say what's left ("6 bagels and 4 croissants, pickup 7 to 7:30") and AI turns it into a ready listing: it splits the items into bags, sets the bag count, price and pickup time, and makes a Surprise Bag or a Rescue Bag that lists its contents. Staff can also edit a live listing by voice. Nothing goes live until staff approve it, and the AI never makes allergen or food-safety claims. Both run on Google Gemini, with Apple's on-device model and offline rules as fallbacks, so they keep working without a connection. How we built it Swift and SwiftUI on iOS 17, with a Supabase backend (Postgres, Auth with @ucf.edu sign-up, row-level security and transactional functions for reservations and verification). Google Gemini powers the voice-to-listing assistant and EcoKnight, with Apple's on-device model and offline rules as fallbacks. We tested HTML previews of every screen with Playwright. Challenges Keeping impact honest (only verified pickups count), keeping AI suggestions under staff control, and syncing two people's work on the student and kitchen sides in one weekend. What's next Onboard real UCF dining partners and partner shops, capture Apple Pay only after a verified pickup, add a signed Apple Wallet Knight Pass, and open leagues for residence halls and student organizations.

Share this project:

Updates

Submission history