99 lines
3.6 KiB
Markdown
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.
|