How kkorel/p2p-trading works
This is a Beckn-based peer-to-peer renewable-energy marketplace: prosumers list hourly surplus, buyers discover and purchase offers, and delivery is checked before settlement and trust updates. The main journey runs from the web app through the combined buyer/seller API, catalog discovery, transaction callbacks, and order handling. Oorja chat, automated trading, credential verification, weather/solar analysis, and optional ledger integration are distinct product capabilities. Some subsystem links are documented in the README or SOURCE INDEX; unsampled internals are not inferred beyond that evidence.
Main entry points: routes.ts Buyer API · seller-routes.ts Seller API · auth-routes.ts Authentication routes · chat-routes.ts Chat routes
Components 26
User experience
- Trading pages
packages/web/src/app/buy/page.tsx - Oorja interface
packages/web/src/components/chat/chat-page.tsx - Chat routes
packages/bap/src/chat-routes.ts - Oorja agent
packages/bap/src/chat/agent.ts - Chat trading tools
packages/bap/src/chat/trading-agent.ts - LLM fallback
packages/bap/src/chat/llm-fallback.ts - Speech services
packages/bap/src/chat/sarvam-stt.ts
Marketplace trading
- Buyer API
packages/bap/src/routes.ts - Seller API
packages/bap/src/seller-routes.ts - Seller catalog
packages/bap/src/seller-catalog.ts - Order handling
packages/bap/src/seller-orders.ts - Buyer callbacks
packages/bap/src/callbacks.ts - Transaction state
packages/bap/src/state.ts - External catalog
- Mock DISCOM
packages/bap/src/discom-mock.ts - Trade ledger
packages/bap/src/ledger.ts
Identity and intelligence
- Authentication routes
packages/bap/src/auth-routes.ts - Session middleware
packages/bap/src/middleware/auth.ts - Credential verifier
packages/shared/src/vc/verifier.ts - Solar analysis
packages/shared/src/solar/solar-api.ts - Auto-trade agents
packages/bap/src/auto-trade/buyer-agent.ts - Weather service
packages/shared/src/weather/weather-service.ts
Shared platform
- Postgres and Redis
packages/shared/src/db/prisma.ts - Beckn secure client
packages/shared/src/beckn/secure-client.ts - Trust engine
packages/shared/src/trust/trust-engine.ts
Other components
- Buyer or seller
Connections 27
- Buyer or seller → Trading pages: uses
README.md - Trading pages → Buyer API: calls trading API
README.md - Buyer or seller → Oorja interface: uses
README.md - Oorja interface → Chat routes: sends chat
- Chat routes → Oorja agent: processes message
packages/bap/src/chat-routes.ts - Oorja agent → Chat trading tools: invokes trading tools
packages/bap/src/chat/agent.ts - Oorja agent → LLM fallback: requests fallback
packages/bap/src/chat/agent.ts - Chat routes → Speech services: transcribes audio
packages/bap/src/chat-routes.ts - Buyer API → Transaction state: updates transaction
packages/bap/src/routes.ts - Buyer API → External catalog: discovers offers
README.md - Buyer API → Beckn secure client: sends Beckn messages
- Seller API → Seller catalog: reads catalog
packages/bap/src/seller-routes.ts - Seller API → Order handling: updates order
packages/bap/src/seller-routes.ts - Seller API → Transaction state: reads transaction
packages/bap/src/seller-routes.ts - Seller API → External catalog: publishes catalog
packages/bap/src/seller-routes.ts - Buyer API → Buyer callbacks: receives async response
README.md - Seller API → Mock DISCOM: requests delivery check
- Mock DISCOM → Trust engine: informs trust updates
README.md - Buyer API → Trade ledger: records confirmed trades
README.md - Authentication routes → Session middleware: protects endpoints
packages/bap/src/auth-routes.ts - Session middleware → Postgres and Redis: loads user
packages/bap/src/middleware/auth.ts - Authentication routes → Postgres and Redis: creates session and reads profile
packages/bap/src/auth-routes.ts - Authentication routes → Credential verifier: verifies credentials
- Authentication routes → Solar analysis: requests solar analysis
packages/bap/src/auth-routes.ts - Auto-trade agents → Weather service: uses weather integration
- Auto-trade agents → Seller catalog: uses seller offers
- Buyer API → Postgres and Redis: persists trade data