Quick Start Guide by User Type
Quick start guide organized by user type (Tenant Admin, Developer, Superuser)
๐ Qiwako CMS - Quick Start Guide by User Type
๐ Documentation Overview
Qiwako CMS memiliki dokumentasi lengkap yang diorganisir berdasarkan tipe pengguna. Pilih panduan yang sesuai dengan peran Anda:
๐ข Update Penting (Nov 2025)
- Semua halaman tenant kini menggunakan layout, navbar, dan footer yang konsisten & modern.
- Info tenant & versi Qiwako tampil di footer.
- Script maintenance dipindahkan ke
scripts/legacy/untuk workspace lebih bersih.
๐จโ๐ผ Untuk Tenant Admin & User
๐ Panduan Utama
- Tenant User Guide - Panduan lengkap menggunakan Qiwako CMS
- Template Creation Guide - Cara membuat template custom
- Form Embedding - Cara embed form (Google Forms, Typeform, dll)
- Google Analytics - Setup Google Analytics untuk tenant
๐ Fitur Penting
1. Dashboard Tenant
- Login di:
/t/{tenant-slug}/dashboard/ - Kelola halaman, blog, media, pengguna
- Lihat statistik dan analytics
2. Superuser Support Token
Cara Request Support dari Superuser:
1. Login ke dashboard tenant
2. Buka: /t/{tenant-slug}/dashboard/admin/support-tokens/
3. Klik "Generate Token Baru"
4. Isi form:
- Durasi: 1-24 jam (berapa lama superuser bisa akses)
- Alasan: Jelaskan kenapa butuh bantuan
- Tipe: One-time (sekali pakai) atau Multi-use (bisa berulang)
5. Submit โ Token akan digenerate
6. Sistem otomatis kirim notifikasi ke SEMUA superuser
7. Superuser akan menerima notifikasi dan bisa aktivasi token
8. Share token ke superuser (via WhatsApp/Email/dll) jika perlu
Keamanan:
- โ
Token punya waktu expired otomatis
- โ
Bisa revoke (batalkan) token kapan saja
- โ
Full audit log - semua akses tercatat
- โ
Superuser hanya bisa akses selama token aktif
3. MFA (Multi-Factor Authentication)
WAJIB untuk Tenant Admin!
- Setup di: /accounts/mfa/setup/
- Gunakan app Google Authenticator atau Authy
- Simpan backup codes dengan aman
- Protect akun dengan extra layer security
4. User Preferences
- Theme: Light, Dark, atau Auto
- Language & timezone settings
- Editor preferences (Quill/TinyMCE)
- Dashboard layout preferences
๐จ Content Management
Halaman (Pages)
- URL:
/t/{tenant-slug}/dashboard/pages/ - Create, edit, delete pages
- Schedule publishing
- SEO optimization built-in
Blog Posts
- URL:
/t/{tenant-slug}/dashboard/posts/ - Categories & tags
- Featured images
- Publish scheduling
Media Library
- URL:
/t/{tenant-slug}/dashboard/media/ - Upload images, videos, files
- Auto WebP conversion
- Storage management
๐ Analytics & SEO
- Analytics Dashboard: Lihat page views, clicks, form submissions
- Google Analytics: Integrate dengan GA4
- SEO Tools: Auto-generate meta tags, sitemap, your-domain.com
๐ข Announcements & Pop-ups
- Create announcement pop-ups
- Schedule dengan start/end dates
- Multiple templates available
- Show-once per user (via cookies)
๐ Untuk Superuser
๐ Panduan Utama
- RBAC Documentation - Role-based access control
- Superuser Access Control - Token-based access system
- Superuser Notification Feature - Auto-notification system
- Emergency Access - Emergency access requests
๐ Akses ke Tenant (NEW SECURITY MODEL)
PENTING: Superuser TIDAK bisa akses tenant langsung!
Anda HARUS menggunakan salah satu dari:
1. Access Token dari tenant admin
2. Emergency Access Request (untuk situasi darurat)
Cara 1: Token dari Tenant Admin
Menerima Notifikasi:
1. Tenant admin generate token
2. Anda otomatis dapat notifikasi (bell icon di navbar dengan badge merah)
3. Buka notifikasi:
- Via dropdown bell icon
- Atau langsung ke: /dashboard/superadmin/notifications/
Isi Notifikasi:
- ๐ซ Token string (ada tombol Copy)
- ๐ค Nama tenant admin yang request
- ๐ข Nama tenant
- ๐ Alasan support
- โฑ๏ธ Durasi akses
- ๐
Berlaku sampai kapan
- ๐ Tipe token (one-time atau multi-use)
Aktivasi token: "YOUR_TOKEN"
1. Click tombol "๐ Copy Token" di notifikasi
2. Click tombol "โจ Aktifkan Token Sekarang"** (atau buka /dashboard/superuser/activate-token/)
3. Paste token yang sudah dicopy
4. Submit โ Token active!
5. Sekarang bisa akses tenant: /t/{tenant-slug}/dashboard/
Kelola Token Aktif:
- Lihat active tokens: /dashboard/superuser/active-tokens/
- Deactivate token: "YOUR_TOKEN"
Cara 2: Emergency Access Request
Untuk situasi darurat (e.g., semua tenant admin unavailable):
1. Buka /t/{tenant-slug}/dashboard/emergency-access/request/
2. Isi alasan emergency
3. Submit request
4. Tunggu approval dari tenant admin
5. Access granted setelah approved
๐ก๏ธ Keamanan
Kenapa Token-Based Access?
- โ
Explicit Authorization: Tenant harus approve akses
- โ
Time-Limited: Access expired otomatis
- โ
Revocable: Tenant bisa batalkan kapan saja
- โ
Audit Trail: Semua akses tercatat
- โ
Transparency: Tenant tahu siapa akses apa
Decorators yang Enforce:
- @require_tenant_access - Check token/emergency access
- @require_tenant_admin - Check token + admin rights
- @require_editor - Check token + editor rights
- @require_donation_admin - Check token + donation admin
- @require_ownership_or_admin - Check token + ownership
๐ฏ Admin Tasks
Superuser-Only URLs:
- Django Admin:
/admin/ - Superuser Notifications:
/dashboard/superadmin/notifications/ - Activate token: "YOUR_TOKEN"
- Active Tokens:
/dashboard/superuser/active-tokens/ - Platform Settings:
/admin/โ System Settings
Platform Management:
- Approve new tenants
- Manage global policies (MFA requirements, etc)
- View audit logs
- Monitor system health
- Create announcements for all tenants
๐ง Untuk Developer
๐ Panduan Utama
- Developer Guide - Setup development environment
- Deployment Guide - Deploy to production
- Testing Guide - Run tests
- Template Development - Create templates
๐ Quick Start
# Clone repository
git clone <repo-url>
cd Qiwako
# Setup virtual environment
python -m venv .venv
source .venv/bin/activate # Linux/Mac
# atau: .venv\Scripts\activate # Windows
# Install dependencies
pip install -r your-domain.com
# Setup database
python your-domain.com migrate
# Create superuser
python your-domain.com createsuperuser
# Run development server
python your-domain.com runserver
๐งช Testing
# Run all tests
python your-domain.com test
# Run specific app tests
python your-domain.com test accounts
python your-domain.com test tenants
# Run with coverage
coverage run --source='.' your-domain.com test
coverage report
๐ฆ Key Technologies
- Backend: Django 5.2.8, Python 3.12+
- Database: SQLite (dev), PostgreSQL (production)
- Frontend: Bootstrap 5, your-domain.com
- Editors: TinyMCE, your-domain.com
- Auth: django-allauth, TOTP MFA
- Caching: Django cache framework
- Search: Django ORM full-text search
๐ Security Implementation
Token-Based Access Control
[Code block dihapus untuk keamanan. Hubungi superuser untuk detail lengkap.]
Notification System
[Code block dihapus untuk keamanan. Hubungi superuser untuk detail lengkap.]
๐ Code Structure
Qiwako/
โโโ accounts/ # User management, auth, MFA
โโโ tenants/ # Multi-tenancy core
โโโ cms/ # CMS pages, posts, media
โโโ dashboard/ # Admin dashboard
โโโ docs/ # Documentation
โโโ templates/ # HTML templates
โโโ static/ # CSS, JS, images
โโโ qiwako/ # Project settings
๐ Untuk Visitor / Public User
๐ Panduan Utama
- Visitor Guide - ๐ Panduan lengkap untuk pengunjung website - Cara menggunakan website, PWA, donasi, form kontak, dan fitur lainnya
๐ Apa itu Qiwako CMS?
Qiwako adalah platform CMS multi-tenant yang memungkinkan organisasi membuat website sendiri dengan mudah. Setiap tenant (organisasi) punya website independent dengan domain sendiri.
๐ฏ Fitur untuk Visitor
1. Browse Content
- Lihat halaman dan blog posts
- Filter by categories & tags
- Search functionality
- Responsive design (mobile-friendly)
2. Progressive Web App (PWA)
- Install website sebagai app
- Offline access
- Fast loading
- Native app experience
3. Donation (jika enabled)
- Lihat campaign donasi
- Donate dengan berbagai payment method
- Upload bukti transfer
- Track donation progress
4. Contact Forms
- Kirim pesan ke tenant
- Multiple form types
- Spam protection
๐ฑ Mobile Experience
- Responsive design
- Touch-friendly UI
- Fast loading dengan lazy loading
- WebP image optimization
๐ Create Account
Jika tenant mengizinkan registrasi:
- Register di: /t/{tenant-slug}/register/
- Login di: /t/{tenant-slug}/login/
- Access tenant-specific features
๐ Multi-Domain Support
Tenant bisa punya custom domain:
- https://eyour-domain.com (custom domain)
- https://pyour-domain.com/t/example-tenant/ (path-based)
Keduanya mengarah ke tenant yang sama!
Lihat: Visitor Guide untuk panduan lengkap.
๐ Butuh Bantuan?
๐ Documentation
- Main docs:
/docs/README.md - In-app docs: Login โ Click "Help" / "Dokumentasi"
๐ Found a Bug?
- Report issue di GitHub
- Atau contact superuser
๐ก Feature Request?
- Submit di GitHub Issues
- Atau discuss dengan tenant admin
๐ง Support
- Tenant Admin: Gunakan Support Token system
- Developer: Check documentation atau GitHub
Last Updated: November 16, 2025
Version: 1.0.0
Status: โ
Production Ready