25 KiB
25 KiB
Auctiora Intelligence Integration Flowchart
Complete System Integration Diagram
┌─────────────────────────────────────────────────────────────────────────────┐
│ COMPLETE SYSTEM INTEGRATION DIAGRAM │
└─────────────────────────────────────────────────────────────────────────────┘
┌──────────────────────────────────────────────────────────────────────────────┐
│ PHASE 1: EXTERNAL SCRAPER (Python/Playwright) - ARCHITECTURE-TROOSTWIJK │
└──────────────────────────────────────────────────────────────────────────────┘
│
┌─────────────────────────────┼─────────────────────────────┐
▼ ▼ ▼
[Listing Pages] [Auction Pages] [Lot Pages]
/auctions?page=N /a/auction-id /l/lot-id
│ │ │
│ Extract URLs │ Parse __NEXT_DATA__ │ Parse __NEXT_DATA__
├────────────────────────────▶│ JSON (GraphQL) │ JSON (GraphQL)
│ │ │
│ ▼ ▼
│ ┌────────────────┐ ┌────────────────┐
│ │ INSERT auctions│ │ INSERT lots │
│ │ to SQLite │ │ INSERT images │
│ └────────────────┘ │ (URLs only) │
│ │ └────────────────┘
│ │ │
└─────────────────────────────┴────────────────────────────┘
▼
┌──────────────────┐
│ SQLITE DATABASE │
│ output/cache.db │
└──────────────────┘
│
┌─────────────────┼─────────────────┐
▼ ▼ ▼
[auctions table] [lots table] [images table]
- auction_id - lot_id - id
- title - auction_id - lot_id
- location - title - url
- lots_count - current_bid - local_path
- closing_time - bid_count - downloaded=0
- closing_time
- followersCount ⭐ NEW
- estimatedMin ⭐ NEW
- estimatedMax ⭐ NEW
- nextBidStepInCents ⭐ NEW
- condition ⭐ NEW
- vat ⭐ NEW
- buyerPremiumPercentage ⭐ NEW
- quantity ⭐ NEW
- biddingStatus ⭐ NEW
- remarks ⭐ NEW
│
┌─────────────────────────────────────┴─────────────────────────────────────┐
│ PHASE 2: MONITORING & PROCESSING (Java) - THIS PROJECT │
└────────────────────────────────────────────────────────────────────────────┘
│
┌─────────────────┼─────────────────┐
▼ ▼ ▼
[TroostwijkMonitor] [DatabaseService] [ScraperDataAdapter]
│ │ │
│ Read lots │ Query lots │ Transform data
│ every hour │ Import images │ TEXT → INTEGER
│ │ │ "€123" → 123.0
└─────────────────┴─────────────────┘
│
┌─────────────────────────┼─────────────────────────┐
▼ ▼ ▼
[Bid Monitoring] [Image Processing] [Closing Alerts]
Check API every 1h Download images Check < 5 min
│ │ │
│ New bid? │ Process via │ Time critical?
├─[YES]──────────┐ │ ObjectDetection ├─[YES]────┐
│ │ │ │ │
▼ │ ▼ │ │
[Update current_bid] │ ┌──────────────────┐ │ │
in database │ │ YOLO Detection │ │ │
│ │ OpenCV DNN │ │ │
│ └──────────────────┘ │ │
│ │ │ │
│ │ Detect objects │ │
│ ├─[vehicle] │ │
│ ├─[furniture] │ │
│ ├─[machinery] │ │
│ │ │ │
│ ▼ │ │
│ [Save labels to DB] │ │
│ [Estimate value] │ │
│ │ │ │
│ │ │ │
└─────────┴───────────────────────┴──────────┘
│
┌───────────────────────────────────────────────┴────────────────────────────┐
│ PHASE 3: INTELLIGENCE LAYER ⭐ NEW - PREDICTIVE ANALYTICS │
└────────────────────────────────────────────────────────────────────────────┘
│
┌─────────────────┴─────────────────┐
▼ ▼
[Intelligence Engine] [Analytics Calculations]
│ │
┌───────────────────┼──────────────┐ │
▼ ▼ ▼ │
[Sleeper Detection] [Bargain Finder] [Popularity Tracker] │
High followers Price < estimate Watch count analysis │
Low current bid Opportunity Competition level │
│ │ │ │
│ │ │ │
└───────────────────┴──────────────┴───────────────────┘
│
┌─────────────────┴─────────────────┐
▼ ▼
[Total Cost Calculator] [Next Bid Calculator]
Current bid × (1 + VAT/100) Current bid + increment
× (1 + premium/100) (from API or calculated)
│ │
└─────────────────┬─────────────────┘
│
┌───────────────────────────────────────────────┴────────────────────────────┐
│ PHASE 4: NOTIFICATION SYSTEM - USER INTERACTION TRIGGERS │
└────────────────────────────────────────────────────────────────────────────┘
│
┌─────────────────┴─────────────────┐
▼ ▼
[NotificationService] [User Decision Points]
│ │
┌───────────────────┼───────────────────┐ │
▼ ▼ ▼ │
[Desktop Notify] [Email Notify] [Priority Level] │
Windows/macOS/ Gmail SMTP 0=Normal │
Linux system (FREE) 1=High │
tray │
│ │ │ │
└───────────────────┴───────────────────┘ │
│ │
▼ ▼
┌──────────────────┐ ┌──────────────────┐
│ USER INTERACTION │ │ TRIGGER EVENTS: │
│ NOTIFICATIONS │ │ │
└──────────────────┘ └──────────────────┘
│ │
┌───────────────────┼───────────────────┐ │
▼ ▼ ▼ │
┌──────────────────┐ ┌──────────────────┐ ┌──────────────────┐ │
│ 1. BID CHANGE │ │ 2. OBJECT │ │ 3. CLOSING │ │
│ │ │ DETECTED │ │ ALERT │ │
│ "Nieuw bod op │ │ │ │ │ │
│ kavel 12345: │ │ "Lot contains: │ │ "Kavel 12345 │ │
│ €150 (was €125)"│ │ - Vehicle │ │ sluit binnen │ │
│ │ │ - Machinery │ │ 5 min." │ │
│ Priority: NORMAL │ │ Est: €5000" │ │ Priority: HIGH │ │
│ │ │ │ │ │ │
│ Action needed: │ │ Action needed: │ │ Action needed: │ │
│ ▸ Place bid? │ │ ▸ Review item? │ │ ▸ Place final │ │
│ ▸ Monitor? │ │ ▸ Confirm value? │ │ bid? │ │
│ ▸ Ignore? │ │ ▸ Add to watch? │ │ ▸ Let expire? │ │
└──────────────────┘ └──────────────────┘ └──────────────────┘ │
│ │ │ │
└───────────────────┴───────────────────┴─────────────┘
│
▼
┌─────────────────────────────────────────────────────────────────────────────┐
│ INTELLIGENCE NOTIFICATIONS ⭐ NEW │
├─────────────────────────────────────────────────────────────────────────────┤
│ │
│ 4. SLEEPER LOT ALERT │
│ "Lot 12345: 25 watchers, only €50 bid - Opportunity!" │
│ Action: ▸ Place strategic bid ▸ Monitor competition ▸ Set alert │
│ │
│ 5. BARGAIN DETECTED │
│ "Lot 67890: Current €200, Estimate €400-€600 - Below estimate!" │
│ Action: ▸ Bid now ▸ Research comparable ▸ Add to watchlist │
│ │
│ 6. HIGH COMPETITION WARNING │
│ "Lot 11111: 75 watchers, bid velocity 5/hr - Strong competition" │
│ Action: ▸ Review strategy ▸ Set max bid ▸ Find alternatives │
│ │
│ 7. TOTAL COST NOTIFICATION │
│ "True cost: €500 bid + €105 VAT (21%) + €50 premium (10%) = €655" │
│ Action: ▸ Confirm budget ▸ Adjust bid ▸ Calculate logistics │
│ │
└─────────────────────────────────────────────────────────────────────────────┘
Intelligence Dashboard Flow
flowchart TD
subgraph P1["PHASE 1: DATA COLLECTION"]
A1[GraphQL API] --> A2[Scraper Extracts 15+ New Fields]
A2 --> A3[followersCount]
A2 --> A4[estimatedMin/Max]
A2 --> A5[nextBidStepInCents]
A2 --> A6[vat + buyerPremiumPercentage]
A2 --> A7[condition + biddingStatus]
A3 & A4 & A5 & A6 & A7 --> DB[(SQLite Database)]
end
DB --> P2_Entry
subgraph P2["PHASE 2: INTELLIGENCE PROCESSING"]
P2_Entry[Lot.java Model] --> Intelligence[Intelligence Methods]
Intelligence --> Sleeper[isSleeperLot<br/>High followers, low bid]
Intelligence --> Bargain[isBelowEstimate<br/>Price < estimate]
Intelligence --> Popular[getPopularityLevel<br/>Watch count tiers]
Intelligence --> Cost[calculateTotalCost<br/>Bid + VAT + Premium]
Intelligence --> NextBid[calculateNextBid<br/>API increment]
end
P2_Entry --> API_Layer
subgraph API["PHASE 3: REST API ENDPOINTS"]
API_Layer[AuctionMonitorResource] --> E1[/intelligence/sleepers]
API_Layer --> E2[/intelligence/bargains]
API_Layer --> E3[/intelligence/popular]
API_Layer --> E4[/intelligence/price-analysis]
API_Layer --> E5[/lots/:id/intelligence]
API_Layer --> E6[/charts/watch-distribution]
end
E1 & E2 & E3 & E4 & E5 & E6 --> Dashboard
subgraph UI["PHASE 4: INTELLIGENCE DASHBOARD"]
Dashboard[index.html] --> Widget1[Sleeper Lots Widget<br/>Opportunities]
Dashboard --> Widget2[Bargain Lots Widget<br/>Below Estimate]
Dashboard --> Widget3[Popular Lots Widget<br/>High Competition]
Dashboard --> Table[Enhanced Table<br/>Watchers | Est. Range | Total Cost]
Table --> Badges[Smart Badges:<br/>DEAL | Watch Count | Time Left]
end
Widget1 --> UserAction
Widget2 --> UserAction
Widget3 --> UserAction
Table --> UserAction
subgraph Actions["PHASE 5: USER ACTIONS"]
UserAction[User Decision] --> Bid[Place Strategic Bid]
UserAction --> Monitor[Add to Watchlist]
UserAction --> Research[Research Comparables]
UserAction --> Calculate[Budget Calculator]
end
Key Intelligence Features
1. Follower/Watch Count Analytics
- Data Source:
followersCountfrom GraphQL API - Intelligence Value:
- Predict lot popularity before bidding wars
- Calculate interest-to-bid conversion rates
- Identify "sleeper" lots (high followers, low bids)
- Alert on sudden interest spikes
2. Price vs Estimate Analysis
- Data Source:
estimatedMin,estimatedMaxfrom GraphQL API - Intelligence Value:
- Identify bargains:
currentBid < estimatedMin - Identify overvalued:
currentBid > estimatedMax - Build pricing models per category
- Track auction house estimate accuracy
- Identify bargains:
3. True Cost Calculator
- Data Source:
vat,buyerPremiumPercentagefrom GraphQL API - Intelligence Value:
- Calculate total cost:
bid × (1 + VAT/100) × (1 + premium/100) - Budget planning with accurate all-in costs
- Compare true costs across lots
- Prevent bidding surprises
- Calculate total cost:
4. Exact Bid Increment
- Data Source:
nextBidStepInCentsfrom GraphQL API - Intelligence Value:
- Show exact next bid amount
- No calculation errors
- Better UX for bidding recommendations
- Strategic bid placement
5. Structured Location & Category
- Data Source:
cityLocation,countryCode,categoryPathfrom GraphQL API - Intelligence Value:
- Filter by distance from user
- Calculate pickup logistics costs
- Category-based analytics
- Regional pricing trends
Integration Hooks & Timing
| Event | Frequency | Trigger | Notification Type | User Action Required |
|---|---|---|---|---|
| Sleeper lot detected | On data refresh | followers > 10, bid < €100 | Desktop + Email | Review opportunity |
| Bargain detected | On data refresh | bid < estimatedMin | Desktop + Email | Consider bidding |
| High competition | On data refresh | followers > 50 | Desktop | Review strategy |
| Bid change detected | Every 1 hour | Monitor detects higher bid | Desktop + Email | Place counter-bid? |
| Closing soon (< 30 min) | When detected | Time-based check | Desktop + Email | Review lot |
| Closing imminent (< 5 min) | When detected | Time-based check | Desktop + Email (HIGH) | Final bid decision |
| Object detected | On image process | YOLO finds objects | Desktop + Email | Confirm identification |
| True cost calculated | On page load | User views lot | Dashboard display | Budget confirmation |
API Endpoints Reference
Intelligence Endpoints
GET /api/monitor/intelligence/sleepers- Returns high-interest, low-bid lotsGET /api/monitor/intelligence/bargains- Returns lots priced below estimateGET /api/monitor/intelligence/popular?level={HIGH|MEDIUM|LOW}- Returns lots by popularityGET /api/monitor/intelligence/price-analysis- Returns price vs estimate statisticsGET /api/monitor/lots/{lotId}/intelligence- Returns detailed intelligence for specific lot
Chart Endpoints
GET /api/monitor/charts/watch-distribution- Returns follower count distributionGET /api/monitor/charts/country-distribution- Returns geographic distributionGET /api/monitor/charts/category-distribution- Returns category distributionGET /api/monitor/charts/bidding-trend?hours=24- Returns time series data
Dashboard Intelligence Widgets
Sleeper Lots Widget
- Color: Purple gradient
- Icon: Eye (fa-eye)
- Metric: Count of lots with followers > 10 and bid < €100
- Action: Click to filter table to sleeper lots only
Bargain Lots Widget
- Color: Green gradient
- Icon: Tag (fa-tag)
- Metric: Count of lots where current bid < estimated minimum
- Action: Click to filter table to bargain lots only
Popular/Hot Lots Widget
- Color: Orange gradient
- Icon: Fire (fa-fire)
- Metric: Count of lots with followers > 20
- Action: Click to filter table to popular lots only
Enhanced Table Features
New Columns
-
Watchers - Shows follower count with color-coded badges:
- 50+ followers: Red (high competition)
- 21-50 followers: Orange (medium competition)
- 6-20 followers: Blue (some interest)
- 0-5 followers: Gray (minimal interest)
-
Est. Range - Shows auction house estimate:
€min-€max- Displays "DEAL" badge if current bid < estimate
-
Total Cost - Shows true cost including VAT and buyer premium:
- Hover tooltip shows breakdown:
Including VAT (21%) + Premium (10%)
- Hover tooltip shows breakdown:
Smart Indicators
- DEAL Badge: Green badge when
currentBid < estimatedMin - Watch Count Badge: Color-coded by competition level
- Urgency Badge: Time-based coloring (< 10 min = red)
Technical Implementation
Backend (Java)
-
File:
src/main/java/auctiora/Lot.java- Added 24 new fields from GraphQL API
- Added 9 intelligence calculation methods
- Immutable record with Lombok
@Withannotation
-
File:
src/main/java/auctiora/AuctionMonitorResource.java- Added 6 new REST API endpoints
- Enhanced insights with sleeper/bargain/popular detection
- Added watch distribution chart endpoint
Frontend (HTML/JavaScript)
- File:
src/main/resources/META-INF/resources/index.html- Added 3 intelligence widgets with click handlers
- Enhanced closing soon table with 3 new columns
- Added
fetchIntelligenceData()function - Added smart badges and color coding
- Added total cost calculator display
Future Enhancements
- Bid History Table - Track bid changes over time
- Comparative Analytics - Compare similar lots across auctions
- Machine Learning - Predict final hammer price based on patterns
- Geographic Filtering - Distance-based sorting and filtering
- Email Alerts - Custom alerts for sleepers, bargains, etc.
- Mobile App - Push notifications for time-critical events
- Bid Automation - Auto-bid up to maximum with increment logic
Last Updated: December 2025 Version: 2.1 Author: Auctiora Intelligence Team