Skip to content

Repository files navigation

 Cart Ops mobile app promotional banner collage in dark theme. Features multiple screenshots showing groups and purchases lists, item entry keypad with real-time totals and price graph, item details with price history trend, and tracked purchased food items. Center overlay displays purple shopping cart logo with 'CART_OPS Advanced Commerce Operator Toolset' text.

Cart Ops

Your personal commerce operator toolset focusing on cognitive delegation of financial resource management via technological assistance.

Flutter Dart SQLite

πŸš€ Getting Started

  • Get dependencies:
    flutter pub get
  • Generate DAOs:
    dart run build_runner build
  • Generate app icons:
    dart run flutter_launcher_icons
  • Generate splash screen:
    dart run flutter_native_splash:create
  • Check if source code is fine:
    flutter analyze
  • Check if logic is working correctly:
    flutter test
  • Build release APK:
    flutter build apk --release --target-platform android-arm64

🎯 Mission Objectives

General Plan

PHASE ALPHA: GENERAL OPERATIONS

Configuration Parameters

  • Globally Set Currency Symbol
  • Globally Set Theme Colors
  • Globally Set Weight Unit (Metric, Imperial or Both)

Core Operations

  • CRUD General purchases + Groups Screen
  • CRUD purchase Screen
  • Set per purchase budget
  • CRUD PurchasedItems Screen
  • CRUD reusable items

PHASE BRAVO: OPERATOR QUALITY OF LIFE

  • Item details autocompletion while typing
  • Item Camera identification (tensorflow) Autocompletion works way too well for needing this
  • Item duplication Can be done quickly with autocompletion
  • Item suggestions while typing based on history
  • Easy price per item/quantity toggle
  • Core Numpad UI
  • Numpad Variant - Calculator (bottom to top)
  • Numpad Variant - Telephone (top to bottom)

PHASE CHARLIE: ADVANCED OPERATIONS

Intelligence & Analytics

  • Purchase history
  • Price history for individual items
  • Price history graph for individual items
  • Price history analytics on item autocompletion
  • Track Monthly spend

PHASE DELTA: POLISH

  • Modal discount calculation mini-tool
  • Delete Image prompt timeout loading bar
  • Pop up Image viewer
  • Auto-detect recommended default settings
  • Keypad Haptics
  • Checklist Mode

PHASE ECHO: FUTURE OPERATIONS

  • Globally Set Tax Rate (0-100) for countries/stores that display prices without tax De-prioritized.
  • View everything in percentages (Budget mode only)
  • Long press on Item/Weight toggle to enter pack mode

🚨 Known Operational Defects

Errors hidden behind Keypad

There's a problem with Snackbar's Z-index. It shows always under BottomSheet by default. See Issue: #63254. Item purchase keypad interface is implemented in showModalBottomSheet so, any errors will be hidden behind the keypad.

Wrong Autocompletion Details?

Autocompletion takes "last created" item details and not necessarily the "last purchased". So, if a purchase's purchase date is manually modified, the autocompletion will use it the next time. Just re-enter the price, after that it will be fine again until purchase date is manually overridden.

Flutter M3?

In Flutter's Material3 implementation, surfaceTintColor overlay is meant to animate when elevation changes but, since default shape and borderRadius is null, the Material widget optimizes out this animation from the AppBar.

This can be solved by adding a shape:

MaterialApp(
  theme: ThemeData(
    appBarTheme: const AppBarTheme(
      shape: RoundedRectangleBorder(),
    ),
  ),
)

No more abrupt coloring on elevation changes.

πŸ”« Developer Operations

Create schema snapshot of current database for testing migrations:

dart run drift_dev schema dump lib/core/database/database.dart drift_schemas/
dart run drift_dev schema generate drift_schemas/ test/core/database/generated_migrations/

About

πŸ›’ A smart, offline-first Flutter application to calculate live cart totals, organize your shopping lists and track item pricing history.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages