How mahmoudadeli/jomla-backend works
Jomla is a B2B group-buying marketplace: buyers discover supplier offers and join quantity-based batches, or create and join group requests that suppliers can bid on. The README describes automated categorization, moderation, supplier matching, fulfillment, and multi-round AI negotiation backed by Qdrant. The tree supports these major subsystems, but sampled implementation is limited to selected query handlers; workflow links beyond the documented behavior are therefore kept at subsystem level. Persistence and external integration wiring are not fully sampled.
Main entry points: GroupRequests Group requests · HangfireJobDispatcher.cs Background jobs · AppDbContext.cs Application database · SupplierMatchingJob.cs Supplier matching
Components 26
API access
- Offer endpoints
Jomla.API/Controllers/OffersController.cs - Batch endpoints
Jomla.API/Controllers/BatchesController.cs - Request endpoints
Jomla.API/Controllers/GroupRequestsController.cs - Request offer endpoints
Jomla.API/Controllers/GroupRequestOffersController.cs - Admin endpoints
Jomla.API/Controllers/AdminController.cs - Authentication endpoints
Jomla.API/Controllers/AuthController.cs
Marketplace workflows
- Supplier offers
Jomla.Application/Features/Offers - Batch purchasing
Jomla.Application/Features/Batches - Group requests
Jomla.Application/Features/GroupRequests - Categories
Jomla.Application/Features/Categories - Supplier preferences
Jomla.Application/Features/SupplierCategoryPreferences
Matching and AI
- AI moderation
Jomla.Infrastructure/AI/ModerationAgent.cs - AI categorization
Jomla.Infrastructure/AI/CategoryAgent.cs - Supplier matching
Jomla.Infrastructure/Jobs/Matching/SupplierMatchingJob.cs - AI negotiation
Jomla.Infrastructure/AI/NegotiationAgent.cs - Round indexing
Jomla.Infrastructure/AI/NegotiationRoundIndexer.cs
Platform services
- Background jobs
Jomla.Infrastructure/Jobs/JobDispatcher/HangfireJobDispatcher.cs - Notifications and realtime
Jomla.Application/Features/Notifications - Realtime delivery
Jomla.API/Services/RealtimeService.cs - Identity and tokens
Jomla.Infrastructure/Auth/IdentityService.cs - Application database
Jomla.Infrastructure/Persistance/AppDbContext.cs
Other components
- Buyers
- Suppliers
- Admins
- Qdrant vector store
- Language model
Connections 36
- Buyers → Offer endpoints: browse
- Buyers → Batch endpoints: join batches
- Buyers → Request endpoints: create and join
- Buyers → Request offer endpoints: respond
- Suppliers → Offer endpoints: manage offers
- Suppliers → Batch endpoints: manage batches
- Suppliers → Request endpoints: view matches
- Suppliers → Request offer endpoints: place bids
- Admins → Admin endpoints: review content
- Offer endpoints → Supplier offers: dispatches
- Batch endpoints → Batch purchasing: dispatches
- Request endpoints → Group requests: dispatches
- Request offer endpoints → Group requests: dispatches
- Admin endpoints → Supplier offers: moderates
- Admin endpoints → Group requests: moderates
- Authentication endpoints → Identity and tokens: authenticates
- Supplier offers → Application database: reads and writes
- Batch purchasing → Application database: reads and writes
- Group requests → Application database: reads and writes
- Categories → Application database: reads and writes
- Supplier preferences → Application database: reads and writes
- Supplier offers → AI moderation: submits for review
- Group requests → AI categorization: detects category
- Group requests → AI moderation: submits for review
- Supplier matching → Supplier preferences: uses preferences
- Supplier matching → Group requests: finds requests
- Supplier matching → Notifications and realtime: notifies suppliers
- Background jobs → Supplier matching: dispatches
- Background jobs → AI moderation: dispatches
- Background jobs → AI negotiation: dispatches expiry rounds
- AI negotiation → Language model: requests pricing
- AI negotiation → Qdrant vector store: retrieves history
- Round indexing → Qdrant vector store: indexes rounds
- Group requests → Background jobs: schedules work
- Batch purchasing → Background jobs: schedules fulfillment
- Notifications and realtime → Realtime delivery: delivers updates