Live · Mobile Flutter Spring Boot Docker · Azure

LISHE Nutrition App

A mobile nutrition app built with Flutter and Spring Boot — personalized meal plans from user health data. I owned the backend from ERD to API contracts, and production deployment with Docker on a Linux VM on Azure.

Role
Backend · Deploy
Stack
Flutter · Spring Boot · PostgreSQL
Live at
sslip.io demo
Production
Docker · Azure Linux VM
System architecture: Flutter client, Spring Boot API, PostgreSQL, and AI recommendation service
High-level system overview

Problem

Users need nutrition guidance tied to personal health profiles — not generic diet tips. The platform must store sensitive health data, serve personalized recommendations, and support a community hub for progress tracking.

Constraints

  • Final-year timeline with a mobile team depending on stable API contracts early.
  • Health data requires careful schema design and validation at the API layer.
  • Recommendation logic must stay decoupled from core CRUD services.

Architecture

LISHE is a mobile-first product: a Flutter app talks to a modular Spring Boot API. REST controllers expose versioned endpoints; services encapsulate business rules; JPA repositories persist normalized health and nutrition entities designed in the ERD phase. The same Flutter client is also published to the web for demos and broader access.

Key components

  • Flutter mobile client — onboarding, health profiles, meal plans, and community screens on Android/iOS (and web).
  • Health profile module — stores user metrics, dietary restrictions, and goals.
  • Nutrition catalog — maps local foods to nutritional values for meal planning.
  • Recommendation interface — integrates AI-based diet suggestions without coupling mobile clients to model internals.
  • Community hub API — progress tracking and peer motivation features.

Production deployment

The backend ships in production with Docker on a Linux-based virtual machine on Microsoft Azure — containerized services, predictable environments, and a VM I can operate and harden for a live mobile API.

  • Docker — package the Spring Boot API (and supporting services) for consistent deploys.
  • Azure Linux VM — host production workloads on a Linux server in Azure.
  • Public demo — Flutter web build at 102.37.219.193.sslip.io.

Key decisions

  • Flutter for a single mobile codebase targeting phones first, with web as a secondary surface.
  • PostgreSQL for relational integrity on health profiles and meal-plan history.
  • DTO pattern at API boundaries to avoid exposing entity graphs directly.
  • JWT-based auth for mobile clients with role separation where needed.
  • Docker on Azure Linux so production matches local environments and can scale with the VM.

Outcome

Shipped a mobile nutrition product — Flutter client + Spring Boot API — with a documented schema, secured endpoints, and production hosting on Docker / Azure Linux. Try the live web build at 102.37.219.193.sslip.io.