A full-stack AI-powered web application with food photo analysis, personalized diet plans, and custom workout programs — built with Next.js 15, Firebase, n8n, and a dual AI engine (Gemini + Ollama).
Snap a meal photo and get instant calories, macros (protein, carbs, fat, fiber), 13 vitamins/minerals, allergen detection, and a quality score from 1-10 with AI guidance.
Enter your body stats and goals to receive a personalized 7-day meal plan with exact recipes, prep times, calorie targets, and a grocery list — auto-generates a matching workout plan.
Get a complete weekly exercise program with sets, reps, rest times, form tips, warmup/cooldown, calorie burn estimates — auto-generates a matching diet plan.
| Feature | ⚡ Gemini (Fast) | 🌿 Ollama (Free) |
|---|---|---|
| Food Analysis | ~15s gemini-2.5-flash-lite | ~90s llava:7b (7B vision) |
| Diet Plan | ~30s 7-day detailed plan | ~180s 3-day plan |
| Workout Plan | ~30s Full week + exercises | ~180s Full week |
| Hosting | Google Cloud (API) | Self-hosted (Proxmox VM) |
| Cost | Free tier (rate limited) | $0 forever (your hardware) |
| Privacy | Data sent to Google | 100% on-premise |
| JSON Output | Native (response_mime_type) | Prompt-engineered |
| Vision Support | Yes (multimodal) | Yes (llava:7b) |
Provisioned 3 Ubuntu VMs on Proxmox, configured static IPs, installed Docker, set up UFW firewalls, and created Cloudflare Tunnels for secure access — no port forwarding needed.
Deployed Ollama in Docker with llava:7b (4.7GB vision model) and phi3:mini (2.3GB text model). CPU-only inference — no GPU required. Models run entirely on self-hosted hardware for $0/month.
Built 6 production workflows with async job processing, KV store for result caching, structured JSON prompts, and a dual-engine architecture letting users choose between Gemini (fast) and Ollama (free).
Built the Next.js 15 application with TypeScript, Tailwind CSS v4, Firebase Auth (email + Google OAuth), Firestore real-time database, interactive charts, SVG progress rings, and glass morphism UI.
Connected GitHub to Cloudflare Pages for auto-deploy on push. Configured custom domain (fitlife.marcbd.site) with SSL, Firebase authorized domains, and end-to-end testing of all AI features.
Next.js 15 (App Router) · React 19 · TypeScript 5 · Tailwind CSS v4 · Recharts · Lucide Icons · Framer Motion · react-hot-toast
Firebase Auth · Cloud Firestore · n8n (self-hosted) · Ollama (llava:7b, phi3:mini) · Google Gemini API · Docker Compose
Proxmox VE (hypervisor) · Cloudflare Pages (CDN) · Cloudflare Tunnels · Ubuntu 22.04 · UFW Firewall · GitHub (CI/CD)