How davidshmavid1/vendi works
Vendi supports farmers’ markets and popup events through public discovery, organizer setup and management, vendor applications, and stall reservations. Its Next.js frontend contains established Auth.js, Prisma, and Stripe workflows, while Django provides a separate API and PostgreSQL database; the README explicitly notes that moving the frontend did not migrate those workflows or data. The graph preserves these separate surfaces. Some backend modules were only sampled partially, so uncertain connections between their APIs and services are omitted.
Main entry points: route.ts Stripe webhook · DiscoveryClient.tsx Market discovery · applications.ts Application actions · services.py Market scheduling
Components 27
Discovery and events
- Market discovery
frontend/src/app/markets/DiscoveryClient.tsx - Filter logic
frontend/src/lib/discovery/logic.ts - Market API
backend/markets/api.py - Market scheduling
backend/markets/services.py - Layout and pricing
backend/layouts/services.py
Applications and reservations
- Application review
frontend/src/app/organizer/[organizationId]/applications/OrganizerApplications.tsx - Application actions
frontend/src/server/actions/applications.ts - Application state
frontend/src/domain/applicationStateMachine.ts - Application API
backend/applications/api.py - Application intake
backend/applications/services.py - Stall reservations
backend/reservations/services.py - Booking actions
frontend/src/server/actions/bookings.ts
Accounts and organizations
- Account services
backend/accounts/services.py - Organization teams
backend/organizations/services.py - Vendor businesses
backend/vendors/services.py - Participation moderation
backend/moderation/services.py
Frontend commerce
- Prisma database
frontend/src/lib/prisma.ts - Payment workflows
frontend/src/domain/payments.ts - Stripe webhook
frontend/src/app/api/webhooks/stripe/route.ts - Booking state
frontend/src/domain/bookingStateMachine.ts - Application fee payment
frontend/src/domain/applicationFeePayments.ts - Fee payment state
frontend/src/domain/applicationStateMachine.ts
Other components
- Market visitor
- Organizer
- Vendor
- Stripe
- Django PostgreSQL
Connections 25
- Market visitor → Market discovery: browses
- Market discovery → Filter logic: parses filters
- Market discovery → Market API: fetches markets
- Organizer → Market scheduling: manages schedule
- Organizer → Layout and pricing: edits layouts
- Vendor → Application actions: submits application
- Organizer → Application review: reviews applications
- Application actions → Application state: invokes transitions
- Vendor → Booking actions: books stall
- Vendor → Stall reservations: requests hold
- Application intake → Django PostgreSQL: reads and writes
- Stall reservations → Django PostgreSQL: reads and writes
- Market scheduling → Django PostgreSQL: reads and writes
- Layout and pricing → Django PostgreSQL: reads and writes
- Account services → Django PostgreSQL: reads and writes
- Organization teams → Django PostgreSQL: reads and writes
- Vendor businesses → Django PostgreSQL: reads and writes
- Participation moderation → Django PostgreSQL: reads and writes
- Payment workflows → Prisma database: reads and writes
- Stripe webhook → Stripe: verifies events
- Stripe webhook → Prisma database: looks up payment
- Stripe webhook → Booking state: confirms booking
- Stripe webhook → Fee payment state: confirms fee
- Application actions → Application fee payment: starts fee payment
- Application fee payment → Stripe: creates payment