first commit

This commit is contained in:
Anurag Jangid 2026-10-08 02:52:58 +05:30
commit 34ea15a54d
246 changed files with 18660 additions and 0 deletions

185
docs/PRD.md Normal file
View file

@ -0,0 +1,185 @@
# Product Requirements Document — Desi Clans
**Version:** 1.0
**Status:** Constitution (pre-build)
**Last updated:** 2026-04-04
**Owner:** Product / Engineering
---
## 1. Vision
Desi Clans is a **premium, Bengaluru-first** platform for discovering and attending **Indian cultural celebrations**—Holi, Garba, Dandiya, and related festivities. The experience should feel **cinematic and editorial**, not like a generic ticket aggregator or concert listing site.
**In scope:** Cultural events, curated editions, venues across Bengaluru (Palace Grounds, KTPO Whitefield, HSR Layout, and similar).
**Out of scope:** Concerts, generic nightlife listings, multi-city expansion beyond Bengaluru in v1.
---
## 2. Goals
| Goal | Success signal |
|------|----------------|
| Premium brand perception | Editorial layouts, strong typography, intentional motion |
| Mobile-first attendance | ≥60% traffic on mobile; core flows usable one-handed |
| Fast | LCP < 2.5s on 4G; API p95 < 300ms for public reads |
| Accessible | WCAG 2.1 AA for public UI; keyboard + screen reader paths |
| SEO | Indexable event URLs, share previews, structured data |
| Operable | Admin can publish editions, media, and ticket inventory without deploys |
| Trustworthy ticketing | Clear pricing, issued tickets with QR, reliable check-in |
---
## 3. Personas
### 3.1 Attendee (primary)
- Discovers events via search, social, or word of mouth.
- Needs date, venue, vibe, gallery, and a frictionless path to buy or hold tickets.
- Expects mobile ticket (QR) at the gate.
### 3.2 Organizer / Desi Clans ops
- Publishes event editions, hero media, copy, and SEO fields.
- Manages ticket tiers, capacity, and sales window.
- Monitors outbound or native sales and gate check-in.
### 3.3 Gate staff
- Scans QR codes quickly; sees valid / already used / invalid states.
- Works on mobile browsers in variable network conditions.
### 3.4 Platform admin
- Manages admin users (roles), site links, newsletter subscribers, and analytics.
---
## 4. User stories (v1)
### Discovery & content
- As an attendee, I can browse **published** event editions filtered by type and date.
- As an attendee, I can open an **event detail page** with cover, gallery, venue, calendar add, and ticket CTA.
- As an attendee, I can share an event; recipients see a **rich preview** (title, image, description).
### Accounts (ticketing phase)
- As an attendee, I can register / log in to purchase and view **my tickets**.
- As an attendee, I receive a **confirmation** with ticket QR(s) after purchase.
### Ticketing
- As ops, I define **ticket tiers** (name, price, quantity, sale window) per edition.
- As an attendee, I can **purchase** tickets (native checkout in target architecture; see phases).
- As gate staff, I can **scan** a QR and mark entry once per ticket.
### Admin
- As an editor, I can CRUD editions, upload cover and gallery media, set publish/featured flags.
- As super admin, I can manage admin users and view click / sales summaries.
- As ops, I can export subscriber list and send alerts (email) for new editions (batch, not real-time chat).
### Newsletter
- As a visitor, I can subscribe with email and optional neighborhood.
---
## 5. Functional requirements
### 5.1 Public site
- Home: featured edition(s), upcoming list, brand story strip.
- Event listing with filters: `event_type`, date range, featured.
- Event detail: slug URL, `meta_description`, Open Graph via share route or SSR meta injection.
- Outbound ticket links (BookMyShow, District, etc.) **or** native checkout when enabled per edition.
- Calendar download (`.ics`) for edition start time.
- Newsletter signup.
### 5.2 Authentication
- **Admin:** JWT (access token), bcrypt passwords, role-based access (`super_admin`, `editor`).
- **Attendees (ticketing phase):** JWT for account + order history; separate from admin namespace.
### 5.3 Admin dashboard
- Secure login; session via Bearer token stored in memory (not localStorage for admin if avoidable; httpOnly cookie acceptable future enhancement).
- Edition editor, media manager, platform links, subscribers, analytics (outbound clicks; order stats when native ticketing live).
- Check-in view for authorized staff (role or edition-scoped permission).
### 5.4 Ticketing model (target)
- **Edition** → one or more **ticket tiers** → **orders** → **tickets** (unique code + QR payload).
- Inventory enforced at order creation ( pessimistic row lock or atomic decrement ).
- QR encodes signed token or opaque ticket id verified server-side (no PII in QR).
- States: `issued`, `checked_in`, `cancelled`, `refunded` (refund workflow optional v1.1).
### 5.5 Payments (phased)
- **Phase A:** Outbound links only (no payment on Desi Clans).
- **Phase B:** Native orders with payment provider webhook (e.g. Razorpay)—documented in architecture, implemented only when product enables it.
### 5.6 Non-functional
- API version prefix: `/api/...`
- PostgreSQL as system of record; Alembic migrations required for schema changes.
- Media: local disk in dev; S3-compatible object storage in production (optional boto3—already present in environment).
- No concert content types in taxonomy.
---
## 6. Event taxonomy
| `event_type` | Description |
|--------------|-------------|
| `holi` | Holi celebrations |
| `garba` | Garba nights |
| `dandiya` | Dandiya events |
| `bhajan_clubbing` | Curated devotional / club fusion (brand-specific) |
| `special` | Other Indian cultural celebrations (not concerts) |
---
## 7. Out of scope (v1)
- Multi-language UI (English only v1).
- Native mobile apps.
- Seat maps / reserved seating.
- Secondary resale marketplace.
- Live streaming.
- User-generated reviews or forums.
- Concert and non-cultural listings.
---
## 8. Risks & mitigations
| Risk | Mitigation |
|------|------------|
| Double ticket sale | DB transactions, unique constraints, idempotent payment webhooks |
| QR forgery | Signed payloads, server validation, rate limits on scan |
| Admin token theft | Short JWT TTL, HTTPS only, minimal CORS origins |
| Heavy media hurting LCP | Responsive images, lazy load, CDN for production assets |
---
## 9. Acceptance criteria (MVP public site)
- [ ] Published editions render from API on home, list, and detail routes.
- [ ] Event pages include correct meta for SEO and social sharing.
- [ ] Mobile layout passes manual QA on iOS Safari and Chrome Android.
- [ ] Admin can publish an edition with cover and gallery without code changes.
- [ ] Lighthouse accessibility score ≥ 90 on event detail (lab).
**MVP ticketing (later phase):** purchase flow, email with QR, successful check-in scan.
---
## 10. References
- [ARCHITECTURE.md](./ARCHITECTURE.md) — system design and phases
- [API_SPEC.md](./API_SPEC.md) — endpoints
- [DATABASE.md](./DATABASE.md) — entities
- [DESIGN_SYSTEM.md](./DESIGN_SYSTEM.md) — UI principles
- [PROGRESS.md](./PROGRESS.md) — implementation status