| File | Lines | Purpose |
|---|---|---|
ColorEraDetectionService.kt |
267 | 8 era color palettes, similarity matching, confidence scoring |
EnhancedTextAnalysisService.kt |
293 | 40+ brands, 30+ materials, year extraction, authenticity cues |
| File | Lines | Purpose |
|---|---|---|
MaterialTextureAnalysisService.kt |
350+ | Solid wood vs. particle board, real leather, genuine metal detection |
PatinaAgeDetectionService.kt |
380+ | 5 natural aging indicators, age estimation (20-150 years) |
VintagePatternRecognitionService.kt |
240+ | 5 pattern types (geometric, floral, atomic, organic, decorative) |
| File | Lines | Purpose |
|---|---|---|
CloudAIService.kt |
280+ | Google Cloud Vision, web entity detection, reverse image search |
VintageDatabaseService.kt |
340+ | Known vintage items, similarity matching, provenance verification |
ExpertReviewService.kt |
310+ | 5 certified experts, review triggering, priority system |
MLFeedbackLoopService.kt |
240+ | User corrections, training data collection, auto-retraining |
TensorFlowModelService.kt |
280+ | Custom model loading, GPU acceleration, NNAPI support |
| File | Type | Purpose |
|---|---|---|
VintageDataSyncService.kt |
Android | App-side sync service, 24-hour auto-sync |
backend/routes/data_sync.js |
Backend | API endpoints for museum/auction/marketplace sync |
backend/database/synced_items_schema.sql |
Database | Schema for 100K+ items, full-text search indexes |
setup_data_sync.sh |
Script | Automated setup (database, dependencies, API test) |
| File | Lines | Purpose |
|---|---|---|
MultiEngineDetectionService.kt |
300+ | 3-engine orchestration, weighted consensus voting |
VintageCategoryDetector.kt |
473 | 7-category detection with specific age requirements |
VintageAuthenticationEngine.kt |
350+ | Master orchestrator, integrates all 13 systems |
RealTimeMLCameraService.kt |
250+ | ML Kit integration, camera frame processing |
| Category | Document | Description |
|---|---|---|
| Getting Started | QUICK_REFERENCE.md |
Quick commands, testing scenarios, monitoring |
INSTALLATION_AND_TESTING_GUIDE.md |
Complete setup, testing guide, troubleshooting | |
| Implementation | PHASE1_IMPLEMENTATION_COMPLETE.md |
Color & text analysis (80-85% accuracy) |
COMPLETE_IMPLEMENTATION_SUMMARY.md |
Material, patina, pattern (90-95% accuracy) | |
PHASE3_EXPERT_FEATURES_COMPLETE.md |
Cloud, database, expert (95-99% accuracy) | |
FINAL_PROJECT_STATUS.md |
Complete project overview and metrics | |
| Technical Deep-Dive | MULTI_ENGINE_DETECTION_GUIDE.md |
3-engine AI system, weighted voting, model training |
7_CATEGORY_DETECTION_GUIDE.md |
7 vintage categories, authenticity checks, testing | |
ADVANCED_ACCURACY_ROADMAP.md |
14 techniques to reach 95-99% accuracy | |
DOWNLOAD_MODELS.md |
TensorFlow Lite model installation (5 methods) | |
| Data & Legal | LEGAL_DATA_SOURCES_GUIDE.md |
Legal APIs, museum data, auction records, compliance |
AUTHENTICATION_AND_API_GUIDE.md |
Authentication strategy, API requirements | |
DATABASE_SETUP_GUIDE.md |
PostgreSQL setup, schema, queries | |
| Testing & Debug | TESTING_CHECKLIST.md |
Comprehensive testing checklist, all features |
DEBUG_RESULTS.md |
Build verification, error checking | |
debug_and_test.sh |
Automated testing script | |
| User Guides | USER_TESTING_GUIDE.html |
User-friendly feature guide with screenshots |
vintage_scanner_achievements.html |
Original achievements page (1800+ lines) | |
future_ideas.html |
47 innovative future features with QR codes |
| Frequency | Tasks | Sources |
|---|---|---|
| Daily (2 AM) |
โข Fetch new museum items โข Update auction results โข Refresh marketplace data |
Met Museum, Smithsonian, auction houses |
| Weekly |
โข eBay sold listings โข Etsy price trends โข Price guide updates |
eBay, Etsy, price guides |
| Monthly |
โข Full database refresh โข Rebuild search indexes โข Clean duplicates โข Update similarity vectors |
All sources |
External API Request
โ
Parse JSON Response
โ
Extract Relevant Fields
โโ Name, description
โโ Year, era, period
โโ Manufacturer/maker
โโ Materials
โโ Images (URLs)
โโ Dimensions
โโ Value data
โ
Normalize Data
โโ Standardize categories
โโ Format dates
โโ Clean text
โโ Validate fields
โ
Enrich Data
โโ Determine era from year
โโ Calculate age
โโ Extract materials
โโ Build search vector
โ
Store in PostgreSQL
โโ Check for duplicates
โโ Update if exists
โโ Insert if new
โ
Update Indexes
โโ Full-text search
โโ Year/category indexes
โโ Similarity vectors
โ
Sync to Android App
โโ Push to device (next sync)
// Backend: backend/routes/data_sync.js
// Search for Victorian furniture
const searchUrl = 'https://collectionapi.metmuseum.org/public/collection/v1/search?q=victorian+furniture&hasImages=true';
const searchRes = await axios.get(searchUrl);
// Get first 50 object IDs
const objectIds = searchRes.data.objectIDs.slice(0, 50);
// Fetch each object's details
for (const objectId of objectIds) {
const objectUrl = `https://collectionapi.metmuseum.org/public/collection/v1/objects/${objectId}`;
const objectRes = await axios.get(objectUrl);
const obj = objectRes.data;
// Save to database
await db.query(`
INSERT INTO synced_vintage_items
(source, source_id, name, category, year, image_url, ...)
VALUES ('Met Museum', $1, $2, $3, $4, $5, ...)
ON CONFLICT (source, source_id) DO UPDATE SET updated_at = NOW()
`, [objectId, obj.title, obj.objectName, extractYear(obj.objectDate), obj.primaryImage]);
}
-- Search by category
SELECT * FROM synced_vintage_items
WHERE category = 'Jewelry' AND year BETWEEN 1920 AND 1939
ORDER BY year DESC;
-- Full-text search
SELECT * FROM synced_vintage_items
WHERE search_vector @@ to_tsquery('english', 'tiffany & art & deco')
ORDER BY ts_rank(search_vector, to_tsquery('english', 'tiffany & art & deco')) DESC;
-- Find similar items
SELECT * FROM synced_vintage_items
WHERE category = $1 AND year BETWEEN $2 AND $3 AND manufacturer ILIKE $4;
-- Get price trends
SELECT era, AVG(last_sale_price) as avg_price, COUNT(*) as count
FROM synced_vintage_items
WHERE last_sale_price IS NOT NULL
GROUP BY era
ORDER BY avg_price DESC;