Initial commit

This commit is contained in:
Super User
2026-06-14 15:03:29 -04:00
commit 9ac9e9e953
46 changed files with 2655 additions and 0 deletions

57
AGENTS.md Normal file
View File

@@ -0,0 +1,57 @@
# HogarControl
Flutter app for tracking home bills and recurring expenses. All data stored locally via SQLite — no internet required, no accounts.
## Build & install
```bash
export JAVA_HOME=/root/.sdkman/candidates/java/21.0.11-amzn
flutter pub get
flutter build apk --debug
adb install build/app/outputs/flutter-apk/app-debug.apk
```
## Prerequisites
- **JDK 21** via SDKMAN: `sdk use java 21.0.11-amzn`
- **Android SDK** at `/opt/android-sdk` (set via `flutter config --android-sdk /opt/android-sdk`)
- **Flutter 3.27.4** at `/opt/flutter/bin`
- NDK `27.0.12077973` (set in `android/app/build.gradle`)
## Key config
- `android/app/build.gradle` — compileSdk 35, minSdk 26, targetSdk 35, coreLibraryDesugaringEnabled, AGP 8.7.3
- `android/settings.gradle` — AGP + Kotlin plugin versions
- Permissions: `INTERNET`, `POST_NOTIFICATIONS`, `RECEIVE_BOOT_COMPLETED`, `SCHEDULE_EXACT_ALARM`
## Stack
- **State**: Provider (`ChangeNotifierProvider` for `Servicio`, `Factura`, `Configuracion`)
- **DB**: sqflite (single DB `hogarcontrol.db`, tables: `servicios`, `facturas`, `configuracion`)
- **Notifications**: `flutter_local_notifications` with `zonedSchedule` + timezone
- **Charts**: fl_chart (bar chart) + table_calendar
- **UI**: Material 3, no router (manual Navigator pushes)
## Project layout
| Path | Purpose |
|---|---|
| `lib/main.dart` | App entry, MultiProvider setup, theme |
| `lib/models/` | Data classes (`Servicio`, `Factura`, `Configuracion`) |
| `lib/database/database_helper.dart` | Singleton DB with CRUD helpers |
| `lib/providers/` | ChangeNotifier state classes |
| `lib/screens/` | 9 screens (Splash → Dashboard → ...) |
| `lib/services/notification_service.dart` | Local notification scheduling |
| `lib/widgets/` | Reusable UI components |
## DB schema
- `servicios` — id, nombre, icono, color, dia_vencimiento, fecha_creacion
- `facturas` — id, servicio_id (FK), monto, fecha_emision, fecha_vencimiento, estado, nota, fecha_pago
- `configuracion` — id, dias_recordatorio (comma-separated), tema, moneda
## Warnings
- `dart analyze` may flag unused imports/variables in screens — safe to ignore for widget-tree watchers
- Running as root causes flutter warnings but doesn't break builds
- Flutter 3.27.4 has known warnings about x86 target deprecation