How datnguyen238/bartr works
Bartr is an AI-assisted bartering marketplace: members manage listings and preferences, discover compatible item bundles, then negotiate and confirm trades. The frontend calls a FastAPI marketplace API; its domain layer enforces identity, listing and trade rules over a selected repository. Storage can be DynamoDB or local JSON/memory, while image valuation and semantic discovery are optional provider-backed capabilities. README documents the major trade safeguards; unsampled route and service internals limit the edges shown here.
Main entry points: marketplace.py HTTP endpoints · main.py Application setup · page.tsx Marketplace pages · search.py Semantic matching
Components 15
Member experience
- Marketplace pages
frontend/app/page.tsx - Bundle discovery
frontend/app/discover/_components/discovery.tsx - Inventory editing
frontend/components/inventory/inventory-screen.tsx - Preferences
frontend/components/profile/preferences-screen.tsx - Trade workspace
frontend/components/trade/trade-workspace.tsx
Marketplace API
- HTTP endpoints
backend/app/api/marketplace.py - Application setup
backend/app/main.py
Marketplace rules
- Marketplace domain
backend/app/domain.py
AI and discovery
- Semantic matching
backend/app/services/search.py - Semantic projections
backend/app/services/dynamodb_semantic.py - Image valuation
backend/app/services/image_analysis.py
Persistence
- DynamoDB repository
backend/app/storage/dynamodb.py - Local or Mongo state
backend/app/storage/state.py - Image persistence
backend/app/storage/dynamodb_images.py
Other components
- Member
Connections 15
- Member → Marketplace pages: uses
README.md - Marketplace pages → HTTP endpoints: requests API
README.md - Bundle discovery → HTTP endpoints: loads matches
frontend/app/discover/_components/discovery.tsx - Inventory editing → HTTP endpoints: manages listings
- Preferences → HTTP endpoints: saves preferences
- Trade workspace → HTTP endpoints: manages offers
- Application setup → HTTP endpoints: mounts routes
backend/app/main.py - Application setup → Marketplace domain: creates service
backend/app/main.py - HTTP endpoints → Marketplace domain: invokes operations
backend/app/api/marketplace.py - Application setup → DynamoDB repository: selects backend
backend/app/main.py - Application setup → Local or Mongo state: selects backend
backend/app/main.py - HTTP endpoints → Image valuation: analyzes image
README.md - HTTP endpoints → Semantic matching: indexes listings
backend/app/api/marketplace.py - Semantic matching → Semantic projections: uses Dynamo variant
- DynamoDB repository → Image persistence: inherits image storage
backend/app/storage/dynamodb.py