Backend (Spring Boot 3.2 / Java 21 / PostgreSQL): - JWT auth with BCrypt password hashing - User profile + Mifflin-St Jeor BMR calculator - Food search + barcode via OpenFoodFacts API with local cache - Meal CRUD with user data isolation and ownership checks - AI photo analysis (OpenAI Vision) with confidence intervals - AI correction feedback loop for personalisation - Flyway DB migrations + RFC-7807 error responses Mobile (React Native / TypeScript): - Full navigation stack (Auth → Tabs → Home stack) - Design tokens (WCAG 2.2 AA colours, 8px grid, 48px touch targets) - 10 screens: Login, Register, Home, Search, Camera, AI Result, Edit Meal, Daily Details, History, Profile - Confidence-aware calorie display (kcal ± range) - Repeat last meal shortcut + macro tracking Docs: - docs/PLAN-AND-REQUIREMENTS.md - docs/traceability.csv (35 requirements, all Implemented)
44 lines
1.3 KiB
JSON
44 lines
1.3 KiB
JSON
{
|
|
"name": "calorie-counter-mobile",
|
|
"version": "1.0.0",
|
|
"private": true,
|
|
"scripts": {
|
|
"android": "react-native run-android",
|
|
"ios": "react-native run-ios",
|
|
"start": "react-native start",
|
|
"test": "jest",
|
|
"lint": "eslint src --ext .ts,.tsx"
|
|
},
|
|
"dependencies": {
|
|
"react": "18.2.0",
|
|
"react-native": "0.73.6",
|
|
"@react-navigation/native": "^6.1.17",
|
|
"@react-navigation/bottom-tabs": "^6.5.20",
|
|
"@react-navigation/native-stack": "^6.9.26",
|
|
"react-native-screens": "^3.31.1",
|
|
"react-native-safe-area-context": "^4.10.1",
|
|
"react-native-camera": "^4.2.1",
|
|
"@react-native-community/slider": "^4.5.2",
|
|
"axios": "^1.7.2",
|
|
"@react-native-async-storage/async-storage": "^1.23.1",
|
|
"react-native-vector-icons": "^10.1.0"
|
|
},
|
|
"devDependencies": {
|
|
"@babel/core": "^7.24.0",
|
|
"@babel/preset-env": "^7.24.0",
|
|
"@babel/runtime": "^7.24.0",
|
|
"@react-native/eslint-config": "^0.73.2",
|
|
"@react-native/metro-config": "^0.73.5",
|
|
"@tsconfig/react-native": "^3.0.3",
|
|
"@types/react": "^18.2.72",
|
|
"@types/react-native": "^0.73.0",
|
|
"@types/react-native-vector-icons": "^6.4.18",
|
|
"typescript": "5.0.4",
|
|
"jest": "^29.6.3",
|
|
"@testing-library/react-native": "^12.4.3"
|
|
},
|
|
"jest": {
|
|
"preset": "react-native"
|
|
}
|
|
}
|