c91ab1f272a373c3b5c979bf243b43d47311eed0
🌱 Canteen Seed Data Import Tool
Standalone seed data import tool for the Canteen Asset Tracker. Conceptualizes the import pipeline before integration into the admin panel.
Purpose
Import Cantaloupe seed data (CSV export) into the canteen assets database with:
- Header Mapping — Raw Excel headers → CSV headers → DB column names
- Location Extraction — Parse Customer & Place columns into structured fields
- GPS Derivation — Handle multi-floor GPS offsets
- Serial Validation — OCR corrections, unknown machine identification
- Type/Class/Make/Model Normalization — Consolidate to Class, Make, Model
- Pricing Status Decoding — Remote pricing status meanings
- Telemetry Decoding — Card reader brand/type from telemetry IDs
- Alert Interpretation — Alert code meanings
- Sales Priority Scoring — Low/mid/high business value
- Backup & Restore — Preserve existing GPS + check-in data
- Validation Reports — Detailed import summary
Data Files
seed-data/
├── header_modified.csv # Header mapping: raw Excel → CSV → DB
├── import_seed.csv # Seed data (vending machine export)
└── reference_handbook.md # Extraction rules & reference docs
Usage
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
python main.py seed-data/import_seed.csv --db /path/to/assets.db [--dry-run]
Integration
Once validated, this tool will be integrated into the Canteen Admin Server.
Database Schema
Shares the same assets.db schema as the Canteen Asset Tracker:
- assets table with columns: machine_id, serial_number, name, make, model, address, building_name, building_number, floor, room, trailer_number, latitude, longitude, company, location_area, place, category, status, priority, pricing_status, card_reader_brand, card_reader_model, dex_report_date, install_date, deployed, pulled_date, disney_park, is_disney, etc.
- checkins table for GPS check-in records
- See main project for full schema.
Priority
This tool is a conceptual prototype. Once the pipeline is stable, the logic will be ported to the admin panel as a feature.
Description
Languages
Python
73.1%
HTML
26.5%
Shell
0.4%