Quick Start Guide by User Type

Quick start guide organized by user type (Tenant Admin, Developer, Superuser)

๐ŸŸข Public Getting Started quick-start guide user-type

๐Ÿš€ 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

๐Ÿ”‘ 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

๐Ÿ”’ 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

๐Ÿš€ 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