Skip to content

MidHunterX/Cart-Ops

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)
  • Globally Set Tax Rate (0-100) for countries/stores that display prices without tax

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

πŸ”« 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/

🚨 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 animated elevation color change is meant to be aesthetically similar to a heavy Gaussian blur BG and not having a smooth transition defeats that purpose.

This can be solved by adding a shape:

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

No more abrupt coloring on elevation changes.

About

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

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages