Files
AbelBirdNest-mobile/CODEX_HANDOFF.md

99 lines
3.6 KiB
Markdown

# Codex Handoff
## Project
- Native Android app
- Package: `id.abelbirdnest.mobile`
- App name: `Abelbirdnest Stock`
- Stack: Kotlin + Jetpack Compose
- Blueprint source of truth: [mobile-api-blueprint.md](./mobile-api-blueprint.md)
## API / Environment
- Production base URL is used from Postman env.
- Active API host used during testing: `https://abelbirdnest.id/api/v1`
## Test Accounts
- `OWNER` -> `abel@zappcare.id` / `abel1234`
- `PURCHASING` -> `tini@zappcare.id` / `tini1234`
- `SALES` -> `budi@zappcare.id` / `budi1234`
- `QC` -> `edi@zappcare.id` / `edi12345`
- `WAREHOUSE` -> `jhon@zappcare.id` / `jhon1234`
## Implemented Modules
- `dashboard`
- `lots`
- `washing`
- `stock_adjustments`
- `purchases`
- `purchase_analyses`
- `purchase_realizations`
- `fund_requests`
- `sales_regular`
- `sales_jit`
- `consignments`
- `lot_transformations`
## Hidden / Removed From Mobile Navigation
- `receipts`
- intentionally hidden because newer server/mobile flow no longer uses it for active role navigation
## Important Behavior
- App is server-driven from `mobile/bootstrap`, but module ordering and UI prioritization were aligned to the blueprint where needed.
- `PURCHASING` login issue was fixed by not forcing `/mobile/lots` fetch for roles that do not have `lots`.
- Quick actions now only show modules that are not already present in the bottom bar.
- For `OWNER`, quick actions were reduced to match actual mobile need. Extra actions like `dana`, `sales`, `jit`, `titip jual`, and `washing` were removed from quick actions.
## Recent UI Changes
### Login
- Brand text changed to `Abelbirdnest`
- Centered vertically
- `Lupa Kata Sandi?` restored
- Removed extra elements below the main login CTA except forgot password
### Lots
- Lot detail top gap was reduced by:
- removing extra spacer
- disabling nested scaffold content insets in detail
- Lot detail footer actions were removed entirely:
- `Print Ulang`
- `Pindah Lokasi`
- `Ubah Status`
- reason: no real mobile action flow yet, avoid dead buttons
### Scan Lot
- Scanner layout was reworked:
- `Tutup` moved outside the camera panel
- scanner panel wrapped as its own card/section
- manual input visually separated from camera section
- scanner corner markers fixed so their directions are correct
### Washing
- `Lot` picker uses search / scan workflow
- `Tempat Cuci` changed to simple dropdown
- card action button `Selesaikan` forced to one line by reducing font and spacing
## Known Gaps / Things Not Yet Wired
- Some modules are present as minimum mobile flows only, aligned to blueprint, not full web parity.
- `lot_transformations` still needs full create flow audit if expanded beyond current scope.
- Some modules are read-only where blueprint only required read paths.
- `pindah lokasi` and `ubah status` for lot detail are not implemented, and UI was intentionally removed.
## Build / Deploy
- Android SDK path used locally: `/opt/android-sdk`
- Typical build command:
- `./gradlew assembleDebug`
- Typical install command:
- `adb install -r app/build/outputs/apk/debug/app-debug.apk`
- Last confirmed installed package timestamp during this session:
- `lastUpdateTime=2026-05-21 23:29:49`
## Current Device
- Frequently used connected device:
- `CPH2781` (Oppo)
## Notes For Next Codex
- Use `mobile-api-blueprint.md` as the primary spec.
- Use web project only as a secondary reference for payload shape or flow hints, not as the source of truth.
- Be careful with nested `Scaffold` padding/insets; several UI gaps came from double insets.
- Many server responses differ slightly between endpoints; avoid assuming detail response shape matches scan/list response shape.