Fix production 404 errors: Add missing OAuth endpoints and domain script

This commit is contained in:
poduck
2025-11-30 01:37:19 -05:00
parent 3ddd762d74
commit 613acf17c1
15 changed files with 1364 additions and 86 deletions

104
README.md
View File

@@ -1,97 +1,55 @@
# Smooth Schedule - Multi-Tenant SaaS Platform
# SmoothSchedule - Multi-Tenant Scheduling Platform
A production-grade Django skeleton with **strict data isolation** and **high-trust security** for resource orchestration.
A production-ready multi-tenant SaaS platform for resource scheduling and orchestration.
## 🎯 Features
-**Multi-Tenancy**: PostgreSQL schema-per-tenant using django-tenants
-**8-Tier Role Hierarchy**: From SUPERUSER to CUSTOMER with strict permissions
-**Secure Masquerading**: django-hijack with custom permission matrix
-**Full Audit Trail**: Structured logging of all masquerade activity
-**Headless API**: Django Rest Framework (no server-side HTML)
-**Docker Ready**: Complete Docker Compose setup via cookiecutter-django
-**AWS Integration**: S3 storage + Route53 DNS for custom domains
-**Modern Stack**: Django 5.2 + React 18 + Vite
-**Docker Ready**: Complete production & development Docker Compose setup
-**Cloud Storage**: DigitalOcean Spaces (S3-compatible) for static/media files
-**Auto SSL**: Let's Encrypt certificates via Traefik reverse proxy
-**Task Queue**: Celery + Redis for background jobs
-**Real-time**: Django Channels + WebSockets support
-**Production Ready**: Fully configured for deployment
## 📋 Prerequisites
## 📚 Documentation
- Python 3.9+
- PostgreSQL 14+
- Docker & Docker Compose
- Cookiecutter (`pip install cookiecutter`)
- **[QUICK-REFERENCE.md](QUICK-REFERENCE.md)** - Common commands and quick start
- **[PRODUCTION-READY.md](PRODUCTION-READY.md)** - Production deployment status
- **[DEPLOYMENT.md](DEPLOYMENT.md)** - Comprehensive deployment guide
- **[CLAUDE.md](CLAUDE.md)** - Development guide and architecture
## 🚀 Quick Start
### 1. Run Setup Script
### Local Development
```bash
chmod +x setup_project.sh
./setup_project.sh
# Start backend (Django in Docker)
cd smoothschedule
docker compose -f docker-compose.local.yml up -d
# Start frontend (React with Vite)
cd ../frontend
npm install
npm run dev
# Access the app
# Frontend: http://platform.lvh.me:5173
# Backend API: http://lvh.me:8000/api
```
### 2. Configure Environment
See [CLAUDE.md](CLAUDE.md) for detailed development instructions.
Create `.env` file:
```env
# Database
POSTGRES_DB=smoothschedule_db
POSTGRES_USER=smoothschedule_user
POSTGRES_PASSWORD=your_secure_password
# Django
DJANGO_SECRET_KEY=your_secret_key_here
DJANGO_DEBUG=True
DJANGO_ALLOWED_HOSTS=localhost,127.0.0.1
# AWS
AWS_ACCESS_KEY_ID=your_aws_key
AWS_SECRET_ACCESS_KEY=your_aws_secret
AWS_STORAGE_BUCKET_NAME=smoothschedule-media
AWS_ROUTE53_HOSTED_ZONE_ID=your_zone_id
```
### 3. Start Services
### Production Deployment
```bash
docker-compose build
docker-compose up -d
# Deploy to production server
./deploy.sh poduck@smoothschedule.com
```
### 4. Run Migrations
```bash
# Shared schema
docker-compose run --rm django python manage.py migrate_schemas --shared
# Create superuser
docker-compose run --rm django python manage.py createsuperuser
```
### 5. Create First Tenant
```python
docker-compose run --rm django python manage.py shell
from core.models import Tenant, Domain
tenant = Tenant.objects.create(
name="Demo Company",
schema_name="demo",
subscription_tier="PROFESSIONAL",
)
Domain.objects.create(
domain="demo.smoothschedule.local",
tenant=tenant,
is_primary=True,
)
```
```bash
# Run tenant migrations
docker-compose run --rm django python manage.py migrate_schemas
```
See [PRODUCTION-READY.md](PRODUCTION-READY.md) for deployment checklist and [DEPLOYMENT.md](DEPLOYMENT.md) for detailed steps.
## 🏗️ Architecture