MOP 4.3 — Temporary Vendor Permits (Food Trucks & Flea Market Stalls)¶
Audience: Vendor, Event Committee,
society_adminOutcome: One-day or multi-day permits are issued for vendors to operate inside the society for a specific event (flea market, food truck festival, sports day food court, etc.) — with QR-coded entry passes validated by security guards.
1. End-to-end flow¶
Vendor (mobile)
└─ POST /api/applications (apply to event)
↓
Event Committee (committee dashboard)
├─ Review applications
└─ Approve / Reject (can_view_vendor_applications must be true)
↓
Society admin (admin dashboard)
└─ Issues permit + QR (one per vendor per stall)
↓
Vendor on event day
├─ Shows QR at gate
└─ Security guard scans (pass_scans table tracks every entry/exit)
↓
Settlement
└─ Society admin records: footfall, fees collected, security deposit refunded
2. Stall sizing & charges¶
Defined per event (MOP 3.1). Common items:
- Stall space — calculated from events.stall_sizes
- Security guards — ₹1,500 per guard (configurable in SOP)
- Electrical points — common-area free, extra points charged
- Cleaning — pre + post-event
- Misc spot charges — at SPOC discretion
These are reflected as a checklist in the Event Wizard Step 2 (logistics) and consolidated into the committee finance ledger.
3. APIs touched¶
| Method | Endpoint |
|---|---|
| POST | /api/applications (vendor applies) |
| GET | /api/committee/applications |
| PUT | /api/committee/applications/{id}/decision?status=approved\|rejected |
| POST | /api/admin/passes (generates QR) |
| POST | /api/security-guard/scan (QR validation) |
| GET | /api/admin/passes/scans?event_id=... |
| POST | /api/admin/events/{id}/settle |
4. Permit / QR data model¶
event_passes
id, event_id, vendor_id, agency_id?, stall_no,
qr_token (unique, signed),
valid_from, valid_to, max_scans, scan_count,
issued_by, issued_at, status
pass_scans
id, pass_id, guard_id, scanned_at, direction (in|out), location_lat, location_lng
5. Edge cases & FAQ¶
- Lost QR → Society admin re-issues; old QR is
revoked. - Pass used outside its time window → backend returns
expired, guard sees a red banner. - Multiple stalls / vendor → multiple
event_passesrows; each pass is independent. - Refund of security deposit is recorded as a finance entry by the committee treasurer (MOP 3.3).
6. Related MOPs¶
- MOP 3.1 — Event Lifecycle
- MOP 4.1 — Vendor Onboarding
- MOP 2.1 — Security Guards (the scanners)
- MOP 2.5 — Committee Approvals (Step 5 SPOC sign-off ≈ pass issuance trigger)