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
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.