PROJECT 06YumYard

YumYard.

A food-ordering app with AI image search — point a camera at a dish and it finds it. A five-person OU research project that placed Top-3; I built the backend, the admin, and the mobile client.

team of 5OU research · Top-3ai image searchjan – feb 2025
YumYard app icon
01overview

YumYard is an online food-ordering app with a twist — alongside keyword search, you can point your camera at a dish and an AI model identifies it, then finds it on the menu.

It was a five-person university research project. I owned the engineering: an Express + TypeScript REST backend on MongoDB, a Next.js admin panel, and the Flutter client — three codebases wired to the ML team's recognition model through an image-search service.

The model, trained by the ML team on 30,612 images across 80 food categories, reached 92.10% accuracy — and the project placed Top-3 at OU's Student Scientific Research Competition 2024–2025, with a cash award of nearly USD 1,000.

02architecture

Three codebases around one recognition model.

I built the parts that move data and serve users — a REST backend, an admin panel, and a mobile client. The ML team built the recognition model; an image-search service is the seam between the two.

tier 01
clients
FL
dart · iOS + Android
Flutter client

Firebase Auth (email / Facebook / Google) · keyword + image search · cart · order tracking

rolebuilt
NX
ts · next.js
Next.js admin

NextAuth JWT sessions · 3 management modules

rolebuilt
REST · JWT
tier 02
backend
EX
ts · express + mongoose
Express backend

REST API · JWT auth · food CRUD · order lifecycle · cart · favorites · reviews

rolebuilt
MongoDB AtlasSwagger
image proxy · Roboflow
tier 03
ml
ML
yolov8 + densenet
Food recognition model

30,612 images · 80 categories · 92.10% test accuracy

roleML team
infraCloud-deployed · Render + Vercel
RenderVercelMongoDB AtlasRoboflowFirebase
03engineering

Four pieces I'd hold up as proof.

The model gets the attention, but a demo only ships if everything around it works. These four are the engineering I owned.

A · backend
RESTExpress + TypeScript · MongoDB Atlas

A backend that runs the whole order.

An Express + TypeScript backend on MongoDB Atlas, Swagger-documented — JWT auth with User and Admin roles, food CRUD, the full order lifecycle, cart, favorites, and reviews. Organized into User, Restaurant, Order, and Image-Search areas.

auth
JWT
db
MongoDB
docs
Swagger
B · ai integration
Roboflowthe image-search seam

From a camera frame to a menu item.

The image-search service proxies a photo from the Flutter client to the recognition model and maps the result back to a real menu item — with a confidence-aware fallback UI for the times the model isn't sure.

input
camera/gallery
infer
Roboflow
fallback
confidence
C · mobile
Flutterthe customer app, search to checkout

Search by word, or by camera.

The Flutter client carries Firebase Auth across email, Facebook, and Google; search by keyword or by image from the camera or gallery; and cart, checkout, and order tracking. The image-search path renders results with a confidence-aware fallback.

auth
3 providers
search
text + image
flow
cart → track
D · admin
NextAuthNext.js admin · 3 modules

An admin panel with real sessions.

A Next.js admin panel with NextAuth JWT sessions and three management modules — the operations side of the product, kept as its own codebase, separate from the customer app.

auth
NextAuth
modules
3
deploy
Vercel
integrated & in production
MongoDB AtlasRoboflowFirebase AuthNextAuthSwaggerRenderVercel
04impact

The project, in numbers.

Top-3
finalist
OU research 24–25
92.10%
model accuracy
ML team · test set
3
codebases
backend · admin · app
30,612
training images
80 food categories
~6 wk
to ship
jan – feb 2025
~$1K
cash award
competition prize
5
person team
OU research
4
service areas
Express backend

YumYard was a five-person OU research project. The 92.10% accuracy is the ML team's model result; the three codebases — backend, admin, and mobile — are my engineering contribution. Snapshot from the project, Jan–Feb 2025.

05screens

Five surfaces of the food app.

captured from the app
YumYard — Home
01Home
YumYard — Image search
02Image search
YumYard — Recommended
03Recommended
YumYard — Cart
04Cart
YumYard — Checkout
05Checkout