cloud stories Africa Web app
# Cloud Stories Africa
A complete Django + Next.js platform for Cloud Stories Africa: podcast episodes, events, newsletter, and member/admin dashboards.
## Backend (Django)
- Location: `csa_backend/`, `core/`
- Python dependencies: `Django 5`, `djangorestframework`, `djangorestframework-simplejwt`, `django-cors-headers`, `python-qrcode`, `Pillow`, `requests`, `python-dotenv`, `sendgrid`
- Auth: JWT via `djangorestframework-simplejwt`
- Models: `User`, `Episode`, `Event`, `TicketTier`, `Ticket`, `Subscriber`, `BlogPost`, `SyncLog`
- API routes under `/api/`
- `sync_episodes` management command uses YouTube Data API
## Frontend (Next.js)
- Location: `frontend/`
- Uses App Router, Tailwind CSS, Framer Motion
- Brand tokens: Rose Gold, Gold, Neon Blue, Black, White, Ash
- Pages scaffolded: `/`, `/episodes`, `/episodes/[slug]`, `/events`, `/about`, `/blog`, `/contact`, `/login`, `/dashboard/member`, `/dashboard/admin`, `/dashboard/employee`, `/privacy`, `/terms`
## Getting started
### Backend
1. Copy `.env.example` to `.env`
2. Activate Python venv
3. Install Python dependencies: `python -m pip install -r requirements.txt`
4. Run migrations: `python manage.py migrate`
5. Start server: `python manage.py runserver`
### Frontend
1. Copy `frontend/.env.example` to `frontend/.env.local`
2. Install Node.js and npm if not already installed
3. Install packages: `cd frontend && npm install`
4. Start dev server: `npm run dev`
## Notes
- The backend is currently configured for SQLite in development.
- The frontend newsletter submit route posts to `/api/newsletter/subscribe/`.
- Paystack webhook handling is scaffolded in `core/views.py`.
- Email integration is supported through SendGrid or Mailgun.
# c l o u d - s t o r i e s - a f r i c a