Snap your fridge. Stop wasting food. Save money every week.
🏆 UMHackathon 2026 · Domain 2: AI for Economic Empowerment & Decision Intelligence
Click above to watch our 10-minute pitch and live prototype demo
Malaysian households waste RM 1,000+ per year on food that expires before it's used. The cycle is familiar:
- You buy groceries, forget what's in the fridge
- Items expire silently — no warnings, no reminders
- You order takeout instead of cooking what you already have
- Good food (and Ringgit) goes straight to the bin
There's no intelligent system that connects what you own to what you should cook — before it's too late.
Cook.GPT uses AI vision to turn your fridge into a decision engine:
| Step | What Happens | |
|---|---|---|
| 1 | Snap | Take a photo of your fridge or pantry |
| 2 | Identify | Z.AI Vision recognizes every ingredient |
| 3 | Alert | Flags items near expiry with RM value at risk |
| 4 | Suggest | Generates Malaysian recipes using what you already have |
| 5 | Track | Logs meals cooked, RM saved, and your progress over time |
Phone Camera ──► Z.AI Vision API ──► Ingredient List
│
┌───────────┼───────────┐
▼ ▼ ▼
Expiry Alert Recipe Gen Savings Est.
│ │ │
└───────────┼───────────┘
▼
Firebase Firestore
│
▼
Profile & History
| Requirement | Install |
|---|---|
| Node.js 18+ | Download |
| Firebase CLI | npm install -g firebase-tools |
| Z.AI API Key | Get one here |
| Firebase Project | Create one with Firestore enabled |
# 1. Clone
git clone https://github.com/USER/Cook.GPT.git
cd Cook.GPT
# 2. Install
npm install
# 3. Configure environment
cp .env.example .envOpen .env and fill in your credentials:
| Variable | Description |
|---|---|
VITE_ZAI_API_KEY |
Your Z.AI (ILMU) API key |
VITE_ZAI_MODEL |
Model name, e.g. ilmu-glm-5.1 |
VITE_FIREBASE_API_KEY |
Firebase Web API key |
VITE_FIREBASE_PROJECT_ID |
Firebase project ID |
VITE_FIREBASE_* |
Remaining Firebase config values |
npm run devOpen http://localhost:3000 and start scanning!
npm run build
firebase deploy --only hosting --project cookgpt-cda67🔒 Note: Firebase configuration values are intentionally excluded from this repository to protect the live production database from unauthorised access and abuse. To run this project locally, please create your own Firebase project at console.firebase.google.com, enable Firestore, and populate your own
.envfile using the template above. The app is fully functional with any valid Firebase project.
| Layer | Technology | Purpose |
|---|---|---|
| Frontend | React 18 + Vite | Fast SPA with HMR |
| Styling | Tailwind CSS | Utility-first responsive design |
| Icons | Material Symbols Outlined | Ligature-based icon system |
| AI Engine | Z.AI Vision API (ILMU-GLM-5.1) | Image recognition & recipe generation |
| Database | Firebase Firestore | Real-time cloud storage |
| Hosting | Firebase Hosting | SSL + global CDN |
Cook.GPT/
├── src/
│ ├── components/
│ │ └── layout/ # BottomNav, Layout shell
│ ├── pages/
│ │ ├── Home.tsx # Dashboard + scan entry
│ │ ├── Scanning.tsx # Camera + AI analysis
│ │ ├── Inventory.tsx # Tracked ingredients
│ │ ├── Recipes.tsx # Recipe list
│ │ ├── Recipe.tsx # Single recipe detail
│ │ ├── Profile.tsx # Stats, XP, ratings
│ │ └── Report.tsx # AI feedback report
│ ├── context/
│ │ └── FridgeContext.tsx # Global state (analysis, profile)
│ ├── App.tsx # Routes
│ ├── firebase.ts # Firebase config
│ ├── main.tsx # Entry point
│ └── index.css # Design tokens + Tailwind
├── index.html # Font imports (Public Sans, Material Symbols)
├── firebase.json # Hosting + rewrite rules
├── .env.example # Env template
└── package.json
| Name | Role |
|---|---|
| Howard Woon Hao Zhe | Project Lead · App Implementation · Repo Management |
| Yim Zi Hao | PRD · System Analysis · QA Testing |
| Sanjay Mukojima Ravindran | Pitch Video & Prototype Demo |
| Kingston Nuing Scott | Presentation Pitch Deck |
Built for UMHackathon 2026 Domain 2: AI for Economic Empowerment & Decision Intelligence
Powered by Z.AI GLM