South African rental marketplace - Django + PostgreSQL. Live at qasha.org.za
# Qasha Digital
**South African rental marketplace** — browse rooms and homes, list your place, request bookings, and message hosts on-platform.
**Live demo:**
qasha.org.za
**Company:** Qasha Digital (Pty) Ltd · trading as **Qasha**
> This repository is the **public portfolio source** for Qasha. Secrets, personal accounts, private notes, and production credentials are not included. Configure real values via `.env` / your host’s dashboard.
---
## Problem it solves
Finding a room or flat in South Africa often means Facebook groups, WhatsApp chats, and unclear who is serious. Qasha keeps **search → request → host decision → messaging** in one place, with ZAR pricing, host verification, and featured listings.
---
## What I built
Solo-built full-stack product:
- Custom Django apps for **listings, bookings, messaging, users, payments gates, and staff tools**
- Booking flow: request → dates → host Accept/Decline with in-app notifications
- Account tiers (Free / Premium), host verification, featured listings
- Production deploy: **Render + PostgreSQL + Cloudflare R2 + Gunicorn + WhiteNoise**
- Email (Resend/SMTP), Google OAuth hooks, health checks, SEO (`robots.txt` / sitemap)
- Admin workflows for moderation and Premium validation
---
## Screenshots
| Home feed | Listing detail | Sign up |
|-----------|----------------|---------|
| | | |
---
## Features
- Browse published listings (timeline-style feed)
- List a property; Manage hub (saved places, listings, applications, account)
- Booking requests with host Accept / Decline + tenant alerts
- In-app messaging between tenants and owners
- Help (`?` in nav): FAQ + contact form
- Free vs Premium accounts (media limits; admin validates Premium)
- Host verification and featured listing promotions
- Currency in **ZAR** (`R 12,500`)
- Nav badges for unread messages and pending booking actions
- One account for both listing and booking (no tenant/owner split)
---
## Tech stack
| Layer | Cho …