Skip to content

Latest commit

Β 

History

267 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

AdvGenPriceComparer

Combat Illusory Discounts with P2P Price Intelligence & AI

A Windows desktop application for tracking and comparing grocery prices across Australian supermarkets, powered by peer-to-peer data sharing and artificial intelligence.

🎯 Mission

Fight misleading "sale" prices and illusory discounts by building a transparent, community-driven grocery price tracking network. Share real-time price data across a P2P network and leverage AI to automatically extract pricing from supermarket catalogues.

✨ Key Features

🌐 Peer-to-Peer Price Sharing

  • Decentralized Network: Share grocery prices directly with other users without central servers
  • Server Discovery: Use servers.json configuration to find and connect to P2P nodes
  • Regional Filtering: Connect to price-sharing nodes in your region (NSW, VIC, QLD, etc.)
  • Real-time Sync: Automatic synchronization of price updates across the network
  • Privacy-Focused: Direct peer connections, no central data collection
  • Scalable Storage: For large-scale data, use AdvGenNoSqlServer (sister project)

πŸ€– AI-Powered Catalogue Processing

  • LLM Integration: Automatically extract pricing from PDF catalogues using Large Language Models
  • ML.Net Support: Machine learning capabilities for price prediction and analysis (planned)
  • Smart Matching: AI-assisted product matching across different supermarket chains
  • OCR Processing: Extract text from image-based catalogue PDFs

πŸ“Š Price Intelligence

  • Historical Tracking: Track price changes over time to identify genuine vs. fake discounts
  • Multi-Store Comparison: Compare prices across Coles, Woolworths, IGA, Aldi, and other chains
  • Price Alerts & Notifications: Get notified when prices drop or deals are about to expire
  • Discount Analysis: Identify illusory discounts by comparing current "sale" prices with historical data
  • Reports & Analytics: Weekly specials digest and best deals tracking
  • Import/Export: JSON import from Coles/Woolworths/Drakes, export with filters and compression

πŸ›’ User Experience & Organization

  • Shopping Lists: Create, manage, and track progress of your shopping lists
  • Global Search: Search across all items, stores, and price records instantly
  • Favorites: Pin your frequently purchased items for quick access
  • Settings & Customization: Configure your experience and preferences

πŸͺ Comprehensive Coverage

  • Coles
  • Woolworths
  • IGA
  • Aldi
  • Drakes
  • Other Australian supermarkets

πŸ—οΈ Architecture

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚           WPF Desktop App (WPF-UI Fluent Design)                β”‚
β”‚                     (UI Layer - .NET 9)                          β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”   β”‚
β”‚  β”‚   Views      β”‚  β”‚  ViewModels  β”‚  β”‚   Converters        β”‚   β”‚
β”‚  β”‚  β€’ ItemsPage β”‚  β”‚  β€’ MainWindowβ”‚  β”‚  β€’ BoolToVisibility β”‚   β”‚
β”‚  β”‚  β€’ StoresPageβ”‚  β”‚  β€’ ItemVM    β”‚  β”‚  β€’ InverseBool      β”‚   β”‚
β”‚  β”‚  β€’ Dashboard β”‚  β”‚  β€’ ImportVM  β”‚  β”‚                     β”‚   β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜   β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                      β”‚
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚              AdvGenPriceComparer.Data.LiteDB                     β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”   β”‚
β”‚  β”‚ Repositories β”‚  β”‚   Services   β”‚  β”‚     Entities        β”‚   β”‚
β”‚  β”‚  β€’ Items     β”‚  β”‚  β€’ JsonImportβ”‚  β”‚  β€’ ItemEntity       β”‚   β”‚
β”‚  β”‚  β€’ Places    β”‚  β”‚  β€’ Database  β”‚  β”‚  β€’ PlaceEntity      β”‚   β”‚
β”‚  β”‚  β€’ Prices    β”‚  β”‚  β€’ Export    β”‚  β”‚  β€’ PriceRecordEntityβ”‚   β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜   β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                      β”‚
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                   AdvGenPriceComparer.Core                       β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”   β”‚
β”‚  β”‚   Models     β”‚  β”‚  Interfaces  β”‚  β”‚  NetworkManager     β”‚   β”‚
β”‚  β”‚  β€’ Item      β”‚  β”‚  β€’ IGrocery  β”‚  β”‚  β€’ P2P Server       β”‚   β”‚
β”‚  β”‚  β€’ Place     β”‚  β”‚  β€’ IRepos    β”‚  β”‚  β€’ P2P Client       β”‚   β”‚
β”‚  β”‚  β€’ PriceRec  β”‚  β”‚  β€’ Services  β”‚  β”‚  β€’ Discovery        β”‚   β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜   β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                      β”‚
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                LiteDB Embedded Database                          β”‚
β”‚    β€’ Items Collection  β€’ Places Collection  β€’ PriceRecords      β”‚
β”‚    β€’ Categories        β€’ Alerts                                  β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                  Python AI Processing                         β”‚
β”‚  β€’ PDF Catalogue Extraction (LLM-powered)                    β”‚
β”‚  β€’ OCR Processing (pdfplumber, PyPDF2)                       β”‚
β”‚  β€’ Product Categorization                                    β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

πŸ“ˆ Scalability & Sister Project

AdvGenNoSqlServer - Enterprise-Scale Price Storage

As your pricing data grows beyond the capacity of the embedded LiteDB database, you can seamlessly migrate to AdvGenNoSqlServer, our sister project designed for large-scale data management.

When to Use AdvGenNoSqlServer:

  • Millions of price records: LiteDB is great for personal use, but enterprise deployments need more
  • Multi-region deployments: Centralized NoSQL database for regional P2P hub servers
  • Advanced analytics: Run complex queries across massive historical datasets
  • Community hubs: Power community-run price-sharing nodes serving hundreds of users
  • API services: Build public APIs for price data access

Features:

  • High-performance NoSQL database (MongoDB, Cassandra, or CosmosDB)
  • RESTful API for data access
  • Horizontal scaling for millions of records
  • Advanced indexing and query optimization
  • Backup and replication support
  • Docker deployment ready

Migration Path:

// Export from LiteDB
var exporter = new PriceDataExporter(groceryDataService);
await exporter.ExportToJson("price_data_export.json");

// Import to AdvGenNoSqlServer
var importer = new NoSqlImporter("https://your-nosql-server.com");
await importer.ImportFromJson("price_data_export.json");

Architecture with AdvGenNoSqlServer:

Desktop App (LiteDB) ──P2P──> Regional Hub (AdvGenNoSqlServer) ──P2P──> Other Hubs
      ↓                              ↓                                     ↓
 Personal Data              Regional Aggregation                   National Network

This hybrid approach lets individuals use lightweight P2P sharing while community leaders can run powerful regional hubs with AdvGenNoSqlServer for aggregated price intelligence.

πŸ“š Documentation

For a comprehensive guide on how to use all features of AdvGenPriceComparer, please refer to our User Guide. It covers everything from navigating the dashboard and managing your shopping lists to importing/exporting data and troubleshooting common issues.

πŸš€ Getting Started

Prerequisites

For C# Application:

  • Windows 10/11
  • .NET 9.0 SDK
  • Visual Studio 2022 (recommended)

For Python Scripts:

  • Python 3.8+
  • pip (Python package manager)

Installation

  1. Clone the repository

    git clone https://github.com/yourusername/AdvGenPriceComparer.git
    cd AdvGenPriceComparer
  2. Build the C# application

    cd AdvGenPriceComparer
    dotnet restore
    dotnet build -p:Platform=x64
  3. Setup Python environment

    pip install -r requirements.txt

Running the Application

Option 1: Visual Studio (Recommended)

  1. Open AdvGenPriceComparer.sln in Visual Studio 2022
  2. Set platform to x64
  3. Press F5 to run with debugging or Ctrl+F5 to run without debugging

Option 2: Packaged Deployment

cd AdvGenPriceComparer
dotnet publish -c Release -p:Platform=x64 --self-contained true
# Run from: bin\Release\net9.0-windows10.0.19041.0\win-x64\publish\

🌐 P2P Configuration

Server Discovery with servers.json

The application uses a servers.json configuration file to discover and connect to P2P price-sharing nodes. The file is stored at:

%AppData%\AdvGenPriceComparer\servers.json

Example Configuration:

[
  {
    "name": "AusPriceShare-Sydney",
    "host": "price.aus.example.com",
    "port": 8080,
    "isSecure": false,
    "region": "NSW",
    "description": "Australian grocery price sharing - Sydney region",
    "isActive": true
  },
  {
    "name": "LocalTestServer",
    "host": "localhost",
    "port": 8081,
    "isSecure": false,
    "region": "Local",
    "description": "Local testing server",
    "isActive": false
  }
]

Starting a P2P Server

var networkManager = new NetworkManager(groceryDataService);
await networkManager.StartServer(port: 8081);

Connecting to P2P Network

// Connect to specific server
await networkManager.ConnectToServer("AusPriceShare-Sydney");

// Auto-discover and connect to all active servers in region
await networkManager.DiscoverAndConnectToServers("NSW");

Sharing Prices

await networkManager.SharePrice(
    itemId: "item123",
    placeId: "place456",
    price: 3.99m,
    isOnSale: true,
    originalPrice: 5.99m,
    saleDescription: "50% Off - Special"
);

πŸ€– AI & Catalogue Processing

Extract Prices from PDF Catalogues

The Python scripts use LLM APIs to automatically extract product information and pricing from supermarket catalogue PDFs:

python pdf_catalog_extractor.py --input coles_catalogue.pdf --output coles_prices.json

Supported Catalogue Sources:

  • Coles weekly specials
  • Woolworths catalogues
  • Aldi special buys
  • IGA local catalogues

How AI Extraction Works

  1. PDF Processing: Extract text and images from catalogue PDFs
  2. LLM Analysis: Send pages to LLM (GPT-4, Claude, etc.) to identify products and prices
  3. Structured Output: Generate JSON with product names, prices, brands, and categories
  4. Import to Database: Load extracted data into LiteDB for tracking

πŸ€– ML.NET Integration (Planned)

Future ML.NET capabilities for Phase 9-11:

  • Auto-Categorization: ML-powered product categorization during import
  • Price Prediction: Forecast future price trends based on historical data
  • Anomaly Detection: Identify suspicious price changes or fake discounts
  • Smart Buying Recommendations: "Buy Now" vs "Wait" based on price forecasting

πŸ’Ύ Database Structure

LiteDB Collections

Items Collection

{
  "id": "item_001",
  "name": "Milk Full Cream",
  "brand": "Dairy Farmers",
  "category": "Dairy",
  "packageSize": "2L",
  "barcode": "9300632123456"
}

Places Collection

{
  "id": "place_001",
  "name": "Coles Chermside",
  "chain": "Coles",
  "suburb": "Chermside",
  "state": "QLD",
  "latitude": -27.3853,
  "longitude": 153.0356
}

PriceRecords Collection

{
  "id": "record_001",
  "itemId": "item_001",
  "placeId": "place_001",
  "price": 3.99,
  "isOnSale": true,
  "originalPrice": 5.99,
  "dateRecorded": "2026-02-25T10:30:00Z",
  "source": "p2p-network"
}

Database location: %AppData%\AdvGenPriceComparer\GroceryPrices.db

πŸ’‘ Need More Scale? For large-scale deployments with millions of records, migrate to AdvGenNoSqlServer for enterprise-grade performance and scalability.

πŸ“ Project Structure

AdvGenPriceComparer/
β”œβ”€β”€ AdvGenPriceComparer.WPF/              # WPF Application (.NET 9, WPF-UI)
β”‚   β”œβ”€β”€ Views/                            # XAML Views (Items, Stores, Dashboard)
β”‚   β”œβ”€β”€ ViewModels/                       # MVVM ViewModels
β”‚   β”œβ”€β”€ Services/                         # WPF-specific services
β”‚   └── Converters/                       # XAML value converters
β”œβ”€β”€ AdvGenPriceComparer.Core/             # Core Models & Interfaces
β”‚   β”œβ”€β”€ Models/                           # Item, Place, PriceRecord
β”‚   β”œβ”€β”€ Interfaces/                       # Repository interfaces
β”‚   └── Helpers/                          # NetworkManager
β”œβ”€β”€ AdvGenPriceComparer.Data.LiteDB/      # Data Access Layer
β”‚   β”œβ”€β”€ Repositories/                     # LiteDB implementations
β”‚   β”œβ”€β”€ Services/                         # JsonImportService, ExportService
β”‚   └── Entities/                         # LiteDB entity classes
β”œβ”€β”€ AdvGenPriceComparer.Tests/            # xUnit Test Suite (217+ tests)
β”‚   β”œβ”€β”€ Services/                         # JsonImport, ServerConfig tests
β”‚   β”œβ”€β”€ Repositories/                     # Repository layer tests
β”‚   β”œβ”€β”€ ViewModels/                       # ViewModel tests
β”‚   └── Integration/                      # End-to-end tests
β”œβ”€β”€ TestConsole/                          # Console test application
β”œβ”€β”€ NetworkTest/                          # P2P network testing
β”œβ”€β”€ pdf_catalog_extractor.py              # LLM-powered PDF extraction
β”œβ”€β”€ coles_catalogue_scraper.py            # Coles-specific scraper
β”œβ”€β”€ woolworths_catalogue_parser.py        # Woolworths-specific parser
β”œβ”€β”€ requirements.txt                      # Python dependencies
└── servers.json                          # Server configuration

πŸ”§ Development

Building for Different Platforms

# Windows x64 (default)
dotnet publish -c Release -r win-x64

# Windows x86
dotnet publish -c Release -r win-x86

# Windows ARM64
dotnet publish -c Release -r win-arm64

Running Tests

dotnet test AdvGenPriceComparer.Tests

Python Environment Setup

# Install dependencies
pip install -r requirements.txt

# Key Python packages:
# - PyPDF2, pdfplumber: PDF processing
# - openai, anthropic: LLM API clients
# - pytesseract: OCR processing

🀝 Contributing

Contributions are welcome! This is a community-driven project to combat deceptive pricing practices.

Ways to contribute:

  • Add support for more supermarket chains
  • Improve AI extraction accuracy
  • Set up regional P2P nodes with AdvGenNoSqlServer
  • Add price alert features
  • Enhance the UI/UX
  • Report bugs and request features
  • Help build community price-sharing hubs

πŸ“‹ Roadmap

Completed βœ…

  • WinUI 3 Migrated to WPF with Fluent Design (WPF-UI)
  • LiteDB integration with repository pattern
  • JSON Import/Export (Coles, Woolworths, Drakes formats)
  • 217+ xUnit tests with CI/CD pipeline
  • P2P networking with server discovery
  • LLM-powered catalogue extraction
  • Sister project: AdvGenNoSqlServer for large-scale deployments
  • Settings Service with JSON persistence
  • Global Search functionality
  • Price drop notifications and Deal expiration reminders
  • Favorite items list
  • Shopping list integration
  • Reports and analytics (Best deals, weekly digest)

In Progress 🚧

  • ML.NET Auto-Categorization (Phase 9)
  • ML.NET Price Prediction & Forecasting (Phase 11)

Planned πŸ“…

  • AdvGenNoSqlServer integration and migration tools
  • Mobile app (Android/iOS)
  • Barcode scanning
  • Browser extension for online shopping
  • Public P2P node infrastructure with regional hubs

⚠️ Known Issues

COM Registration Error (0x80040154)

If you encounter this error, use .NET 8.0 or run via Visual Studio. See CLAUDE.md for detailed troubleshooting.

πŸ“ License

[Add your license here]

πŸ™ Acknowledgments

  • Built to combat misleading pricing practices in Australian supermarkets
  • Inspired by consumer advocacy groups fighting illusory discounts
  • Community-driven approach to transparent pricing

πŸ”— Related Projects

AdvGenNoSqlServer

Enterprise-scale NoSQL server for large pricing datasets. When your price data grows beyond embedded database limits, AdvGenNoSqlServer provides:

  • Scalable storage for millions of price records
  • RESTful API for distributed access
  • Regional hub deployment for P2P networks
  • Advanced analytics and reporting

Repository: AdvGenNoSqlServer

πŸ“ž Support


Made with πŸ’™ for Australian shoppers

Help us build a transparent grocery pricing network - because you deserve to know the real price!

About

This project aims to define a standard for sharing supermarket price information to promote transparency. Using a peer-to-peer network, users can share and track prices in real time. The project includes a WinUI and Blazor Web App for easy price tracking and data sharing. Join us in building a more transparent and fair shopping experience!

Resources

Stars

3 stars

Watchers

2 watching

Forks

Releases

Sponsor this project

Packages

Used by

Contributors

Languages