feat(REQ-001): scaffold Ionic 8 + Angular 20 + Capacitor project

- Initialize Ionic tabs project with Angular 20 and Capacitor 8
- Configure 4-tab layout: Journal, Stats, Plans, Profile
- Create feature modules with lazy loading (home, stats, search, profile)
- Add core services stubs (meal, calorie-estimator, auth, storage)
- Add modal placeholders for manual and LLM input
- Apply Precision Vitality design system (colors, fonts, tonal layering)
- Configure Lexend + Plus Jakarta Sans typography
- Implement no-border design rule with tonal surface hierarchy
- Add food dictionary for AI calorie estimation
- Configure environment files with Firebase placeholders
- Set Capacitor appId: run.i_a.calorietracker
- Verify: ionic build and cap sync pass successfully

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-04-16 16:42:57 +02:00
parent 7fd03a99ba
commit 193a63bb4d
64 changed files with 20836 additions and 0 deletions

65
package.json Normal file
View File

@@ -0,0 +1,65 @@
{
"name": "precision-vitality",
"version": "0.1.0",
"author": "Emanuele",
"homepage": "https://git.i-a.run/emanuele/traccia-calorica",
"scripts": {
"ng": "ng",
"start": "ng serve",
"build": "ng build",
"watch": "ng build --watch --configuration development",
"test": "ng test",
"lint": "ng lint"
},
"private": true,
"dependencies": {
"@angular/animations": "^20.0.0",
"@angular/common": "^20.0.0",
"@angular/compiler": "^20.0.0",
"@angular/core": "^20.0.0",
"@angular/forms": "^20.0.0",
"@angular/platform-browser": "^20.0.0",
"@angular/platform-browser-dynamic": "^20.0.0",
"@angular/router": "^20.0.0",
"@capacitor/app": "8.1.0",
"@capacitor/core": "8.3.0",
"@capacitor/haptics": "8.0.2",
"@capacitor/keyboard": "8.0.3",
"@capacitor/status-bar": "8.0.2",
"@ionic/angular": "^8.0.0",
"@ionic/storage-angular": "^4.0.0",
"ionicons": "^7.0.0",
"rxjs": "~7.8.0",
"tslib": "^2.3.0",
"zone.js": "~0.15.0"
},
"devDependencies": {
"@angular-devkit/build-angular": "^20.0.0",
"@angular-eslint/builder": "^20.0.0",
"@angular-eslint/eslint-plugin": "^20.0.0",
"@angular-eslint/eslint-plugin-template": "^20.0.0",
"@angular-eslint/schematics": "^20.0.0",
"@angular-eslint/template-parser": "^20.0.0",
"@angular/cli": "^20.0.0",
"@angular/compiler-cli": "^20.0.0",
"@angular/language-service": "^20.0.0",
"@capacitor/cli": "8.3.0",
"@ionic/angular-toolkit": "^12.0.0",
"@types/jasmine": "~5.1.0",
"@typescript-eslint/eslint-plugin": "^8.18.0",
"@typescript-eslint/parser": "^8.18.0",
"eslint": "^9.16.0",
"eslint-plugin-import": "^2.29.1",
"eslint-plugin-jsdoc": "^48.2.1",
"eslint-plugin-prefer-arrow": "1.2.2",
"jasmine-core": "~5.1.0",
"jasmine-spec-reporter": "~5.0.0",
"karma": "~6.4.0",
"karma-chrome-launcher": "~3.2.0",
"karma-coverage": "~2.2.0",
"karma-jasmine": "~5.1.0",
"karma-jasmine-html-reporter": "~2.1.0",
"typescript": "~5.9.0"
},
"description": "Precision Vitality — Calorie Tracker with AI estimation"
}