# Project Discussion: ASETQU V.2 - Digital Asset Ecosystem Platform

## 📋 Project Overview

**Brand:** ASETQU V.2
**Type:** Digital Asset Ecosystem Platform with Gamification

Building a comprehensive platform that includes:

1. **Company Profile Website** - Public-facing landing pages with CMS
2. **User Authentication System** - Login/Register for users
3. **Token Dashboard** - Token info, staking, burn tracker
4. **E-Wallet Integration** - Save and manage crypto wallets (Indodax, etc.)
5. **Gamification System** - Built-in games to collect coins → convert to points
6. **Academy/Education** - Learning platform for blockchain/trading

---

## 🛠️ TECH STACK DECISIONS

### Backend

| Technology                  | Version | Purpose              |
| --------------------------- | ------- | -------------------- |
| **Laravel**                 | 12.x    | Core framework       |
| **PHP**                     | 8.2+    | Server-side language |
| **PostgreSQL**              | 15.x+   | Database             |
| **nwidart/laravel-modules** | 12.x    | HMVC architecture    |

### Frontend

| Technology              | Version   | Purpose                      |
| ----------------------- | --------- | ---------------------------- |
| **Blade**               | (Laravel) | Templating engine            |
| **Bootstrap**           | 5.3.x     | CSS framework                |
| **Vanilla JS / jQuery** | -         | Interactivity                |
| **Swiper.js**           | -         | Carousels/sliders            |
| **Chart.js**            | -         | Dashboard charts (if needed) |

### Additional Packages (Planned)

| Package                     | Purpose                      |
| --------------------------- | ---------------------------- |
| `laravel/sanctum`           | API authentication           |
| `spatie/laravel-permission` | Role & permission management |
| `intervention/image`        | Image processing             |
| `maatwebsite/excel`         | Export functionality         |

---

## 🗄️ DATABASE MIGRATIONS

### Core Tables (Laravel Default)

#### `users` - User accounts

```php
Schema::create('users', function (Blueprint $table) {
    $table->id();
    $table->string('name');
    $table->string('email')->unique();
    $table->timestamp('email_verified_at')->nullable();
    $table->string('password');
    $table->string('avatar')->nullable();
    $table->string('phone')->nullable();
    $table->text('bio')->nullable();
    $table->enum('status', ['active', 'inactive', 'banned'])->default('active');
    $table->bigInteger('total_coins')->default(0);
    $table->bigInteger('total_points')->default(0);
    $table->timestamp('last_login_at')->nullable();
    $table->rememberToken();
    $table->timestamps();
    $table->softDeletes();
});
```

#### `password_reset_tokens` - Password reset

```php
Schema::create('password_reset_tokens', function (Blueprint $table) {
    $table->string('email')->primary();
    $table->string('token');
    $table->timestamp('created_at')->nullable();
});
```

#### `sessions` - User sessions

```php
Schema::create('sessions', function (Blueprint $table) {
    $table->string('id')->primary();
    $table->foreignId('user_id')->nullable()->index();
    $table->string('ip_address', 45)->nullable();
    $table->text('user_agent')->nullable();
    $table->longText('payload');
    $table->integer('last_activity')->index();
});
```

---

### Permission Tables (Spatie)

#### `roles` - User roles

```php
Schema::create('roles', function (Blueprint $table) {
    $table->id();
    $table->string('name');       // admin, user
    $table->string('guard_name');
    $table->timestamps();
});
```

#### `permissions` - Permissions list

```php
Schema::create('permissions', function (Blueprint $table) {
    $table->id();
    $table->string('name');       // manage-users, manage-cms, etc.
    $table->string('guard_name');
    $table->timestamps();
});
```

#### `model_has_roles` - User-Role pivot

#### `model_has_permissions` - User-Permission pivot

#### `role_has_permissions` - Role-Permission pivot

---

### CMS / Page Tables

#### `pages` - Static pages (Tokenomics, Roadmap, etc.)

```php
Schema::create('pages', function (Blueprint $table) {
    $table->id();
    $table->string('title');
    $table->string('slug')->unique();
    $table->longText('content')->nullable();
    $table->string('meta_title')->nullable();
    $table->text('meta_description')->nullable();
    $table->string('meta_keywords')->nullable();
    $table->string('featured_image')->nullable();
    $table->enum('status', ['draft', 'published'])->default('draft');
    $table->integer('order')->default(0);
    $table->foreignId('created_by')->nullable()->constrained('users')->nullOnDelete();
    $table->timestamps();
    $table->softDeletes();
});
```

#### `sections` - Page sections (for homepage)

```php
Schema::create('sections', function (Blueprint $table) {
    $table->id();
    $table->string('name');                // hero, about, roadmap, etc.
    $table->string('page')->default('home');
    $table->string('title')->nullable();
    $table->text('subtitle')->nullable();
    $table->longText('content')->nullable();
    $table->json('data')->nullable();      // flexible JSON data
    $table->string('background_image')->nullable();
    $table->boolean('is_active')->default(true);
    $table->integer('order')->default(0);
    $table->timestamps();
});
```

#### `faqs` - FAQ items

```php
Schema::create('faqs', function (Blueprint $table) {
    $table->id();
    $table->string('question');
    $table->text('answer');
    $table->string('category')->nullable();
    $table->integer('order')->default(0);
    $table->boolean('is_active')->default(true);
    $table->timestamps();
});
```

#### `testimonials` - Community feed/testimonials

```php
Schema::create('testimonials', function (Blueprint $table) {
    $table->id();
    $table->string('name');
    $table->string('role')->nullable();     // Investor, Senior HR, etc.
    $table->string('avatar')->nullable();
    $table->text('content');
    $table->integer('rating')->nullable();
    $table->boolean('is_active')->default(true);
    $table->integer('order')->default(0);
    $table->timestamps();
});
```

#### `partners` - Partnership stats & info

```php
Schema::create('partners', function (Blueprint $table) {
    $table->id();
    $table->string('name');
    $table->string('logo')->nullable();
    $table->string('website')->nullable();
    $table->text('description')->nullable();
    $table->boolean('is_active')->default(true);
    $table->integer('order')->default(0);
    $table->timestamps();
});
```

---

### Roadmap Tables

#### `roadmap_phases` - Roadmap phases

```php
Schema::create('roadmap_phases', function (Blueprint $table) {
    $table->id();
    $table->string('title');               // Peluncuran AsetQu V.2
    $table->text('description')->nullable();
    $table->enum('status', ['upcoming', 'in_progress', 'completed'])->default('upcoming');
    $table->integer('order')->default(0);
    $table->date('target_date')->nullable();
    $table->timestamps();
});
```

#### `roadmap_items` - Roadmap items per phase

```php
Schema::create('roadmap_items', function (Blueprint $table) {
    $table->id();
    $table->foreignId('phase_id')->constrained('roadmap_phases')->cascadeOnDelete();
    $table->string('title');
    $table->text('description')->nullable();
    $table->boolean('is_completed')->default(false);
    $table->integer('order')->default(0);
    $table->timestamps();
});
```

---

### News & Events Tables

#### `events` - Event calendar

```php
Schema::create('events', function (Blueprint $table) {
    $table->id();
    $table->string('title');
    $table->string('slug')->unique();
    $table->text('description')->nullable();
    $table->longText('content')->nullable();
    $table->string('featured_image')->nullable();
    $table->string('poster_image')->nullable();
    $table->string('category')->nullable();   // webinar, AMA, product_launch
    $table->datetime('start_date');
    $table->datetime('end_date')->nullable();
    $table->string('location')->nullable();   // Online, Discord, etc.
    $table->string('location_url')->nullable();
    $table->enum('status', ['upcoming', 'ongoing', 'completed', 'cancelled'])->default('upcoming');
    $table->boolean('is_featured')->default(false);
    $table->timestamps();
    $table->softDeletes();
});
```

#### `event_registrations` - Event registrations

```php
Schema::create('event_registrations', function (Blueprint $table) {
    $table->id();
    $table->foreignId('event_id')->constrained()->cascadeOnDelete();
    $table->foreignId('user_id')->constrained()->cascadeOnDelete();
    $table->enum('status', ['registered', 'attended', 'cancelled'])->default('registered');
    $table->timestamp('registered_at');
    $table->timestamp('attended_at')->nullable();
    $table->timestamps();

    $table->unique(['event_id', 'user_id']);
});
```

#### `newsletters` - Newsletter issues

```php
Schema::create('newsletters', function (Blueprint $table) {
    $table->id();
    $table->string('title');
    $table->string('subject');
    $table->longText('content');
    $table->enum('status', ['draft', 'scheduled', 'sent'])->default('draft');
    $table->timestamp('scheduled_at')->nullable();
    $table->timestamp('sent_at')->nullable();
    $table->integer('recipients_count')->default(0);
    $table->timestamps();
});
```

#### `newsletter_subscribers` - Newsletter subscribers

```php
Schema::create('newsletter_subscribers', function (Blueprint $table) {
    $table->id();
    $table->string('email')->unique();
    $table->foreignId('user_id')->nullable()->constrained()->nullOnDelete();
    $table->string('name')->nullable();
    $table->boolean('is_active')->default(true);
    $table->timestamp('subscribed_at');
    $table->timestamp('unsubscribed_at')->nullable();
    $table->timestamps();
});
```

---

### Academy Tables

#### `courses` - Academy courses

```php
Schema::create('courses', function (Blueprint $table) {
    $table->id();
    $table->string('title');
    $table->string('slug')->unique();
    $table->text('description')->nullable();
    $table->longText('content')->nullable();
    $table->string('featured_image')->nullable();
    $table->string('category')->nullable();   // trading, blockchain, ecosystem
    $table->enum('level', ['beginner', 'intermediate', 'advanced'])->default('beginner');
    $table->integer('duration_minutes')->nullable();
    $table->enum('status', ['draft', 'published'])->default('draft');
    $table->boolean('is_featured')->default(false);
    $table->integer('order')->default(0);
    $table->timestamps();
    $table->softDeletes();
});
```

#### `lessons` - Course lessons

```php
Schema::create('lessons', function (Blueprint $table) {
    $table->id();
    $table->foreignId('course_id')->constrained()->cascadeOnDelete();
    $table->string('title');
    $table->string('slug');
    $table->longText('content')->nullable();
    $table->string('video_url')->nullable();
    $table->integer('duration_minutes')->nullable();
    $table->integer('order')->default(0);
    $table->boolean('is_free')->default(false);
    $table->timestamps();
});
```

#### `user_course_progress` - User course progress

```php
Schema::create('user_course_progress', function (Blueprint $table) {
    $table->id();
    $table->foreignId('user_id')->constrained()->cascadeOnDelete();
    $table->foreignId('course_id')->constrained()->cascadeOnDelete();
    $table->foreignId('current_lesson_id')->nullable()->constrained('lessons')->nullOnDelete();
    $table->integer('progress_percentage')->default(0);
    $table->timestamp('started_at');
    $table->timestamp('completed_at')->nullable();
    $table->timestamps();

    $table->unique(['user_id', 'course_id']);
});
```

---

### Wallet Tables

#### `wallet_platforms` - Supported wallet platforms

```php
Schema::create('wallet_platforms', function (Blueprint $table) {
    $table->id();
    $table->string('name');                  // Indodax, Metamask, etc.
    $table->string('slug')->unique();        // indodax, metamask, etc.
    $table->string('logo')->nullable();      // Logo image path
    $table->string('type');                  // exchange, web3, hardware
    $table->text('description')->nullable();
    $table->string('website_url')->nullable();
    $table->boolean('is_active')->default(true);
    $table->integer('order')->default(0);
    $table->timestamps();
});

// Seeder data:
// - indodax (exchange)
// - metamask (web3)
// - trust_wallet (web3)
// - coinbase (exchange)
// - phantom (web3 - Solana)
```

#### `wallets` - User wallets

```php
Schema::create('wallets', function (Blueprint $table) {
    $table->id();
    $table->foreignId('user_id')->constrained()->cascadeOnDelete();
    $table->foreignId('platform_id')->constrained('wallet_platforms');
    $table->string('label')->nullable();     // My Main Wallet
    $table->text('wallet_address');          // encrypted
    $table->text('api_key')->nullable();     // encrypted
    $table->text('api_secret')->nullable();  // encrypted
    $table->boolean('is_primary')->default(false);
    $table->boolean('is_active')->default(true);
    $table->timestamp('last_synced_at')->nullable();
    $table->timestamps();
    $table->softDeletes();
});
```

#### `wallet_balances` - Cached wallet balances

```php
Schema::create('wallet_balances', function (Blueprint $table) {
    $table->id();
    $table->foreignId('wallet_id')->constrained()->cascadeOnDelete();
    $table->string('currency');              // BTC, ETH, ASQ, IDR
    $table->decimal('balance', 20, 8)->default(0);
    $table->decimal('balance_idr', 20, 2)->nullable();
    $table->timestamp('fetched_at');
    $table->timestamps();

    $table->unique(['wallet_id', 'currency']);
});
```

---

### Game & Gamification Tables

#### `games` - Available games

```php
Schema::create('games', function (Blueprint $table) {
    $table->id();
    $table->string('name');
    $table->string('slug')->unique();
    $table->text('description')->nullable();
    $table->string('thumbnail')->nullable();
    $table->string('type');                  // quiz, spin_wheel, clicker, puzzle
    $table->integer('coins_per_play')->default(0);
    $table->integer('max_coins_per_day')->nullable();
    $table->integer('max_plays_per_day')->nullable();
    $table->integer('cooldown_minutes')->default(0);
    $table->json('config')->nullable();      // game-specific configuration
    $table->boolean('is_active')->default(true);
    $table->integer('order')->default(0);
    $table->timestamps();
});
```

#### `game_sessions` - Game play sessions

```php
Schema::create('game_sessions', function (Blueprint $table) {
    $table->id();
    $table->foreignId('user_id')->constrained()->cascadeOnDelete();
    $table->foreignId('game_id')->constrained()->cascadeOnDelete();
    $table->integer('score')->default(0);
    $table->integer('coins_earned')->default(0);
    $table->integer('duration_seconds')->nullable();
    $table->json('game_data')->nullable();   // game-specific results
    $table->enum('status', ['playing', 'completed', 'abandoned'])->default('playing');
    $table->timestamp('started_at');
    $table->timestamp('ended_at')->nullable();
    $table->timestamps();

    $table->index(['user_id', 'game_id', 'created_at']);
});
```

---

### Coin & Point Tables

#### `coins` - Coin transactions

```php
Schema::create('coins', function (Blueprint $table) {
    $table->id();
    $table->foreignId('user_id')->constrained()->cascadeOnDelete();
    $table->bigInteger('amount');            // positive = earn, negative = spend
    $table->enum('type', ['earned', 'spent', 'converted', 'bonus', 'expired']);
    $table->string('source');                // game, daily_login, referral, conversion
    $table->nullableMorphs('reference');     // game_session, conversion, etc.
    $table->text('description')->nullable();
    $table->bigInteger('balance_after');     // running balance
    $table->timestamps();

    $table->index(['user_id', 'created_at']);
    $table->index(['user_id', 'type']);
});
```

#### `points` - Point transactions

```php
Schema::create('points', function (Blueprint $table) {
    $table->id();
    $table->foreignId('user_id')->constrained()->cascadeOnDelete();
    $table->bigInteger('amount');            // positive = earn, negative = redeem
    $table->enum('type', ['converted', 'redeemed', 'bonus', 'expired', 'refund']);
    $table->string('source')->nullable();    // conversion, redemption, bonus
    $table->nullableMorphs('reference');
    $table->text('description')->nullable();
    $table->bigInteger('balance_after');     // running balance
    $table->timestamps();

    $table->index(['user_id', 'created_at']);
});
```

#### `coin_conversions` - Coin to point conversions

```php
Schema::create('coin_conversions', function (Blueprint $table) {
    $table->id();
    $table->foreignId('user_id')->constrained()->cascadeOnDelete();
    $table->bigInteger('coins_amount');
    $table->bigInteger('points_amount');
    $table->decimal('conversion_rate', 10, 4);  // e.g., 0.01 = 100 coins = 1 point
    $table->timestamps();
});
```

#### `daily_rewards` - Daily login rewards

```php
Schema::create('daily_rewards', function (Blueprint $table) {
    $table->id();
    $table->foreignId('user_id')->constrained()->cascadeOnDelete();
    $table->date('reward_date');
    $table->integer('day_streak')->default(1);
    $table->integer('coins_earned')->default(0);
    $table->timestamps();

    $table->unique(['user_id', 'reward_date']);
});
```

---

### Leaderboard Tables

#### `leaderboards` - Leaderboard snapshots

```php
Schema::create('leaderboards', function (Blueprint $table) {
    $table->id();
    $table->string('type');                  // daily, weekly, monthly, all_time
    $table->string('category');              // coins, points, games
    $table->date('period_start');
    $table->date('period_end');
    $table->json('rankings')->nullable();    // cached top 100
    $table->timestamp('calculated_at');
    $table->timestamps();

    $table->unique(['type', 'category', 'period_start']);
});
```

---

### Settings Tables

#### `settings` - Site settings

```php
Schema::create('settings', function (Blueprint $table) {
    $table->id();
    $table->string('group')->default('general');  // general, seo, social, game, etc.
    $table->string('key')->unique();
    $table->text('value')->nullable();
    $table->string('type')->default('text');      // text, textarea, number, boolean, json
    $table->string('label')->nullable();
    $table->text('description')->nullable();
    $table->timestamps();
});
```

#### `media` - Media library

```php
Schema::create('media', function (Blueprint $table) {
    $table->id();
    $table->string('name');
    $table->string('file_name');
    $table->string('mime_type');
    $table->string('path');
    $table->string('disk')->default('public');
    $table->unsignedBigInteger('size');
    $table->json('metadata')->nullable();
    $table->foreignId('uploaded_by')->nullable()->constrained('users')->nullOnDelete();
    $table->timestamps();
});
```

---

### Activity & Logging Tables

#### `activity_logs` - User activity logs

```php
Schema::create('activity_logs', function (Blueprint $table) {
    $table->id();
    $table->foreignId('user_id')->nullable()->constrained()->nullOnDelete();
    $table->string('action');                // login, register, play_game, convert_coins
    $table->nullableMorphs('subject');       // related model
    $table->json('properties')->nullable();  // additional data
    $table->string('ip_address', 45)->nullable();
    $table->text('user_agent')->nullable();
    $table->timestamps();

    $table->index(['user_id', 'created_at']);
    $table->index('action');
});
```

---

### Summary: All Tables

| Module          | Tables                                                                           |
| --------------- | -------------------------------------------------------------------------------- |
| **Core**        | users, password_reset_tokens, sessions                                           |
| **Permission**  | roles, permissions, model_has_roles, model_has_permissions, role_has_permissions |
| **CMS/Page**    | pages, sections, faqs, testimonials, partners                                    |
| **Roadmap**     | roadmap_phases, roadmap_items                                                    |
| **News**        | events, event_registrations, newsletters, newsletter_subscribers                 |
| **Academy**     | courses, lessons, user_course_progress                                           |
| **Wallet**      | wallet_platforms, wallets, wallet_balances                                       |
| **Game**        | games, game_sessions                                                             |
| **Point**       | coins, points, coin_conversions, daily_rewards                                   |
| **Leaderboard** | leaderboards                                                                     |
| **Setting**     | settings, media                                                                  |
| **Logging**     | activity_logs                                                                    |

**Total Tables: ~31 tables**

---

## 👥 USER ROLES

### 1. Admin

| Permission        | Description                                 |
| ----------------- | ------------------------------------------- |
| Manage CMS        | Create/Edit/Delete pages, content, settings |
| Manage Users      | View, edit, ban/unban users                 |
| Manage Events     | Create/Edit events, calendar                |
| Manage Games      | Configure games, rewards                    |
| View Reports      | Analytics, user stats, transactions         |
| Manage FAQ        | Add/Edit FAQ items                          |
| Manage Newsletter | Send newsletters, manage subscribers        |

### 2. Visitor (Registered User)

| Permission           | Description                        |
| -------------------- | ---------------------------------- |
| View Profile         | View & edit own profile            |
| Manage Wallet        | Add/Edit/Remove wallet addresses   |
| Play Games           | Access games, collect coins        |
| View Points          | Check coin/point balance & history |
| Convert Coins        | Convert coins to points            |
| View Leaderboard     | See rankings                       |
| Subscribe Newsletter | Subscribe/unsubscribe              |
| Join Events          | Register for events                |

### 3. Guest (Not Logged In)

| Permission        | Description                    |
| ----------------- | ------------------------------ |
| View Public Pages | Homepage, About, Roadmap, etc. |
| View White Paper  | Download white paper           |
| View Events       | See event calendar             |
| Register/Login    | Create account or login        |

---

## 📁 HMVC MODULE STRUCTURE

```
Modules/
├── Core/                    # Shared components, layouts, helpers
│   ├── Http/Controllers/
│   ├── Views/
│   │   ├── layouts/         # master.blade.php, admin.blade.php
│   │   ├── components/      # navbar, footer, mega-menu
│   │   └── partials/        # head, scripts, meta
│   └── Resources/
│       ├── css/
│       └── js/
│
├── Home/                    # ✅ EXISTS - Homepage
│   ├── Http/Controllers/
│   ├── Views/
│   └── Routes/
│
├── Auth/                    # Authentication
│   ├── Http/Controllers/    # LoginController, RegisterController
│   ├── Models/              # User (extends App\Models\User)
│   ├── Views/               # login, register, forgot-password
│   └── Routes/
│
├── Admin/                   # Admin Panel
│   ├── Http/Controllers/
│   ├── Http/Middleware/     # AdminMiddleware
│   ├── Views/               # dashboard, users, settings
│   └── Routes/
│
├── Page/                    # CMS Static Pages
│   ├── Http/Controllers/
│   ├── Models/              # Page, Section
│   ├── Views/               # tokenomics, whitepaper, roadmap, etc.
│   └── Routes/
│
├── News/                    # Newsletter, Events, Academy
│   ├── Http/Controllers/
│   ├── Models/              # Event, Newsletter, Article
│   ├── Views/
│   └── Routes/
│
├── Game/                    # Gamification
│   ├── Http/Controllers/
│   ├── Models/              # Game, GameSession, Coin
│   ├── Views/
│   └── Routes/
│
├── Wallet/                  # E-Wallet Management
│   ├── Http/Controllers/
│   ├── Models/              # Wallet
│   ├── Views/
│   └── Routes/
│
├── Point/                   # Points & Rewards
│   ├── Http/Controllers/
│   ├── Models/              # Point, Conversion
│   ├── Views/
│   └── Routes/
│
├── Dashboard/               # User Dashboard
│   ├── Http/Controllers/
│   ├── Views/
│   └── Routes/
│
└── Setting/                 # Site Settings
    ├── Http/Controllers/
    ├── Models/              # Setting
    ├── Views/
    └── Routes/
```

---

## 🚀 PREPARATION CHECKLIST

### Step 1: Install Dependencies

```bash
# Install Bootstrap via npm
npm install bootstrap @popperjs/core

# Install additional JS libraries
npm install swiper
npm install jquery

# Install Laravel packages
composer require spatie/laravel-permission
composer require intervention/image
```

### Step 2: Configure Bootstrap

-   [ ] Import Bootstrap CSS in `resources/css/app.css`
-   [ ] Import Bootstrap JS in `resources/js/app.js`
-   [ ] Create custom SCSS file for ASETQU theme colors
-   [ ] Configure Vite for Bootstrap compilation

### Step 3: Create Core Module

-   [ ] Create `Core` module for shared layouts
-   [ ] Create master layout (`layouts/master.blade.php`)
-   [ ] Create admin layout (`layouts/admin.blade.php`)
-   [ ] Create navbar component
-   [ ] Create footer component
-   [ ] Create mega-menu component

### Step 4: Setup Authentication

-   [ ] Create `Auth` module
-   [ ] Configure Laravel's built-in auth
-   [ ] Create login page (matching Figma)
-   [ ] Create register page
-   [ ] Setup email verification

### Step 5: Setup Admin Module

-   [ ] Create `Admin` module
-   [ ] Create admin middleware
-   [ ] Create admin dashboard view
-   [ ] Setup spatie/laravel-permission

### Step 6: Setup Database

-   [ ] Create migrations for all models
-   [ ] Create seeders (admin user, sample data)
-   [ ] Run migrations

### Step 7: Asset Pipeline

-   [ ] Export assets from Figma (logos, images)
-   [ ] Organize in `public/assets/` or module resources
-   [ ] Configure Vite for asset compilation

---

## 📝 BOOTSTRAP CUSTOM THEME

### Custom SCSS Variables (to match Figma)

```scss
// resources/scss/_variables.scss

// ASETQU V.2 Color Palette
$primary-gold: #ffd700;
$primary-orange: #e85d04;
$accent-cyan: #22d3ee;
$dark-purple-bg: #12051f;
$purple-mid: #2d1b4e;
$purple-light: #6b21a8;
$magenta-pink: #9d174d;
$text-white: #ffffff;
$text-gray: #a1a1aa;
$border-purple: #7c3aed;

// Bootstrap Overrides
$primary: $primary-orange;
$secondary: $purple-mid;
$success: $accent-cyan;
$info: $accent-cyan;
$warning: $primary-gold;
$danger: $magenta-pink;
$light: $text-gray;
$dark: $dark-purple-bg;

$body-bg: $dark-purple-bg;
$body-color: $text-white;

$link-color: $accent-cyan;
$link-hover-color: $primary-gold;

// Card
$card-bg: $purple-mid;
$card-border-color: $border-purple;

// Navbar
$navbar-dark-color: $text-white;
$navbar-dark-hover-color: $primary-gold;
```

---

## 🎨 Figma Prototype Reference

**Prototype Link:** https://www.figma.com/proto/c91gokvGUZOphzStiDvlav/ASQ-V.2?page-id=0%3A1&node-id=1-837&viewport=-168%2C30%2C0.03&t=nVd2LMiRJUPIVHZK-1&scaling=min-zoom&content-scaling=fixed&starting-point-node-id=1%3A837

---

## ✅ EXTRACTED FROM FIGMA

### 1. Navigation / Menu Structure

| Menu Item           | Type            | Submenu Items                                                                                      |
| ------------------- | --------------- | -------------------------------------------------------------------------------------------------- |
| **Beranda**         | Link            | - (Homepage)                                                                                       |
| **Explore**         | Mega Menu       | Tokenomics, White Paper, Roadmap, Arsitektur & Teknologi, Ecosystem, Audit & Security, Achievement |
| **Token Dashboard** | Mega Menu       | Informasi Token, Staking Dashboard, Burn Trader Interaktif                                         |
| **News & Events**   | Mega Menu       | Newsletter, Event Calendar, Academy                                                                |
| **Games**           | Link            | - (Games page)                                                                                     |
| **Masuk**           | Button (Orange) | - (Login)                                                                                          |

---

### 2. Explore Menu Details

| Submenu                    | Description (Indonesian)                                                                                                                |
| -------------------------- | --------------------------------------------------------------------------------------------------------------------------------------- |
| **Tokenomics**             | Struktur ekonomi token AsetQu V.2, termasuk distribusi, utilitas, mekanisme suplai, dan peran token dalam ekosistem                     |
| **White Paper**            | Dokumen resmi yang memaparkan visi, konsep, teknologi, dan model bisnis AsetQu V.2 secara komprehensif                                  |
| **Roadmap**                | Gambaran rencana pengembangan AsetQu V.2 dari tahap awal hingga masa depan, termasuk milestone dan target strategis                     |
| **Arsitektur & Teknologi** | Penjelasan mengenai desain sistem, infrastruktur, dan teknologi yang digunakan untuk mendukung kinerja dan keamanan platform AsetQu V.2 |
| **Ecosystem**              | Ikhtisar ekosistem AsetQu V.2 yang saling terintegrasi, mencakup trading, edukasi, komunitas, game, dan layanan digital lainnya         |
| **Audit & Security**       | Informasi mengenai standar keamanan, proses audit, dan langkah perlindungan yang diterapkan untuk menjaga aset dan data pengguna        |
| **Achievement**            | Rekam jejak pencapaian dan milestone AsetQu V.2 dalam pengembangan teknologi, pertumbuhan komunitas, dan ekspansi ekosistem             |

---

### 3. Token Dashboard Menu Details

| Submenu                    | Description (Indonesian)                                                                                                                                     |
| -------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| **Informasi Token**        | Menyajikan data token AsetQu V.2 secara real-time, mencakup harga, suplai beredar, volume transaksi, kapitalisasi pasar, serta histori performa token        |
| **Staking Dashboard**      | Platform terintegrasi untuk melakukan staking token AsetQu V.2, memantau estimasi imbal hasil, periode staking, dan status reward secara aman dan transparan |
| **Burn Trader Interaktif** | Proses token AsetQu V.2 secara berkala, lengkap dengan data histori, total token terbakar, dan dampaknya terhadap suplai token                               |

---

### 4. News & Events Menu Details

| Submenu            | Description (Indonesian)                                                                                                                        |
| ------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------- |
| **Newsletter**     | Berlangganan update resmi AsetQu V.2 berisi insight market, perkembangan platform, agenda event, dan peluang terbaru dalam ekosistem AsetQu V.2 |
| **Event Calendar** | Kalender terpusat yang menampilkan seluruh jadwal event AsetQu V.2, termasuk webinar, AMA, peluncuran fitur, dan aktivitas komunitas            |
| **Academy**        | Pusat edukasi AsetQu V.2 untuk mempelajari trading, teknologi blockchain, dan pemanfaatan ekosistem ASQ melalui materi terstruktur dan praktis  |

---

### 5. Color Palette (Observed from Screenshots)

| Color Name         | Hex Code  | Usage                                        |
| ------------------ | --------- | -------------------------------------------- |
| **Primary Gold**   | `#FFD700` | Menu highlights, Tokenomics titles, headings |
| **Primary Orange** | `#E85D04` | "Masuk" button, CTA buttons                  |
| **Accent Cyan**    | `#22D3EE` | "Tentang AsetQu V.2" heading, accents        |
| **Dark Purple BG** | `#12051F` | Main background                              |
| **Purple Mid**     | `#2D1B4E` | Card backgrounds, mega menu bg               |
| **Purple Light**   | `#6B21A8` | Gradients, hover states                      |
| **Magenta/Pink**   | `#9D174D` | Background gradients                         |
| **Text White**     | `#FFFFFF` | Primary text, headings                       |
| **Text Gray**      | `#A1A1AA` | Body text, descriptions                      |
| **Border Purple**  | `#7C3AED` | Card borders, dividers                       |

---

## 🏠 BERANDA (HOMEPAGE) - COMPLETE ANALYSIS

### Section 1: Header/Navbar

-   **Logo:** ASETQU V.2 with golden triangle icon
-   **Navigation:** Beranda, Explore▾, Token Dashboard▾, News & Events▾, Games
-   **CTA Button:** "Masuk" (Login) - Orange rounded button
-   **Style:** Transparent/dark background, sticky header

---

### Section 2: Hero Banner (Slider/Carousel)

-   **Type:** Image carousel with 4 slides (dot indicators)
-   **Slide Headlines:**
    -   "A Unified Ecosystem for Growth & Rewards"
    -   "Empowering Digital Assets & Tokenized Economy"
-   **Description:** "AsetQu V.2 provides a modern ecosystem for digital assets, enabling secure transactions, transparent tokenization, and sustainable value growth for businesses and communities"
-   **Background:** Space/cosmic themed with geometric 3D shapes, purple/magenta gradients
-   **Animation:** Slide transition with dot navigation

---

### Section 3: Tentang AsetQu V.2 (About)

-   **Heading:** "Tentang AsetQu V.2" (Cyan gradient)
-   **Layout:** 2 columns - Logo left, content right
-   **Logo:** Large ASETQU V.2 golden triangle logo
-   **Intro Text:** "AsetQu Token Version 2 (AsetQu V.2) merupakan aset digital generasi terbaru yang dibangun di atas blockchain Solana, dirancang untuk menghadirkan utilitas yang aman, transparan, dan berkinerja tinggi dalam ekosistem Real-World Assets (RWA)."
-   **Bullet Points (5 items with ○ markers):**
    1. Menyediakan infrastruktur transaksi yang transparan, adil, dan dapat diaudit untuk seluruh aplikasi Real-World Assets (RWA), guna memastikan kepercayaan publik serta kepatuhan terhadap standar regulasi yang berlaku di Indonesia
    2. Menyediakan pengalaman investasi yang aman, mudah diakses, dan berorientasi masa depan, sehingga baik pengguna individu maupun institusi dapat berpartisipasi dalam ekonomi digital dengan tingkat kenyamanan dan perlindungan yang optimal
    3. Mengintegrasikan teknologi blockchain dengan sektor properti, keuangan, dan sektor strategis lainnya untuk mempercepat transformasi digital, meningkatkan efisiensi operasional, serta menciptakan nilai nyata bagi ekosistem bisnis Indonesia
    4. Mengembangkan produk dan solusi berskala enterprise dengan memanfaatkan arsitektur Solana—yang memiliki kecepatan tinggi, biaya rendah, dan kapasitas data besar—sebagai fondasi perluasan ekosistem AsetQu V.2 di tingkat nasional dan regional
-   **Background:** Dark with circuit board pattern graphics

---

### Section 4: ASETQU V.2 ROADMAP

-   **Heading:** "ASETQU V.2 ROADMAP" (Cyan gradient, all caps)
-   **Subheading:** "Roadmap AsetQu V2 menggambarkan tahapan pengembangan ekosistem secara bertahap dan berkelanjutan, mulai dari migrasi token dan peningkatan infrastruktur, hingga tokenisasi aset dunia nyata (RWA), ekspansi ekosistem, dan adopsi global berbasis teknologi AI."
-   **Layout:** Vertical timeline with alternating left/right cards
-   **Timeline Style:** Purple vertical line with dot markers

#### Roadmap Phases:

**Phase 1: Peluncuran AsetQu V.2**

-   Migrasi token 1:1 dari versi sebelumnya
-   Pembaruan branding & identitas ekosistem
-   Rilis dashboard migrasi & pelacakan burn
-   Audit keamanan smart contract tahap 1
-   Pembangunan AsetBid (fundamental & UI/UX baru)

**Phase 2: AsetBid On-Chain Auction**

-   Implementasi sistem anti-manipulasi bidding
-   Aktivasi mekanisme burning otomatis dari transaksi
-   Rilis modul listing aset fisik and economy digital
-   Program staking V1 + reward periodik
-   Perluasan komunitas & edukasi blockchain aset

**Phase 3: Governance DAO**

-   Peningkatan utility staking (tier membership)
-   Smart contract treasury terdesentralisasi
-   Integrasi identitas pemilik aset on-chain
-   Kolaborasi lembaga legal verifikasi dokumen digital
-   Rilis analitik real-time: aktivitas lelang, burning, volume ekosistem

**Phase 4: RWA & Tokenisasi Properti**

-   Modul tokenisasi kepemilikan aset
-   Distribusi pendapatan otomatis via smart contract
-   Fitur lending berbasis aset tokenized
-   Registry dokumen aset on-chain
-   Onboarding aset fisik pertama ke ekosistem
-   Standarisasi legal & compliance RWA lintas negara

**Phase 5: Ekspansi Ekosistem & Enterprise Integration**

-   API enterprise untuk agen, notaris & institusi
-   Kolaborasi internasional untuk RWA lintas wilayah
-   Sistem scoring untuk aset & risk index on-chain
-   Mobile App AsetQuHub (Android/iOS) versi beta
-   Advanced staking utility
-   Aktivasi pool likuiditas lintas chain

**Phase 6: Globalisasi & AI-Powered Property Network**

-   Ekspansi global pasar RWA
-   Integrasi AI untuk valuasi aset, prediksi pasar & deteksi fraud
-   Smart Asset Contract generasi baru
-   AsetBid versi 2.0
-   Ekosistem sepenuhnya terdesentralisasi
-   Model ekonomi deflasi yang stabil & berkelanjutan

---

### Section 5: WHITE PAPER

-   **Heading:** "WHITE PAPER" (Cyan gradient, all caps)
-   **Layout:** 2 columns - Coin image left, content right
-   **Image:** Golden 3D coin with ASETQU V.2 embossed
-   **Content:**
    -   "AsetQu V.2 adalah token utilitas dan investasi yang dibangun di atas blockchain Solana untuk menghadirkan transparansi, efisiensi, dan nilai jangka panjang di ekosistem AsetQu V.2."
    -   "Fokus utama token ini bukan pada spekulasi jangka pendek atau trend meme, tetapi pada penerapan nyata dalam tiga pilar utama yakni AsetBid (lelang properti transparan), AsetTrust Score (identitas reputasi digital), dan AsetAcademy (platform edukasi aset dan blockchain)."
    -   "Dengan memanfaatkan kecepatan dan skalabilitas Solana, AsetQu V.2 memungkinkan transaksi cepat, biaya rendah, serta pengalaman pengguna yang optimal."
-   **CTA Button:** "Unduh Berkas" (Download File) - Purple outlined button

---

### Section 6: AsetQu V.2 Events

-   **Heading:** "AsetQu V.2 Events" (Cyan gradient)
-   **Layout:** 3 columns - Calendar | Event Poster | Event Details
-   **Components:**

**Calendar Widget:**

-   Month navigation (< December 2025 >)
-   Day headers: SEN, SEL, RAB, KAM, JUM, SAB, MIN
-   Highlighted date: 19 (magenta/pink circle)
-   Grid layout calendar

**Event Poster:**

-   ASQ branding
-   "ASQ Product La Product Launch"
-   "Peluunkaran Produka ASQ"
-   Date: 15 DECEMBER 2025, 10:00 AM WIB
-   "ONLINE VIA DISCORD/GOOGLE SPACES"
-   Two buttons: "IKUTI ACARA" & "INGATKAN"

**Event Details Panel:**

-   Subheading: "AsetQu V.2 Calendar" (Cyan)
-   Event Title: "Peluncuran Produk"
-   Tag: "PRODUK FEATURE LAUNCH" (Magenta badge)
-   Description text
-   Date/Time: 🕐 19 Desember 2025 | 10.00 AM
-   CTA Button: "Detail" (Cyan outlined)

---

### Section 7: COMMUNITY FEED

-   **Heading:** "COMMUNITY FEED" (Cyan gradient, all caps)
-   **Layout:** 2-column testimonial cards
-   **Card Style:** Dark background with cyan left border

**Testimonials:**

1. **Michel Alexander** - Investor

    - "Saya menyimpan sebagian koin kripto sebagai aset jangka panjang. Fluktuasi memang ada, tetapi dengan strategi dollar-cost averaging, saya merasa lebih tenang dan stabil dalam berinvestasi"

2. **Clarisa Martthin** - Investor

    - "Yang membuat saya tertarik bukan hanya harganya, tapi teknologi di baliknya. Sistem blockchain transparansi dan keamanan yang menurut saya revolusioner. Saya percaya masa depan digital akan sangat dipengaruhi oleh Asetqu kripto"

3. **William Stoner** - Senior HR
    - "Awalnya saya ragu mencoba Asetqu, tetapi setelah mempelajari dasar-dasarnya, saya mulai berinvestasi sedikit demi sedikit. Kini portofolio saya bertumbuh stabil, dan saya merasa lebih percaya diri mengatur keuangan digital sendiri"

---

### Section 8: Partnership

-   **Heading:** "Partnership" (Cyan gradient)
-   **Stats Counters (3 items in rounded cards):**
    -   👥 500K+ Pengguna
    -   📈 1M+ Transaksi
    -   🤝 50K Mitra

**Feature Cards (3 columns):**

1. **Trading & Edukasi** (Purple card)

    - Icon: Chart/lightbulb
    - "Alat berbasis data untuk mendukung pengambilan keputusan trading yang lebih terinformasi"

2. **Komunitas AsetQu V.2** (Cyan/Teal card)

    - Icon: Globe with people network
    - "Berinteraksi, belajar, dan memperoleh manfaat dalam ekosistem AsetQu V.2"

3. **Aset Digital** (Gold/Yellow card)
    - Icon: Digital circuit/blockchain
    - "Infrastruktur yang aman dan skalabel untuk pengelolaan aset fisik dan ekonomi digital"

---

### Section 9: Timeline Graphic

-   **Style:** Wavy line graphic (purple to cyan gradient)
-   **4 Milestones with icons:**
    1. 🗓️ 2025 Launch
    2. 🪙 Token Generation Event
    3. ⬆️ V2 Protocol Upgrade
    4. 🌍 Global Ecosystem Expansion
-   **Background:** Dark with subtle cosmic elements

---

### Section 10: FAQ (Frequently Asked Questions)

-   **Label:** "AsetQu V.2" (small badge)
-   **Heading:** "Frequently Asked Questions"
-   **Style:** Accordion/collapsible items with cyan expand icons

**FAQ Items:**

1. **Apa itu AsetQu V2** (Expanded)

    - "AsetQu V.2 adalah versi terbaru dari platform AsetQu V.2 yang menghadirkan peningkatan teknologi, keamanan, dan fitur untuk mendukung ekosistem trading, aset digital, dan tokenisasi aset dunia nyata (RWA)"

2. **Apa fungsi token AsetQu V.2 dalam ekosistem AsetQu V.2** (Collapsed)

3. **Bagaimana cara melakukan staking token AsetQu V.2** (Collapsed)

4. **Apakah AsetQu V.2 aman digunakan** (Collapsed)

5. **Bagaimana cara bergabung dengan komunitas AsetQu V.2** (Expanded)
    - "Pengguna dapat bergabung melalui fitur Community AsetQu V.2, mengikuti event, newsletter, dan kanal media sosial resmi untuk berinteraksi, belajar, serta mendapatkan informasi terbaru seputar ekosistem AsetQu V.2"

---

### Section 11: Footer

-   **Layout:** Centered content
-   **Logo:** ASETQU V.2 (golden triangle + text)
-   **Description:** "AsetQu V.2 menyediakan solusi tokenisasi aset nyata berbasis blockchain yang aman, transparan, dan mudah diakses oleh investor crypto. AsetQu V.2 berizin dan diawasi oleh Otoritas Jasa Keuangan (OJK) serta merupakan anggota CFX"
-   **Copyright:** "© 2025 AsetQu V.2. All Right Reserved."
-   **Social Media Icons:** Facebook, Twitter, Instagram, LinkedIn
-   **Scroll to Top:** Arrow up button (cyan)
-   **Background:** Purple gradient (lighter than main bg)

---

## 🔐 AUTH PAGES - COMPLETE ANALYSIS

### Login Modal (Not a separate page)

**Type:** Bootstrap Modal overlay on homepage
**Trigger:** Click "Masuk" button in navbar

#### Layout: Two-column modal

| Left Column | Right Column           |
| ----------- | ---------------------- |
| Login Form  | E-Wallet Connect Panel |

#### Left Column - Login Form:

-   **Heading:** "Selamat Datang di AsetQu V.2" (Cyan gradient)
-   **Form Fields:**
    1. **Email** - Text input with placeholder "angelina99@gmail.com"
    2. **Kata Sandi** (Password) - Password input with show/hide toggle icon (👁)
-   **reCAPTCHA:** Google reCAPTCHA v2 checkbox "I'm not a robot"
-   **Submit Button:** "Masuk" - Full width, orange/gradient background
-   **Footer Link:** "Belum memiliki akun? **Daftar**" (Daftar is cyan link)

#### Right Column - E-Wallet Connect:

-   **Close Button:** X icon (top right corner)
-   **Heading:** "Koneksi E-Wallet Anda"
-   **Subtitle:** "Hubungkan e-wallet Anda untuk menukarkan koin AsetQu V.2 dengan cepat dan aman"
-   **Wallet Options (list with logos):**
    | Logo | Wallet Name |
    |------|-------------|
    | INDODAX logo | Indodax |
    | 🦊 (fox icon) | Metamask |
    | Trust Wallet logo | Trust Wallet |
    | Coinbase logo | Coinbase |
    | Phantom logo | Phantom |
-   **Footer Text:** "Nikmati proses redeem yang mudah, transparan, dan langsung ke akun digital Anda"

#### Modal Styling:

-   **Background:** Semi-transparent dark overlay
-   **Modal Box:** Dark purple (`#2D1B4E`) with rounded corners
-   **Border:** Purple gradient border
-   **Width:** ~800px (two columns)

---

### Register Page (Separate full page)

**URL:** `/register` or `/daftar`
**Layout:** Full-screen two-column layout

#### Left Column (40%):

-   **Background:** Dark with geometric blockchain graphics
-   **Decorative Elements:**
    -   Dot grid pattern (top left)
    -   3D hexagonal/blockchain shapes
    -   Trading chart graphics (bottom)
-   **Logo:** ASETQU V.2 (large, golden)
-   **Description Text:** "We invite you to join our community. By sharing your opinions through our surveys, you can earn points redeemable for rewards. Your participation ensures that your perspectives are valued and contribute meaningfully to informed decision-making for individuals, businesses, organizations, and government entities."

#### Right Column (60%):

-   **Top Navigation:**

    -   Left: "< Kembali" (Back link)
    -   Right: "Sudah memiliki akun? **Masuk**" (Masuk is cyan link)

-   **Heading:** "Daftarkan Akun Individu!" (Cyan gradient)
-   **Subtitle:** "For the purpose of industry regulation, your details are required."

-   **Form Fields:**
    | Field | Type | Placeholder | Required |
    |-------|------|-------------|----------|
    | Nama Lengkap* | Text | Angelina Rahayu | ✅ |
    | Email* | Email | angelina99@gmail.com | ✅ |
    | Kata Sandi* | Password (with toggle) | **\*\*\*\*** | ✅ |
    | Konfirmasi Kata Sandi* | Password (with toggle) | **\*\*\*\*** | ✅ |
    | Wallet\* | Select/Dropdown | "Pilih walet" → | ✅ |

-   **Checkbox:** "I agree to terms & conditions" (cyan checkbox)
-   **Submit Button:** "Daftar" - Full width, dark purple/gray gradient

#### Wallet Dropdown Options:

Based on login modal, likely includes:

-   Indodax
-   Metamask
-   Trust Wallet
-   Coinbase
-   Phantom

---

### Logged-In Header State

When user is logged in, the navbar changes:

#### Before Login:

```
[Logo] | Beranda | Explore▾ | Token Dashboard▾ | News & Events▾ | Games | [Masuk Button]
```

#### After Login:

```
[Logo] | Beranda | Explore▾ | Token Dashboard▾ | News & Events▾ | Games | [User Info + Avatar]
```

#### User Info Component (Right side):

-   **User Name:** "Angelina"
-   **Date:** "Friday, January 31, 2025"
-   **Avatar:** Circular profile image

#### User Dropdown Menu (on click):

| Icon | Menu Item | Action               |
| ---- | --------- | -------------------- |
| 🏠   | Dashboard | Go to user dashboard |
| 👤   | Profil    | Go to profile page   |
| 🚪   | Keluar    | Logout               |

**Dropdown Styling:**

-   Background: Dark purple
-   Text: White
-   Hover: Highlight with accent color

---

## 🎮 GAMES PAGE - COMPLETE ANALYSIS

**URL:** `/games`
**Requires:** User must be logged in

### Page Layout:

#### Section 1: Hero Banner

-   **Background:** Dark futuristic image with robot/tech character
-   **Style:** Full-width banner (same style as homepage hero)

#### Section 2: Game Listing

-   **Heading:** "SEMUA GAME" (Cyan gradient, all caps, centered)
-   **Subtitle:** "Mainkan game dibawah untuk mendapatkan koin sebanyak-banyaknya"
-   **Divider:** Cyan horizontal line under subtitle
-   **Layout:** 3-column responsive grid

#### Game Card Component:

```
┌─────────────────────────────┐
│      [Game Thumbnail]       │
│      (Full-width image)     │
├─────────────────────────────┤
│ Game Title                  │
│ Description    [Main sekarang] │
└─────────────────────────────┘
```

**Card Elements:**

-   **Thumbnail:** Full-width game artwork image
-   **Title:** Game name (white, bold)
-   **Description:** "Dapatkan 10 koin dalam mempermainkan game ini"
-   **CTA Button:** "Main sekarang" - Orange/gradient, rounded

#### Games Identified from Screenshots:

| #   | Game Name         | Description                          | Coins |
| --- | ----------------- | ------------------------------------ | ----- |
| 1   | Staking Adventure | Sci-fi character with staking tokens | 10    |
| 2   | Puzzle Quest      | Colorful jigsaw puzzle pieces        | 10    |
| 3   | Fishing Coin      | Character fishing for coins          | 10    |
| 4   | Neon Staker Run   | Cyberpunk running game               | 10    |
| 5   | (Fishing variant) | Another fishing game                 | 10    |
| 6   | Staking Adventure | (duplicate or variant)               | 10    |

#### Game Card Styling:

-   **Background:** Dark purple card
-   **Border:** Subtle purple/gradient border
-   **Border Radius:** Rounded corners
-   **Thumbnail:** Object-fit cover, ~200px height
-   **Button:** Orange gradient, pill-shaped

---

## � EXPLORE PAGES - COMPLETE ANALYSIS

All Explore pages follow a **consistent template structure**:

### Common Page Template:

```
┌─────────────────────────────────────────────────────────┐
│                    [NAVBAR]                             │
├─────────────────────────────────────────────────────────┤
│                                                         │
│              [HERO SECTION]                             │
│         Page Title (Gold/Yellow gradient)               │
│              Subtitle/Description                       │
│         Background: Tech/blockchain graphics            │
│                                                         │
├─────────────────────────────────────────────────────────┤
│                                                         │
│              [MAIN CONTENT SECTION]                     │
│         Content specific to each page                   │
│         Background: Dark purple card                    │
│                                                         │
├─────────────────────────────────────────────────────────┤
│                    [FOOTER]                             │
└─────────────────────────────────────────────────────────┘
```

---

### Tokenomics Page

**URL:** `/explore/tokenomics`
**Menu:** Explore → Tokenomics

#### Hero Section:

-   **Title:** "Tokenomics AsetQu V.2: Fondasi Nilai & Pertumbuhan Berkelanjutan" (Gold/Yellow gradient)
-   **Subtitle:** "Data distribusi, suplai, dan alokasi token AsetQu V.2 yang ditampilkan secara transparan dan mudah dipahami"
-   **Background:** Dark with tech/network graphics, cyan accent lines

#### Main Content Section:

-   **Heading:** "TOKENOMICS" (Cyan gradient, centered, underlined)
-   **Layout:** 2 columns - Pie Chart (left) + Distribution Legend (right)

##### Pie Chart:

-   **Type:** Doughnut/Pie chart
-   **Colors:** Teal, Light teal, Coral/Red, Light blue, Gray tones
-   **Center:** Empty (doughnut style)

##### Token Distribution:

| Color         | Category               | Percentage | Description                                                                                    |
| ------------- | ---------------------- | ---------- | ---------------------------------------------------------------------------------------------- |
| 🟢 Teal       | POOL MIGRASI           | 60%        | Menjamin transisi yang aman dari token sebelumnya dan menjaga likuiditas awal                  |
| 🔵 Light Teal | PENGEMBANGAN EKOSISTEM | 12%        | Dialokasikan untuk pengembangan fitur, modul RWA, dan infrastruktur jangka panjang             |
| 🔴 Coral      | TIM & PENASIHAT        | 8%         | Vesting bertahap untuk meminimalkan risiko tekanan jual dan memastikan komitmen jangka panjang |
| ⬜ Light Gray | TREASURY & LIKUIDITAS  | 10%        | Mendukung kestabilan pasar dan pendanaan strategis ekosistem                                   |
| ⬛ Gray       | MARKETING & KOMUNITAS  | 7%         | Fokus pada pertumbuhan adopsi, kolaborasi, dan penguatan komunitas global                      |
| 🟥 Red        | OPERASIONAL            | 3%         | Untuk kebutuhan operasional inti dan kepatuhan regulasi                                        |

**Total:** 100%

##### Card Styling:

-   **Background:** Dark purple (`#2D1B4E`)
-   **Border:** Purple gradient border
-   **Border Radius:** Large rounded corners
-   **Padding:** Generous padding

---

### Other Explore Pages (Same Template)

All following pages use the same Hero + Content template:

#### White Paper Page

**URL:** `/explore/whitepaper`

-   **Hero Title:** TBD - About white paper download
-   **Content:** White paper viewer/download section

#### Roadmap Page

**URL:** `/explore/roadmap`

-   **Hero Title:** TBD - About development roadmap
-   **Content:** Timeline visualization (similar to homepage roadmap section)

#### Arsitektur & Teknologi Page

**URL:** `/explore/architecture`

-   **Hero Title:** TBD - About system architecture
-   **Content:** Technical diagrams, infrastructure explanation

#### Ecosystem Page

**URL:** `/explore/ecosystem`

-   **Hero Title:** TBD - About the ecosystem
-   **Content:** Ecosystem components visualization

#### Audit & Security Page

**URL:** `/explore/security`

-   **Hero Title:** TBD - About security measures
-   **Content:** Audit reports, security features

#### Achievement Page

**URL:** `/explore/achievement`

-   **Hero Title:** TBD - About milestones
-   **Content:** Achievement timeline, statistics

---

### Explore Page Components Needed:

-   [ ] Explore Hero component (reusable)
-   [ ] Explore Content Card wrapper
-   [ ] Pie/Doughnut Chart component
-   [ ] Distribution Legend component
-   [ ] Page-specific content sections

---

## �🔧 AUTH IMPLEMENTATION NOTES

### Login Modal Implementation (Bootstrap 5):

```blade
<!-- Trigger Button in Navbar -->
<button class="btn btn-primary" data-bs-toggle="modal" data-bs-target="#loginModal">
    Masuk
</button>

<!-- Login Modal -->
<div class="modal fade" id="loginModal" tabindex="-1">
    <div class="modal-dialog modal-lg modal-dialog-centered">
        <div class="modal-content bg-dark-purple">
            <div class="row g-0">
                <!-- Left: Login Form -->
                <div class="col-md-6 p-4">
                    <!-- form content -->
                </div>
                <!-- Right: Wallet Connect -->
                <div class="col-md-6 p-4 border-start">
                    <!-- wallet options -->
                </div>
            </div>
        </div>
    </div>
</div>
```

### Login Flow:

1. User clicks "Masuk" button
2. Modal opens with login form
3. User enters email, password
4. User completes reCAPTCHA
5. Form submits via AJAX (no page refresh)
6. On success: Modal closes, navbar updates to logged-in state
7. On failure: Show error message in modal

### Register Flow:

1. User clicks "Daftar" link (from login modal or navbar)
2. Redirect to `/register` page
3. User fills form including wallet selection
4. User agrees to terms
5. Form submits
6. On success: Redirect to dashboard or email verification
7. On failure: Show validation errors

### Wallet Selection on Register:

The wallet field is **required** during registration. This links the user's account to their preferred crypto wallet platform for:

-   Point redemption
-   Coin conversion
-   Future integrations

---

## 🖥️ USER DASHBOARD - COMPLETE ANALYSIS

### Dashboard Layout Structure

**Layout Type:** Sidebar + Main Content
**Collapsible Sidebar:** Yes (toggle with `«` button)

#### Sidebar Navigation:

| Icon | Menu      | URL                 |
| ---- | --------- | ------------------- |
| 🏠   | Dashboard | `/dashboard`        |
| 🎮   | Game      | `/dashboard/game`   |
| 💳   | Wallet    | `/dashboard/wallet` |
| 🔄   | Redeem    | `/dashboard/redeem` |
| 📅   | Event     | `/dashboard/event`  |

#### Top Header (Dashboard):

-   **Left:** Logo + Collapse button
-   **Center:** Current date "Rabu, 17 Desember 2025"
-   **Right:** Notification bell + User info (Name, date, avatar)

#### User Dropdown Menu (Top Right):

| Icon | Menu    | Action                 |
| ---- | ------- | ---------------------- |
| 🏠   | Beranda | Go to homepage         |
| 👤   | Profil  | Go to profile settings |
| 🚪   | Keluar  | Logout                 |

---

### Page 1: Dashboard (Main)

**URL:** `/dashboard`
**Heading:** "DASHBOARD" (Cyan gradient)

#### Layout: 2 Columns

**Left Column (60%):**

##### Token Info Card:

```
┌─────────────────────────────────────────────┐
│ AsetQu V.2                          $27.53  │
├──────────────────┬──────────────────────────┤
│ MARKET CAP       │ UNLOCKED MKT CAP         │
│ $5.62            │ $275.222M                │
├──────────────────┼──────────────────────────┤
│ VOLUME (24H)     │ FDV                      │
│ $0               │ $27.50B                  │
├──────────────────┼──────────────────────────┤
│ VOL/MKT CAP (24) │ HOLDERS                  │
│ $0               │ 2.12K                    │
├──────────────────┼──────────────────────────┤
│ MAX. SUPPLY      │ TOTAL SUPPLY             │
│ 1B ASETQU        │ 9.98 ASETQU              │
├──────────────────┴──────────────────────────┤
│ SELF-REPORTED CIRCULATING SUPPLY            │
│ 201.2K ASETQU                               │
└─────────────────────────────────────────────┘
```

##### Reward & Game Learning Card:

-   **Heading:** "Reward & Game Learning" (Cyan)
-   **Chart:** Donut/Pie chart showing breakdown:
    -   Quest: 60% (Pink)
    -   Daily Challenge: 25% (Purple)
    -   Games: 15% (Cyan)

**Right Column (40%):**

##### Total Koin Card:

-   **Icon:** Coin with wings
-   **Heading:** "Total Koin yang Didapat"
-   **Value:** "Total Koin: **1301**" (Cyan number)
-   **Refresh Button:** Circular arrow icon

##### Game Reward History:

-   **Heading:** "Game Reward" (Cyan with game icon)
-   **List Items:**
    | Type | Game | Date | Coins |
    |------|------|------|-------|
    | Game Reward | Puzzle Quest | 16/12/2025 | +25 |
    | Game Reward | Puzzle Quest | 17/12/2025 | +10 |
    | Game Reward | Puzzle Quest | 17/12/2025 | +5 |
    | Game Reward | Puzzle Quest | 20/12/2025 | +15 |
    | Game Reward | Puzzle Quest | 20/12/2025 | +15 |

---

### Page 2: Game (Koin Game)

**URL:** `/dashboard/game`
**Heading:** "Koin Game" (Cyan gradient)

#### Stats Cards (2 columns):

| Card                    | Label | Value        | Icon            |
| ----------------------- | ----- | ------------ | --------------- |
| Total Koin yang Didapat | Total | **505** Koin | ⬆️ (cyan arrow) |
| Total Koin Hari ini     | Total | **33** Koin  | ⬆️ (cyan arrow) |

#### Data Table: Game Reward

**Heading:** "Data Tabel Game Reward" (with icon, purple header bar)

| Column  | Description                    |
| ------- | ------------------------------ |
| Game    | Game name (cyan link)          |
| Koin    | Coins earned (+25, +500, etc.) |
| Tanggal | Date (DD/MM/YYYY)              |
| Wallet  | Linked wallet (cyan link)      |

**Table Features:**

-   Pagination: "Showing 1-10 from 05"
-   Rows per page: Dropdown (10 ▼)
-   Navigation: < > arrows

#### Game Section Below:

-   **Heading:** "SEMUA GAME"
-   **Subtitle:** "Mainkan game dibawah untuk mendapatkan koin sebanyak-banyaknya"
-   Same game cards as public games page

---

### Page 3: Wallet

**URL:** `/dashboard/wallet`
**Heading:** "Wallet yang Terhubung" (Cyan gradient)

#### Connected Wallet Info:

```
┌─────────────────────────────────────────────────────────┐
│ [INDODAX LOGO]  INDODAX    Address: 2109076542         │
│                            Total Koin: 570 Koin (cyan) │
└─────────────────────────────────────────────────────────┘
```

#### Data Table: Riwayat Koin

**Heading:** "Data Tabel Riwayat Koin" (with icon, purple header bar)

| Column  | Description                                                        |
| ------- | ------------------------------------------------------------------ |
| Tipe    | Transaction type (Game Reward - cyan, with subtext "Puzzle Quest") |
| Koin    | Amount (+25, +500, +15)                                            |
| Wallet  | Platform name (cyan link)                                          |
| Tanggal | Date (DD/MM/YYYY)                                                  |

**Table Features:** Same pagination as Game page

---

### Page 4: Redeem

**URL:** `/dashboard/redeem`
**Heading:** "Redeem Koin" (Cyan gradient)
**Subtitle:** "AsetQu V.2 adalah token utilitas dan investasi yang dibangun di atas blockchain Solana, dirancang untuk menghadirkan transparansi, efisiensi, dan nilai jangka panjang dalam ekosistem AsetQu V.2."

#### Redeem Options (3 Cards):

| Card | Icon | Title               | Description                                                                                                                                                                 | CTA      |
| ---- | ---- | ------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------- |
| 1    | 📊   | **AsetBid**         | Platform lelang aset fisik yang berjalan di atas smart contract. Transparan, aman, dan terverifikasi dengan menggunakan token AsetQu V.2 untuk berpartisipasi dalam lelang  | [Redeem] |
| 2    | ✅   | **AsetTrust Score** | Sistem identitas dan reputasi digital untuk membangun motivasi yang kuat bagi pemilik token AsetQu V.2 untuk berpartisipasi secara berkelanjutan                            | [Redeem] |
| 3    | 📚   | **AsetAcademy**     | Edukasi aset dan blockchain untuk meningkatkan literasi dan adopsi teknologi. Dengan menggunakan webminar dan video edukasi yang dapat mempermudah pemilik token AsetQu V.2 | [Redeem] |

**Card Styling:**

-   Background: Dark purple
-   Border: Gradient purple border
-   Icon: Line icons (white)
-   Button: Orange "Redeem" button

---

### Page 5: Event

**URL:** `/dashboard/event`
**Heading:** "Event yang Diikuti" (Cyan gradient)
**Subtitle:** "Berikut list data event yang anda ikuti dan jangan lewatkan event yang akan berlangsung"

#### Event Cards (4-column grid):

| Event                    | Date                    | Time                        | Location                |
| ------------------------ | ----------------------- | --------------------------- | ----------------------- |
| **INTRODUCTION ASQ V2**  | December 20, 2025       | Registration opens 10.00 AM | Online                  |
| **PADEL NETWORKING DAY** | Sabtu, 17 Januari 2026  | Pukul 10.00 - 12.00 WIB     | Gor Indoor Jakarta      |
| **WEB3 & DIGITAL ASSET** | Selasa, 26 Januari 2026 | Pukul 09.00 - 12.00 WIB     | Online                  |
| **BUSINESS & INVESTOR**  | Sabtu, 07 Februari 2026 | Pukul 12.00 - 16.00 WIB     | Gedung A, Jakarta Pusat |

#### Event Card Component:

```
┌─────────────────────────────┐
│     [Event Poster Image]    │
├─────────────────────────────┤
│ EVENT TITLE (Gold text)     │
│ 📅 : Date                   │
│ ⏰ : Time                   │
│ 📍 : Location               │
│ ┌─────────────────────────┐ │
│ │       [Detail]          │ │
│ └─────────────────────────┘ │
└─────────────────────────────┘
```

**Card Styling:**

-   Title: Gold/yellow color
-   Icons: Calendar, clock, location pin
-   Button: Full-width orange gradient "Detail"

---

## 👤 PROFILE PAGES - COMPLETE ANALYSIS

### Profile Layout:

**Two Columns:**

-   **Left (30%):** User info card + Tab navigation
-   **Right (70%):** Tab content

#### Left Column - User Card:

```
┌─────────────────────────────┐
│        [Avatar Image]       │
│            📷               │
│         Angelina            │
│   angelina99@gmail.com      │
├─────────────────────────────┤
│ 👤 Setting Profil           │
│ 🔒 Kata Sandi               │
│ 💳 Setting Wallet           │
└─────────────────────────────┘
```

**Avatar:** Circular with edit icon overlay

---

### Profile Tab 1: Setting Profil

**URL:** `/dashboard/profile` or `/dashboard/profile/setting`
**Heading:** "INFORMASI PROFIL" (Cyan)

#### Form Fields:

| Field          | Type              | Placeholder/Value              |
| -------------- | ----------------- | ------------------------------ |
| Nama           | Text              | Angelina                       |
| Email          | Email (readonly?) | angelina99@gmail.com           |
| Nomor Telepon  | Text              | 081234567890                   |
| Negara         | Text/Select       | Indonesia                      |
| Kabupaten/Kota | Text/Select       | Bogor                          |
| Kecamatan      | Text              | Cibinong                       |
| Kelurahan/Desa | Text              | Cibanteng                      |
| Kode Pos       | Text              | 16910                          |
| Alamat Lengkap | Textarea          | Jl. Cibanteng No. 20 Kab.Bogor |

**Buttons:**

-   "Batal" - Purple outlined
-   "Simpan data" - Cyan with save icon

---

### Profile Tab 2: Kata Sandi dan Keamanan

**URL:** `/dashboard/profile/security`
**Heading:** "KATA SANDI DAN KEAMANAN" (Cyan)

#### Menu Items:

| Item             | Arrow | Action                     |
| ---------------- | ----- | -------------------------- |
| Ganti kata sandi | >     | Opens password change form |
| Keamanan 2FA     | >     | Opens 2FA settings         |

---

### Profile Tab 2a: Ganti Kata Sandi

**URL:** `/dashboard/profile/security/password`
**Heading:** "GANTI KATA SANDI" (Cyan)

#### Form Fields:

| Field                      | Type     | Icon     |
| -------------------------- | -------- | -------- |
| Kata Sandi Lama            | Password | 👁 toggle |
| Kata Sandi Baru            | Password | 👁 toggle |
| Konfirmasi Kata Sandi Baru | Password | 👁 toggle |

**Buttons:**

-   "Batal" - Purple outlined
-   "Simpan data" - Cyan with save icon

---

### Profile Tab 2b: Keamanan 2FA

**URL:** `/dashboard/profile/security/2fa`
**Heading:** "KEAMANAN 2FA" (Cyan)

#### Content:

```
┌─────────────────────────────────────────┐
│ Otentikasi Dua Faktor                   │
│                                         │
│ Aktifkan Otentikasi Dua Faktor         │
│ [Toggle Switch] Aktifkan                │
│                                         │
│                      [💾 Simpan]        │
└─────────────────────────────────────────┘
```

---

### Profile Tab 3: Setting Wallet

**URL:** `/dashboard/profile/wallet`
**Heading:** "SETTING WALLET" (Cyan)

#### Connected Wallets Section:

**Label:** "Wallet yang Terkoneksi"

```
┌─────────────────────────────────────────┐
│ [INDODAX LOGO]    Indodax        [···]  │
└─────────────────────────────────────────┘
```

**Wallet Options Menu (on click `···`):**
| Option | Action |
|--------|--------|
| Jadikan wallet utama | Set as primary |
| Disconnect | Disconnect wallet |
| Hapus wallet | Delete wallet |

#### Other Wallets Section:

**Label:** "Wallet lainnya"
**Button:** "+ Tambah wallet" (Cyan)

---

### Add Wallet Modal

**Trigger:** Click "+ Tambah wallet"
**Heading:** "TAMBAH WALLET" (Cyan)

#### Modal Content:

```
┌─────────────────────────────────────────┐
│ TAMBAH WALLET                       [X] │
├─────────────────────────────────────────┤
│ Tambah Wallet                           │
│ ┌─────────────────────────────────────┐ │
│ │ Pilih walet                      >  │ │
│ └─────────────────────────────────────┘ │
│                                         │
│ ┌─────────────────────────────────────┐ │
│ │ [INDODAX]         Indodax           │ │
│ │ [🦊]              Metamask          │ │
│ │ [TRUSTWALLET]     Trust Wallet      │ │
│ │ [COINBASE]        Coinbase          │ │
│ │ [PHANTOM]         Phantom           │ │
│ └─────────────────────────────────────┘ │
│                                         │
│                          [Simpan]       │
└─────────────────────────────────────────┘
```

---

## 🗄️ DATABASE UPDATES FOR USER DASHBOARD

### Additional Fields for `users` table:

```php
// Add to users migration
$table->string('phone')->nullable();
$table->string('country')->default('Indonesia');
$table->string('city')->nullable();           // Kabupaten/Kota
$table->string('district')->nullable();       // Kecamatan
$table->string('village')->nullable();        // Kelurahan/Desa
$table->string('postal_code')->nullable();
$table->text('full_address')->nullable();
$table->boolean('two_factor_enabled')->default(false);
$table->text('two_factor_secret')->nullable();
```

### New Table: `user_events` (pivot for event registration)

```php
Schema::create('user_events', function (Blueprint $table) {
    $table->id();
    $table->foreignId('user_id')->constrained()->cascadeOnDelete();
    $table->foreignId('event_id')->constrained()->cascadeOnDelete();
    $table->enum('status', ['registered', 'attended', 'cancelled'])->default('registered');
    $table->timestamp('registered_at');
    $table->timestamps();

    $table->unique(['user_id', 'event_id']);
});
```

---

## 📰 NEWS & EVENTS PAGES - COMPLETE ANALYSIS

### Page 1: Newsletter

**URL:** `/newsletter`
**Menu:** News & Events → Newsletter

#### Section 1: Hero Banner

-   **Heading:** "ASETQU V.2 NEWSLETTER" (Gold gradient, all caps)
-   **Subtitle:** "Berlangganan newsletter AsetQu V.2 untuk update terbaru, insight ekosistem, dan peluang eksklusif"
-   **Background:** Dark with 3D cube/blockchain graphic (purple/cyan glow)

#### Section 2: Subscribe Form

-   **Card Style:** Dark purple card with border
-   **Heading:** "Berlangganan Newsletter Kami" (Cyan gradient, centered)
-   **Description:** "Ikuti newsletter kami untuk mempelajari lebih lanjut tentang perdamaian dan membangun koneksi komunitas. Dapatkan informasi terbaru seputar berbagai workshop dan acara PLC. Program tersedia untuk semua kalangan. Bergabunglah bersama kami hari ini. Berlokasi di Eagle Creek. Kami siap membantu."
-   **Subtext:** "Kursus: Peace Learning Center, Creating Change"

#### Subscribe Form Component:

```
┌────────────────────────────────────────────────────────┐
│ ┌──────────────────────────────┐ ┌──────────────────┐ │
│ │ Masukkan email               │ │   Subscribe    │ │
│ └──────────────────────────────┘ └──────────────────┘ │
└────────────────────────────────────────────────────────┘
```

-   **Input:** Email field with placeholder "Masukkan email"
-   **Button:** "Subscribe" - Orange rounded button
-   **Privacy Note:** "Privasi Anda adalah prioritas kami. Kami melindungi informasi Anda untuk memastikan pengalaman yang aman dan bersifat rahasia"

---

### Page 2: Events Calendar

**URL:** `/events` or `/event-calendar`
**Menu:** News & Events → Event Calendar

#### Section 1: Hero Banner

-   **Heading:** "ASETQU V.2 EVENTS CALENDAR" (Gold gradient, all caps)
-   **Subtitle:** "Pembaharuan terbaru, acara mendatang, dan peluang kemitraan di ekosistem AsetQu V.2"
-   **Background:** Same 3D cube graphic as Newsletter

#### Section 2: Calendar & Featured Event

**Heading:** "ASETQU V.2 EVENTS" (Cyan gradient, centered)

**Layout:** 3 Columns
| Column | Content |
|--------|---------|
| Left (25%) | Interactive Calendar Widget |
| Center (35%) | Featured Event Poster |
| Right (40%) | Event Details |

##### Calendar Widget:

-   **Month Navigator:** "< Desember 2025 >"
-   **Day Headers:** SEN, SEL, RAB, KAM, JUM, SAB, MIN
-   **Date Grid:** 1-31 dates
-   **Active Date:** Highlighted with magenta circle (e.g., 19)
-   **Clickable:** Select date to filter events

##### Featured Event Poster:

-   Event promotional image/poster
-   Example: "ASQ Product Launch" poster

##### Event Details Panel:

-   **Subheading:** "AsetQu V.2 Calendar" (Cyan)
-   **Event Title:** "Peluncuran Produk" (White, bold)
-   **Tag/Badge:** "PRODUK FEATURE LAUNCH" (Magenta badge)
-   **Description:** Event description text
-   **DateTime:** 🕐 19 Desember 2025 | 10.00
-   **CTA Button:** "Detail" - Orange gradient, full width

#### Section 3: Upcoming Events

**Heading:** "EVENT YANG AKAN DATANG" (White, all caps, centered)

**Layout:** 3-column card grid

##### Event Card Component:

```
┌─────────────────────────────────┐
│       [Event Poster Image]      │
│       (Full-width, ~200px)      │
├─────────────────────────────────┤
│ EVENT TITLE (Gold text)         │
│ 📅 : Sabtu, 17 Januari 2026     │
│ ⏰ : Pukul 10.00 - 12.00 WIB    │
│ 📍 : Gor Indoor Jakarta         │
│ ┌─────────────────────────────┐ │
│ │         [Detail]            │ │
│ └─────────────────────────────┘ │
└─────────────────────────────────┘
```

##### Events Identified:

| #   | Event Name                             | Date                    | Time              | Location                |
| --- | -------------------------------------- | ----------------------- | ----------------- | ----------------------- |
| 1   | ASETQU V.2 PADEL NETWORKING DAY        | Sabtu, 17 Januari 2026  | 10.00 - 12.00 WIB | Gor Indoor Jakarta      |
| 2   | SEMINAR: WEB3 & DIGITAL ASSET SECURITY | Selasa, 26 Januari 2026 | 09.00 - 12.00 WIB | Online                  |
| 3   | ASETQU V.2 BUSINESS & INVESTOR MEETUP  | Sabtu, 07 Februari 2026 | 12.00 - 16.00 WIB | Gedung A, Jakarta Pusat |

**Card Styling:**

-   Background: Dark purple with purple border
-   Title: Gold/yellow color
-   Icons: Pink/magenta icons (calendar, clock, location)
-   Button: Full-width orange gradient "Detail"

---

### Page 3: Academy (AsetAcademy)

**URL:** `/academy`
**Menu:** News & Events → Academy

#### Section 1: Hero Banner

-   **Heading:** "AsetAcademy untuk Ekonomi Digital Masa Depan" (Cyan gradient)
-   **Subtitle:** "Pembelajaran terstruktur yang dirancang untuk membantu Anda memahami, menganalisis, dan berkembang di dunia aset digital"
-   **Background:** Dark with trading charts, globe graphics

#### Section 2: Learning Categories

**Heading:** "Learning Categories" (Cyan gradient)

**Layout:** 4-column category cards

| #   | Icon                | Category Name               | Description             |
| --- | ------------------- | --------------------------- | ----------------------- |
| 1   | 📈 (chart)          | Trading Basics              | Basic trading education |
| 2   | ◎ (target)          | Technical Analysis          | Chart analysis skills   |
| 3   | 🛡️ (shield)         | Blockchain Strategies       | Blockchain fundamentals |
| 4   | 📊 (advanced chart) | Advance: Trading Strategies | Advanced trading        |

##### Category Card Component:

```
┌─────────────────────────────────┐
│  [Icon]    Category Name        │
│            Second Line          │
└─────────────────────────────────┘
```

**Card Styling:**

-   Background: Dark purple
-   Border: Subtle purple border
-   Icon: Line icon style
-   Text: White
-   Hover: Highlight/glow effect

#### Section 3: Course Listing

**Layout:** 3-column course card grid

##### Course Card Component:

```
┌─────────────────────────────────┐
│ [Terbaru] badge (cyan)          │
│                                 │
│    [Course Thumbnail Image]     │
│    ESQ: KECERDSAN EMOSIONAL    │
│    & SPIRITUAL                  │
│                                 │
│    "Membangun Karakter Unggul   │
│    & Kepemimpinan Berintegritas"│
│                                 │
│ [EDUKASI ONLINE GRATIS] badge   │
├─────────────────────────────────┤
│ Trading Basics: Cara Membaca    │
│ Candlestick untuk Pemula        │
│                                 │
│ Durasi: 5-7 Menit               │
│ Target: Beginer/User Baru       │
│                                 │
│ [Watch Video] (orange button)   │
└─────────────────────────────────┘
```

##### Course Card Elements:

| Element         | Description                            |
| --------------- | -------------------------------------- |
| **Badge (top)** | "Terbaru" - Cyan badge for new courses |
| **Thumbnail**   | Course promotional image               |
| **Price Badge** | "EDUKASI ONLINE GRATIS" - Blue badge   |
| **Title**       | Course name (Cyan link)                |
| **Duration**    | "Durasi: 5-7 Menit"                    |
| **Target**      | "Target: Beginer/User Baru"            |
| **CTA**         | "Watch Video" - Orange button          |

##### Course Types Identified:

-   **Video Courses:** ESQ (Emotional & Spiritual Intelligence), Trading tutorials
-   **Seminar/Workshop:** In-person or online sessions (shown with room photos)
-   **Free Content:** Marked with "EDUKASI ONLINE GRATIS"

---

## 📊 DATABASE UPDATES FOR NEWS & EVENTS

### Update `courses` table (add fields):

```php
// Additional fields for courses
$table->string('price_badge')->nullable();    // "EDUKASI ONLINE GRATIS"
$table->string('target_audience')->nullable(); // "Beginer/User Baru"
$table->boolean('is_new')->default(false);     // Show "Terbaru" badge
$table->string('course_type')->default('video'); // video, workshop, seminar
```

### New Table: `course_categories`

```php
Schema::create('course_categories', function (Blueprint $table) {
    $table->id();
    $table->string('name');              // Trading Basics
    $table->string('slug')->unique();
    $table->string('icon')->nullable();  // Icon class or image
    $table->text('description')->nullable();
    $table->integer('order')->default(0);
    $table->boolean('is_active')->default(true);
    $table->timestamps();
});

// Update courses table
$table->foreignId('category_id')->nullable()->constrained('course_categories');
```

### Seeder: Course Categories

```php
// Course categories seeder
$categories = [
    ['name' => 'Trading Basics', 'slug' => 'trading-basics', 'icon' => 'chart-line'],
    ['name' => 'Technical Analysis', 'slug' => 'technical-analysis', 'icon' => 'crosshairs'],
    ['name' => 'Blockchain Strategies', 'slug' => 'blockchain-strategies', 'icon' => 'shield'],
    ['name' => 'Advance: Trading Strategies', 'slug' => 'advanced-trading', 'icon' => 'chart-bar'],
];
```

---

## 🪙 TOKEN DASHBOARD PAGES - COMPLETE ANALYSIS

### Page 1: Informasi Token (Token Information)

**URL:** `/token` or `/token-dashboard`
**Menu:** Token Dashboard → Informasi Token

#### Section 1: Hero Banner

-   **Heading:** "_Informasi_ Token" (Informasi = Gold italic, Token = White)
-   **Subtitle:** "Ringkasan status, distribusi, dan aktivitas token secara real-time"
-   **Background:** Dark purple with floating 3D screens/monitors showing charts (cyan/purple glow)

#### Section 2: Live Token Price

**Heading:** "LIVE TOKEN PRICE" (Orange/Gold gradient, all caps, centered)

##### Token Price Card:

```
┌─────────────────────────────────────────────────────────────────────────┐
│ ASETQU V.2 TOKEN                                                        │
├─────────────────────────────────┬───────────────────────────────────────┤
│                                 │  ┌─────────────┐ ┌─────────────────┐  │
│   [Price Chart - Bar Graph]     │  │ MAX. SUPPLY │ │  TOTAL SUPPLY   │  │
│   Green & Purple bars           │  │ 1B ASETQU   │ │  9.98 ASETQU    │  │
│   X-axis: 0-18 time periods     │  └─────────────┘ └─────────────────┘  │
│   Y-axis: 0%-1.0%               │  ┌─────────────────────────────────┐  │
│                                 │  │ SELF-REPORTED CIRCULATING SUPPLY│  │
│                                 │  │      201.2K ASETQU              │  │
│                                 │  └─────────────────────────────────┘  │
├─────────────────────────────────┴───────────────────────────────────────┤
│ ┌─────────────────┐  ┌─────────────────┐                                │
│ │   MARKET CAP    │  │ UNLOCKED MKT CAP│                                │
│ │     $5.62       │  │   $275.222M     │                                │
│ └─────────────────┘  └─────────────────┘                                │
│ ┌─────────────────┐  ┌─────────────────┐                                │
│ │  VOLUME (24H)   │  │      FDV        │                                │
│ │      $0         │  │    $27.50B      │                                │
│ └─────────────────┘  └─────────────────┘                                │
│ ┌─────────────────┐  ┌─────────────────┐                                │
│ │ VOL/MKT CAP(24) │  │    HOLDERS      │                                │
│ │      $0         │  │     2.12K       │                                │
│ └─────────────────┘  └─────────────────┘                                │
└─────────────────────────────────────────────────────────────────────────┘
```

##### Token Metrics Displayed:

| Metric         | Label                            | Value Example | Card Color      |
| -------------- | -------------------------------- | ------------- | --------------- |
| Max Supply     | MAX. SUPPLY                      | 1B ASETQU     | Purple gradient |
| Total Supply   | TOTAL SUPPLY                     | 9.98 ASETQU   | Purple gradient |
| Circulating    | SELF-REPORTED CIRCULATING SUPPLY | 201.2K ASETQU | Purple gradient |
| Market Cap     | MARKET CAP                       | $5.62         | Purple solid    |
| Unlocked MCap  | UNLOCKED MKT CAP                 | $275.222M     | Purple gradient |
| 24h Volume     | VOLUME (24H)                     | $0            | Purple solid    |
| FDV            | FDV                              | $27.50B       | Purple gradient |
| Vol/MCap Ratio | VOL/MKT CAP (24)                 | $0            | Purple solid    |
| Holders        | HOLDERS                          | 2.12K         | Purple gradient |

##### Chart Component:

-   **Type:** Bar chart (vertical bars)
-   **Colors:** Green bars (positive), Purple/Magenta bars (highlights)
-   **X-axis:** Time periods (0, 15, 24, 25, 30, 60, 18)
-   **Y-axis:** Percentage (0%, 0.5%, 1.0%)

---

### Page 2: Staking Dashboard

**URL:** `/staking` or `/token-dashboard/staking`
**Menu:** Token Dashboard → Staking Dashboard

#### Section 1: Hero Banner

-   **Heading:** "_Staking_ Dashboard" (Staking = Gold italic, Dashboard = White)
-   **Subtitle:** "Kunci aset digital Anda untuk mendukung stabilitas jaringan"
-   **Background:** Same 3D floating monitors theme

#### Section 2: Staking Information Cards

**Layout:** 2-column cards + 1 full-width card

##### Card 1: Apa itu Staking?

```
┌────────────────────────────────────────────────────────┐
│ Apa itu Staking?                                       │
│                                                        │
│ Staking adalah mekanisme dalam ekosistem blockchain    │
│ yang memungkinkan pemegang token mengunci aset digital │
│ mereka dalam periode tertentu untuk mendukung          │
│ stabilitas dan operasional jaringan.                   │
└────────────────────────────────────────────────────────┘
```

-   **Background:** Dark purple card
-   **Border:** Subtle purple border

##### Card 2: Cara Kerja

```
┌────────────────────────────────────────────────────────┐
│ Cara Kerja                                             │
│                                                        │
│ Proses staking dijalankan melalui smart contract yang  │
│ mengatur penguncian token, perhitungan imbal hasil,    │
│ serta distribusi reward secara otomatis dan transparan │
└────────────────────────────────────────────────────────┘
```

##### Card 3: Keuntungan Staking (Full Width)

```
┌─────────────────────────────────────────────────────────────────────────┐
│                        Keuntungan Staking                               │
│                                                                         │
│ • Mengurangi tekanan jual token di pasar   • Memperkuat keamanan       │
│                                              jaringan                   │
│ • Meningkatkan keterlibatan jangka panjang • Mendukung pertumbuhan     │
│   pemegang aset                              ekosistem secara           │
│                                              berkelanjutan              │
└─────────────────────────────────────────────────────────────────────────┘
```

##### Staking Benefits List:

| #   | Benefit                                                |
| --- | ------------------------------------------------------ |
| 1   | Mengurangi tekanan jual token di pasar                 |
| 2   | Meningkatkan keterlibatan jangka panjang pemegang aset |
| 3   | Memperkuat keamanan jaringan                           |
| 4   | Mendukung pertumbuhan ekosistem secara berkelanjutan   |

---

### Page 3: Burn Trader Interaktif

**URL:** `/burn` or `/token-dashboard/burn`
**Menu:** Token Dashboard → Burn Trader Interaktif

#### Section 1: Hero Banner

-   **Heading:** "_Burn Trader_ Interaktif" (Burn Trader = Gold italic, Interaktif = White)
-   **Subtitle:** "Kurangi suplai token secara transparan dan dukung stabilitas nilai aset Anda"
-   **Background:** Same 3D floating monitors theme

#### Section 2: Burn Information Cards

**Layout:** 3-column cards

##### Card 1: Apa itu Burn?

```
┌────────────────────────────────────┐
│ Apa itu Burn?                      │
│                                    │
│ Burn adalah mekanisme pengurangan  │
│ suplai token dengan cara menghapus │
│ token secara permanen dari         │
│ peredaran. Token yang dikirim ke   │
│ alamat burn tidak dapat diakses,   │
│ sehingga suplai berkurang secara   │
│ transparan dan bisa diverifikasi   │
│ di blockchain.                     │
└────────────────────────────────────┘
```

-   **Background:** Dark purple card
-   **Border:** Purple border

##### Card 2: Bagaimana Cara Kerjanya?

```
┌────────────────────────────────────┐
│ Bagaimana Cara Kerjanya?           │
│                                    │
│ Burn biasanya terkait dengan       │
│ aktivitas ekosistem, seperti       │
│ transaksi atau penggunaan layanan  │
│ tertentu. Pendekatan ini membantu  │
│ mengendalikan inflasi dan menjaga  │
│ keseimbangan ekonomi token.        │
└────────────────────────────────────┘
```

-   **Background:** Purple gradient (lighter)
-   **Border:** None

##### Card 3: Manfaat Burn

```
┌────────────────────────────────────┐
│ Manfaat Burn                       │
│                                    │
│ • Mendukung stabilitas nilai       │
│   jangka panjang                   │
│ • Meningkatkan kelangkaan token    │
│ • Mengurangi inflasi token         │
│ • Meningkatkan kepercayaan         │
│   pengguna terhadap ekosistem      │
└────────────────────────────────────┘
```

-   **Background:** Teal/Cyan gradient
-   **Border:** None

##### Burn Benefits List:

| #   | Benefit                                              |
| --- | ---------------------------------------------------- |
| 1   | Mendukung stabilitas nilai jangka panjang            |
| 2   | Meningkatkan kelangkaan token                        |
| 3   | Mengurangi inflasi token                             |
| 4   | Meningkatkan kepercayaan pengguna terhadap ekosistem |

---

## 📊 DATABASE TABLES FOR TOKEN DASHBOARD

### New Table: `token_info`

```php
Schema::create('token_info', function (Blueprint $table) {
    $table->id();
    $table->string('token_name')->default('ASETQU V.2 TOKEN');
    $table->string('token_symbol')->default('ASETQU');
    $table->decimal('max_supply', 20, 2)->default(1000000000); // 1B
    $table->decimal('total_supply', 20, 2);
    $table->decimal('circulating_supply', 20, 2);
    $table->decimal('market_cap', 20, 2)->nullable();
    $table->decimal('unlocked_market_cap', 20, 2)->nullable();
    $table->decimal('volume_24h', 20, 2)->default(0);
    $table->decimal('fdv', 20, 2)->nullable(); // Fully Diluted Valuation
    $table->decimal('vol_mkt_cap_ratio', 10, 4)->default(0);
    $table->integer('holders_count')->default(0);
    $table->timestamp('last_updated_at');
    $table->timestamps();
});
```

### New Table: `token_price_history`

```php
Schema::create('token_price_history', function (Blueprint $table) {
    $table->id();
    $table->decimal('price', 20, 8);
    $table->decimal('volume', 20, 2)->nullable();
    $table->decimal('market_cap', 20, 2)->nullable();
    $table->decimal('percent_change', 10, 4)->nullable();
    $table->timestamp('recorded_at');
    $table->timestamps();

    $table->index('recorded_at');
});
```

### New Table: `staking_pools`

```php
Schema::create('staking_pools', function (Blueprint $table) {
    $table->id();
    $table->string('name');
    $table->text('description')->nullable();
    $table->decimal('apy', 5, 2); // Annual Percentage Yield
    $table->integer('lock_period_days'); // Lock period in days
    $table->decimal('min_stake', 20, 2)->default(0);
    $table->decimal('max_stake', 20, 2)->nullable();
    $table->decimal('total_staked', 20, 2)->default(0);
    $table->integer('total_stakers')->default(0);
    $table->boolean('is_active')->default(true);
    $table->timestamps();
});
```

### New Table: `user_stakes`

```php
Schema::create('user_stakes', function (Blueprint $table) {
    $table->id();
    $table->foreignId('user_id')->constrained()->cascadeOnDelete();
    $table->foreignId('staking_pool_id')->constrained()->cascadeOnDelete();
    $table->decimal('amount', 20, 2);
    $table->decimal('rewards_earned', 20, 2)->default(0);
    $table->timestamp('staked_at');
    $table->timestamp('unlock_at');
    $table->timestamp('claimed_at')->nullable();
    $table->enum('status', ['active', 'completed', 'withdrawn'])->default('active');
    $table->timestamps();

    $table->index(['user_id', 'status']);
});
```

### New Table: `token_burns`

```php
Schema::create('token_burns', function (Blueprint $table) {
    $table->id();
    $table->foreignId('user_id')->nullable()->constrained()->nullOnDelete();
    $table->decimal('amount', 20, 2);
    $table->string('burn_address')->nullable();
    $table->string('transaction_hash')->nullable();
    $table->string('burn_type')->default('manual'); // manual, automatic, transaction_fee
    $table->text('reason')->nullable();
    $table->timestamp('burned_at');
    $table->timestamps();

    $table->index('burned_at');
});
```

### New Table: `burn_statistics`

```php
Schema::create('burn_statistics', function (Blueprint $table) {
    $table->id();
    $table->decimal('total_burned', 20, 2)->default(0);
    $table->decimal('burned_today', 20, 2)->default(0);
    $table->decimal('burned_this_week', 20, 2)->default(0);
    $table->decimal('burned_this_month', 20, 2)->default(0);
    $table->integer('total_burn_transactions')->default(0);
    $table->timestamp('last_burn_at')->nullable();
    $table->timestamps();
});
```

---

| Page                   | Module  | Priority  |
| ---------------------- | ------- | --------- |
| Beranda (Homepage)     | Home    | 🔴 High   |
| Tokenomics             | Explore | 🔴 High   |
| White Paper            | Explore | 🔴 High   |
| Roadmap                | Explore | 🟡 Medium |
| Arsitektur & Teknologi | Explore | 🟡 Medium |
| Ecosystem              | Explore | 🟡 Medium |
| Audit & Security       | Explore | 🟡 Medium |
| Achievement            | Explore | 🟢 Low    |
| Newsletter             | News    | 🟡 Medium |
| Event Calendar         | News    | 🟡 Medium |
| Academy                | News    | 🔴 High   |
| Games                  | Game    | 🔴 High   |

#### User Dashboard Pages (Requires Login):

| Page                   | Module    | Priority  |
| ---------------------- | --------- | --------- |
| User Dashboard         | Dashboard | 🔴 High   |
| Informasi Token        | Token     | 🔴 High   |
| Staking Dashboard      | Staking   | 🔴 High   |
| Burn Trader Interaktif | Token     | 🟡 Medium |
| Wallet Management      | Wallet    | 🔴 High   |
| User Profile           | Profile   | 🟡 Medium |
| Point/Reward History   | Point     | 🟡 Medium |

#### Auth Pages:

| Page               | Module | Priority |
| ------------------ | ------ | -------- |
| Login (Masuk)      | Auth   | 🔴 High  |
| Register (Daftar)  | Auth   | 🔴 High  |
| Forgot Password    | Auth   | 🔴 High  |
| Email Verification | Auth   | 🔴 High  |

---

### 8. UI Components Needed

#### Navigation Components:

-   [ ] Navbar (transparent/sticky)
-   [ ] Mega Menu dropdown (2-column layout)
-   [ ] Mobile hamburger menu
-   [ ] Logo component

#### Hero/Banner Components:

-   [ ] Hero Slider/Carousel with dots
-   [ ] Slide background with gradient overlay

#### Content Components:

-   [ ] Section heading (cyan gradient style)
-   [ ] Two-column layout (image + content)
-   [ ] Bullet list with circle markers
-   [ ] Timeline vertical (alternating cards)
-   [ ] Timeline horizontal (wavy line)

#### Card Components:

-   [ ] Testimonial card (with avatar, name, role)
-   [ ] Feature card (icon + title + description)
-   [ ] Stats counter card (icon + number + label)
-   [ ] Event card with poster
-   [ ] FAQ accordion item

#### Interactive Components:

-   [ ] Calendar widget (month view)
-   [ ] Accordion/Collapsible FAQ
-   [ ] CTA Buttons (orange filled, cyan outlined, purple outlined)
-   [ ] Badge/Tag component

#### Footer Components:

-   [ ] Footer with logo centered
-   [ ] Social media icons row
-   [ ] Scroll to top button

#### Shared Elements:

-   [ ] Circuit board pattern background
-   [ ] Cosmic/space background
-   [ ] Gradient overlays (purple/magenta)
-   [ ] 3D geometric shapes

---

### 9. Assets Needed from Figma

#### Logos:

-   [ ] ASETQU V.2 Logo (SVG) - horizontal with text
-   [ ] ASETQU V.2 Logo - icon only (triangle)
-   [ ] ASETQU V.2 Logo - large version (for About section)
-   [ ] ASQ logo variant (for event posters)

#### Coin/Token Images:

-   [ ] Golden 3D coin (ASETQU V.2 embossed) - for White Paper section
-   [ ] Token icon variations

#### Background Images:

-   [ ] Hero slider backgrounds (cosmic/space theme)
-   [ ] Circuit board pattern (for About section)
-   [ ] Trading chart background (for Partnership section)
-   [ ] City skyline silhouette

#### Graphics:

-   [ ] Robot/cyborg character illustration
-   [ ] 3D geometric shapes (cubes, triangles)
-   [ ] Wavy timeline graphic (purple to cyan)
-   [ ] Event poster template

#### Icons:

-   [ ] Stats icons (users, transactions, partners)
-   [ ] Feature icons (trading, community, digital asset)
-   [ ] Social media icons (Facebook, Twitter, Instagram, LinkedIn)
-   [ ] Calendar icon, clock icon
-   [ ] Expand/collapse arrows for FAQ
-   [ ] Milestone icons for timeline

#### Avatar Images:

-   [ ] Testimonial avatars (or use placeholder service)

---

## 📋 Master To-Do List

### Phase 0: Setup & Assets ⏳

-   [ ] Get exact color codes from Figma (inspect panel)
-   [ ] Export logo assets (SVG/PNG)
-   [ ] Export hero images
-   [ ] Identify font family used
-   [ ] Export any custom icons
-   [ ] Export coin/token 3D images
-   [ ] Export background patterns

### Phase 1: Project Foundation 🔴

#### 1.1 Install Dependencies

```bash
# Frontend dependencies
npm install bootstrap@5.3 @popperjs/core
npm install swiper
npm install jquery

# Laravel packages
composer require spatie/laravel-permission
composer require intervention/image
```

#### 1.2 Configure Bootstrap & Vite

-   [ ] Create `resources/scss/app.scss` with Bootstrap imports
-   [ ] Create `resources/scss/_variables.scss` with ASETQU colors
-   [ ] Create `resources/scss/_custom.scss` for custom styles
-   [ ] Update `vite.config.js` for SCSS compilation
-   [ ] Update `resources/js/app.js` with Bootstrap JS

#### 1.3 Create Core Module

```bash
php artisan module:make Core
```

-   [ ] Create `layouts/master.blade.php` (public layout)
-   [ ] Create `layouts/admin.blade.php` (admin layout)
-   [ ] Create `layouts/auth.blade.php` (auth pages layout)
-   [ ] Create `components/navbar.blade.php`
-   [ ] Create `components/mega-menu.blade.php`
-   [ ] Create `components/footer.blade.php`
-   [ ] Create `partials/head.blade.php`
-   [ ] Create `partials/scripts.blade.php`

### Phase 2: Authentication Module 🔴

```bash
php artisan module:make Auth
```

-   [ ] Create LoginController
-   [ ] Create RegisterController
-   [ ] Create ForgotPasswordController
-   [ ] Create login.blade.php (matching Figma)
-   [ ] Create register.blade.php
-   [ ] Create forgot-password.blade.php
-   [ ] Create email verification views
-   [ ] Setup routes (web.php)

### Phase 3: Admin Module 🔴

```bash
php artisan module:make Admin
```

-   [ ] Create AdminMiddleware
-   [ ] Create DashboardController
-   [ ] Create UserController (manage users)
-   [ ] Create admin dashboard view
-   [ ] Create user management views
-   [ ] Setup admin routes with middleware
-   [ ] Integrate spatie/laravel-permission

### Phase 4: Setting Module 🔴

```bash
php artisan module:make Setting
```

-   [ ] Create Setting model & migration
-   [ ] Create SettingController
-   [ ] Create settings views (site info, social links, SEO)
-   [ ] Create SettingService helper

### Phase 5: Homepage (Update Home Module) 🔴

-   [ ] Update HomeController
-   [ ] Create homepage sections as blade components:
    -   [ ] `sections/hero.blade.php`
    -   [ ] `sections/about.blade.php`
    -   [ ] `sections/roadmap.blade.php`
    -   [ ] `sections/whitepaper.blade.php`
    -   [ ] `sections/events.blade.php`
    -   [ ] `sections/community.blade.php`
    -   [ ] `sections/partnership.blade.php`
    -   [ ] `sections/timeline.blade.php`
    -   [ ] `sections/faq.blade.php`

### Phase 6: Page Module (CMS) 🟡

```bash
php artisan module:make Page
```

-   [ ] Create Page model & migration
-   [ ] Create Section model & migration
-   [ ] Create PageController (public)
-   [ ] Create Admin/PageController (CMS)
-   [ ] Create static page views (tokenomics, ecosystem, etc.)
-   [ ] Create page editor in admin

### Phase 7: News Module 🟡

```bash
php artisan module:make News
```

-   [ ] Create Event model & migration
-   [ ] Create Newsletter model & migration
-   [ ] Create Article model & migration (Academy)
-   [ ] Create EventController
-   [ ] Create NewsletterController
-   [ ] Create AcademyController
-   [ ] Create views for events, newsletter, academy

### Phase 8: Dashboard Module (User) 🔴

```bash
php artisan module:make Dashboard
```

-   [ ] Create DashboardController
-   [ ] Create user dashboard view
-   [ ] Create profile management views
-   [ ] Token info display
-   [ ] Staking interface (UI only or API integration?)

### Phase 9: Wallet Module 🔴

```bash
php artisan module:make Wallet
```

-   [ ] Create Wallet model & migration
-   [ ] Create WalletController
-   [ ] Create wallet management views
-   [ ] Integrate with Indodax API (if available)
-   [ ] Encrypt sensitive data

### Phase 10: Game Module 🔴

```bash
php artisan module:make Game
```

-   [ ] Create Game model & migration
-   [ ] Create GameSession model & migration
-   [ ] Create Coin model & migration
-   [ ] Create GameController
-   [ ] Create game listing view
-   [ ] Create individual game views
-   [ ] Implement coin earning logic

### Phase 11: Point Module 🟡

```bash
php artisan module:make Point
```

-   [ ] Create Point model & migration
-   [ ] Create Conversion model & migration
-   [ ] Create PointController
-   [ ] Create point history view
-   [ ] Create conversion interface
-   [ ] Create leaderboard view

### Phase 12: Testing & Polish 🟢

-   [ ] Write feature tests for auth
-   [ ] Write feature tests for admin
-   [ ] Browser testing (responsive)
-   [ ] Performance optimization
-   [ ] Security review
-   [ ] SEO meta tags
-   [ ] Deployment preparation

### Phase 1.5: Beranda Components 🔴

#### Header

-   [ ] Navbar component (transparent/sticky)
-   [ ] Logo component
-   [ ] Mega Menu component (Explore, Token Dashboard, News & Events)
-   [ ] Mobile menu (hamburger)
-   [ ] Login button

#### Section 1: Hero

-   [ ] Hero slider container
-   [ ] Slide component with background
-   [ ] Dot navigation
-   [ ] Slide content (headline, description)

#### Section 2: About (Tentang)

-   [ ] Two-column layout
-   [ ] Large logo display
-   [ ] Cyan heading component
-   [ ] Bullet list with circle markers
-   [ ] Circuit board background

#### Section 3: Roadmap

-   [ ] Roadmap section heading
-   [ ] Vertical timeline component
-   [ ] Timeline node/dot
-   [ ] Roadmap card (phase title + bullet list)
-   [ ] Alternating left/right layout

#### Section 4: White Paper

-   [ ] Two-column layout (reversed)
-   [ ] 3D coin image display
-   [ ] Content with heading
-   [ ] Download button (outlined)

#### Section 5: Events

-   [ ] Three-column layout
-   [ ] Calendar widget component
-   [ ] Event poster card
-   [ ] Event details panel
-   [ ] Badge/tag component
-   [ ] Detail button

#### Section 6: Community Feed

-   [ ] Section heading
-   [ ] Testimonial card component
-   [ ] Avatar + name + role
-   [ ] Two-column grid

#### Section 7: Partnership

-   [ ] Stats counter component
-   [ ] Feature card component (3 color variants)
-   [ ] Three-column grid

#### Section 8: Timeline Graphic

-   [ ] Wavy line SVG/image
-   [ ] Milestone markers
-   [ ] Milestone labels

#### Section 9: FAQ

-   [ ] FAQ section layout
-   [ ] Accordion component
-   [ ] Expand/collapse animation
-   [ ] Cyan toggle icons

#### Section 10: Footer

-   [ ] Footer layout (centered)
-   [ ] Logo display
-   [ ] Description text
-   [ ] Social media links
-   [ ] Copyright text
-   [ ] Scroll to top button

### Phase 2: Core Modules 🔴

-   [ ] Auth Module (Login, Register, Forgot Password)
-   [ ] Admin Module (CMS Dashboard)
-   [ ] Setting Module (Site configuration)

### Phase 3: Public Pages (Company Profile) 🔴

-   [ ] Homepage with Hero Slider
-   [ ] Tokenomics page
-   [ ] White Paper page
-   [ ] Roadmap page
-   [ ] Ecosystem page
-   [ ] Audit & Security page
-   [ ] Achievement page

### Phase 4: News & Events Module 🟡

-   [ ] Newsletter subscription & archive
-   [ ] Event Calendar
-   [ ] Academy (learning platform)

### Phase 5: User Dashboard 🔴

-   [ ] User Dashboard layout
-   [ ] Profile Management
-   [ ] Informasi Token page
-   [ ] Staking Dashboard
-   [ ] Burn Trader Interaktif

### Phase 6: Wallet & Gamification 🔴

-   [ ] Wallet Module (Indodax integration)
-   [ ] Game Module setup
-   [ ] Coin collection system
-   [ ] Point conversion system
-   [ ] Leaderboard

### Phase 7: CMS & Admin 🟡

-   [ ] Page content management
-   [ ] WYSIWYG editor
-   [ ] Media library
-   [ ] Settings management
-   [ ] User management

### Phase 8: Testing & Launch 🟢

-   [ ] Unit tests
-   [ ] Integration tests
-   [ ] Performance optimization
-   [ ] Security audit
-   [ ] Deployment

---

## 🏗️ Final Module Architecture (HMVC with Bootstrap)

```
Modules/
├── Core/                    # 🆕 Shared layouts, components, helpers
├── Home/                    # ✅ Already exists - Homepage
├── Auth/                    # Login, Register, Password Reset
├── Admin/                   # Admin CMS Dashboard
├── Page/                    # CMS Static Pages (Tokenomics, Roadmap, etc.)
├── News/                    # Newsletter, Events, Academy
├── Dashboard/               # User Dashboard
├── Wallet/                  # E-Wallet Management
├── Game/                    # Games & Gamification
├── Point/                   # Points & Rewards System
└── Setting/                 # Site Settings & Configuration
```

**Total Modules: 11**

---

## 💬 Questions Before We Start

1. **Font Family** - What font is used? (Check Figma inspect panel)

2. **Exact Colors** - Can you copy the exact hex codes from Figma's inspect panel?

---

## ⚙️ SYSTEM FEATURES - COMPLETE SPECIFICATION

### Feature Overview

| Module         | Features                                                        |
| -------------- | --------------------------------------------------------------- |
| **Auth**       | Login, Register, Password Reset, 2FA (Email OTP), Session Mgmt  |
| **CMS**        | Pages, Sections, FAQ, Testimonials, Partners, Roadmap, Settings |
| **Events**     | Calendar, Registration, Reminders, Admin Management             |
| **Games**      | Game List, Play Sessions, Coin Rewards, Daily Limits            |
| **Wallet**     | Multi-wallet, Primary Wallet, Connect/Disconnect                |
| **Points**     | Coins, Points, Conversion, Daily Rewards, Leaderboard           |
| **Academy**    | Courses, Lessons, Progress Tracking                             |
| **Newsletter** | Subscription, Campaigns, Unsubscribe                            |
| **Admin**      | Dashboard, User Mgmt, Reports, Logs                             |

---

### 1. AUTHENTICATION SYSTEM

#### 1.1 Login System

**Flow:**

```
┌─────────────────────────────────────────────────────────────────┐
│                         LOGIN FLOW                               │
├─────────────────────────────────────────────────────────────────┤
│  1. User enters Email + Password                                │
│  2. System validates credentials                                │
│  3. Check if 2FA is enabled for user                           │
│     ├─ NO  → Login success, redirect to dashboard              │
│     └─ YES → Generate OTP, send to email, show OTP form        │
│  4. User enters OTP code                                        │
│  5. System validates OTP                                        │
│     ├─ VALID   → Login success, redirect to dashboard          │
│     └─ INVALID → Show error, allow retry (max 3 attempts)      │
└─────────────────────────────────────────────────────────────────┘
```

**Technical Implementation:**

```php
// OTP Configuration
OTP_LENGTH = 6           // 6 digit code
OTP_EXPIRY = 5           // 5 minutes validity
OTP_MAX_ATTEMPTS = 3     // Max retry attempts
OTP_COOLDOWN = 60        // Seconds before resend allowed
```

**Database Table: `two_factor_codes`**

```php
Schema::create('two_factor_codes', function (Blueprint $table) {
    $table->id();
    $table->foreignId('user_id')->constrained()->cascadeOnDelete();
    $table->string('code', 6);
    $table->timestamp('expires_at');
    $table->integer('attempts')->default(0);
    $table->boolean('is_used')->default(false);
    $table->string('ip_address')->nullable();
    $table->string('user_agent')->nullable();
    $table->timestamps();

    $table->index(['user_id', 'code', 'is_used']);
});
```

**Email Template: 2FA Code**

```
Subject: Kode Verifikasi Login AsetQu V.2

Halo {user_name},

Kode verifikasi login Anda adalah:

    {OTP_CODE}

Kode ini berlaku selama 5 menit.
Jangan bagikan kode ini kepada siapapun.

Jika Anda tidak melakukan login, abaikan email ini dan segera ubah password Anda.

Salam,
Tim AsetQu V.2
```

#### 1.2 Registration System

**Flow:**

```
┌─────────────────────────────────────────────────────────────────┐
│                       REGISTER FLOW                             │
├─────────────────────────────────────────────────────────────────┤
│  1. User fills form (Name, Email, Phone, Password, Wallet)     │
│  2. Validate all fields + unique email check                   │
│  3. Create user account (status: pending_verification)         │
│  4. Send email verification link                               │
│  5. User clicks verification link                              │
│  6. Account activated (status: active)                         │
│  7. Redirect to login                                          │
└─────────────────────────────────────────────────────────────────┘
```

**User Status Flow:**

```
pending_verification → active → suspended (by admin) → active
                    → deleted (soft delete)
```

#### 1.3 Password Management

**Change Password (Logged in user):**

-   Current password required
-   New password validation (min 8 chars, mixed case, number, special char)
-   Confirm new password
-   Logout all other sessions after change (optional setting)

**Forgot Password:**

```
┌─────────────────────────────────────────────────────────────────┐
│                    FORGOT PASSWORD FLOW                         │
├─────────────────────────────────────────────────────────────────┤
│  1. User enters email                                           │
│  2. Check if email exists                                       │
│  3. Generate reset token (valid 60 minutes)                    │
│  4. Send reset link to email                                   │
│  5. User clicks link → Reset password form                     │
│  6. User enters new password + confirmation                    │
│  7. Password updated, token invalidated                        │
│  8. Send confirmation email                                    │
└─────────────────────────────────────────────────────────────────┘
```

#### 1.4 Two-Factor Authentication (2FA)

**Enable 2FA Flow:**

```
┌─────────────────────────────────────────────────────────────────┐
│                      ENABLE 2FA FLOW                            │
├─────────────────────────────────────────────────────────────────┤
│  1. User goes to Profile → Security → 2FA                      │
│  2. User toggles "Enable 2FA"                                  │
│  3. System sends verification code to user's email             │
│  4. User enters code to confirm                                │
│  5. 2FA enabled for account                                    │
│  6. Log activity: "2FA enabled"                                │
└─────────────────────────────────────────────────────────────────┘
```

**Disable 2FA Flow:**

```
┌─────────────────────────────────────────────────────────────────┐
│                      DISABLE 2FA FLOW                           │
├─────────────────────────────────────────────────────────────────┤
│  1. User goes to Profile → Security → 2FA                      │
│  2. User toggles "Disable 2FA"                                 │
│  3. System requires current password confirmation              │
│  4. 2FA disabled                                               │
│  5. Send notification email: "2FA disabled on your account"    │
│  6. Log activity: "2FA disabled"                               │
└─────────────────────────────────────────────────────────────────┘
```

#### 1.5 Session Management

**Database Table: Update `sessions` table**

```php
// Laravel's default sessions table + custom fields
$table->string('device_name')->nullable();   // e.g., "Chrome on Windows"
$table->string('device_type')->nullable();   // desktop, mobile, tablet
$table->string('location')->nullable();      // City, Country from IP
$table->boolean('is_current')->default(false);
```

**Features:**

-   View all active sessions
-   See device info, location, last activity
-   Revoke individual sessions
-   "Logout all other devices" option

---

### 2. CMS (CONTENT MANAGEMENT SYSTEM) - DETAILED SPECIFICATION

#### 2.1 CMS Overview

The CMS allows admin to fully customize all public-facing content without code changes.

**Editable Components:**

```
┌─────────────────────────────────────────────────────────────────┐
│                     CMS EDITABLE AREAS                          │
├─────────────────────────────────────────────────────────────────┤
│  GLOBAL COMPONENTS                                              │
│  ├─ Header/Navbar (menu text, links, logo)                     │
│  ├─ Footer (content, links, copyright)                         │
│  └─ Social Media Links                                          │
│                                                                 │
│  PAGES                                                          │
│  ├─ Beranda (Homepage) - All 11 sections                       │
│  ├─ Explore Pages (7 pages)                                    │
│  │   ├─ Tokenomics                                             │
│  │   ├─ White Paper                                            │
│  │   ├─ Roadmap                                                │
│  │   ├─ Arsitektur & Teknologi                                 │
│  │   ├─ Ecosystem                                              │
│  │   ├─ Audit & Security                                       │
│  │   └─ Achievement                                            │
│  ├─ Token Dashboard Pages (3 pages)                            │
│  │   ├─ Informasi Token                                        │
│  │   ├─ Staking Dashboard                                      │
│  │   └─ Burn Trader Interaktif                                 │
│  ├─ News & Events Pages (3 pages)                              │
│  │   ├─ Newsletter                                             │
│  │   ├─ Event Calendar                                         │
│  │   └─ Academy                                                │
│  └─ Games Page                                                 │
│                                                                 │
│  HERO SECTIONS (Per page where applicable)                     │
│  ├─ Title, Subtitle, Description                               │
│  ├─ Background Image                                           │
│  ├─ CTA Buttons                                                │
│  └─ Enable/Disable                                             │
└─────────────────────────────────────────────────────────────────┘
```

---

#### 2.2 Header/Navbar Management

**Editable Elements:**

| Element            | Type       | Description                 |
| ------------------ | ---------- | --------------------------- |
| Site Logo          | Image      | Main logo (light version)   |
| Site Logo Dark     | Image      | Dark version (if needed)    |
| Menu Items         | JSON/Array | Menu structure with labels  |
| Menu Order         | Number     | Display order               |
| Menu Visibility    | Boolean    | Show/hide menu item         |
| Login Button Text  | String     | e.g., "Masuk"               |
| Login Button Style | Select     | primary, secondary, outline |

**Menu Structure (Stored as JSON):**

```php
$menuStructure = [
    [
        'id' => 'beranda',
        'label' => 'Beranda',
        'url' => '/',
        'type' => 'link',
        'is_active' => true,
        'order' => 1,
    ],
    [
        'id' => 'explore',
        'label' => 'Explore',
        'url' => '#',
        'type' => 'mega_menu',
        'is_active' => true,
        'order' => 2,
        'children' => [
            [
                'id' => 'tokenomics',
                'label' => 'Tokenomics',
                'description' => 'Struktur ekonomi token AsetQu V.2...',
                'url' => '/explore/tokenomics',
                'icon' => 'chart-pie',
                'is_active' => true,
            ],
            [
                'id' => 'whitepaper',
                'label' => 'White Paper',
                'description' => 'Dokumen resmi yang memaparkan visi...',
                'url' => '/explore/whitepaper',
                'icon' => 'document',
                'is_active' => true,
            ],
            // ... other explore items
        ],
    ],
    [
        'id' => 'token_dashboard',
        'label' => 'Token Dashboard',
        'url' => '#',
        'type' => 'mega_menu',
        'is_active' => true,
        'order' => 3,
        'children' => [
            [
                'id' => 'token_info',
                'label' => 'Informasi Token',
                'description' => 'Menyajikan data token AsetQu V.2...',
                'url' => '/token/info',
                'icon' => 'info-circle',
                'is_active' => true,
            ],
            [
                'id' => 'staking',
                'label' => 'Staking Dashboard',
                'description' => 'Platform terintegrasi untuk staking...',
                'url' => '/token/staking',
                'icon' => 'layers',
                'is_active' => true,
            ],
            [
                'id' => 'burn_tracker',
                'label' => 'Burn Trader Interaktif',
                'description' => 'Proses token burning secara berkala...',
                'url' => '/token/burn-tracker',
                'icon' => 'fire',
                'is_active' => true,
            ],
        ],
    ],
    [
        'id' => 'news_events',
        'label' => 'News & Events',
        'url' => '#',
        'type' => 'mega_menu',
        'is_active' => true,
        'order' => 4,
        'children' => [
            // Newsletter, Event Calendar, Academy
        ],
    ],
    [
        'id' => 'games',
        'label' => 'Games',
        'url' => '/games',
        'type' => 'link',
        'is_active' => true,
        'order' => 5,
    ],
];
```

**Database Table: `menus`**

```php
Schema::create('menus', function (Blueprint $table) {
    $table->id();
    $table->string('location');         // header, footer, sidebar
    $table->string('identifier');       // unique key
    $table->string('label');
    $table->string('url')->nullable();
    $table->text('description')->nullable();
    $table->string('icon')->nullable();
    $table->enum('type', ['link', 'mega_menu', 'dropdown']);
    $table->foreignId('parent_id')->nullable()->constrained('menus')->cascadeOnDelete();
    $table->integer('order')->default(0);
    $table->boolean('is_active')->default(true);
    $table->boolean('open_new_tab')->default(false);
    $table->string('css_class')->nullable();
    $table->timestamps();

    $table->index(['location', 'is_active', 'order']);
});
```

**Admin UI for Menu:**

```
┌─────────────────────────────────────────────────────────────────┐
│  HEADER MENU MANAGEMENT                               [+ Add]   │
├─────────────────────────────────────────────────────────────────┤
│  ☰ Beranda          [Link]        /              ✅ [Edit] [🗑] │
│  ☰ Explore          [Mega Menu]   #              ✅ [Edit] [🗑] │
│    ├─ Tokenomics    [Link]        /explore/...   ✅ [Edit] [🗑] │
│    ├─ White Paper   [Link]        /explore/...   ✅ [Edit] [🗑] │
│    └─ ...                                                       │
│  ☰ Token Dashboard  [Mega Menu]   #              ✅ [Edit] [🗑] │
│    ├─ Informasi Token                            ✅ [Edit] [🗑] │
│    └─ ...                                                       │
│  ☰ News & Events    [Mega Menu]   #              ✅ [Edit] [🗑] │
│  ☰ Games            [Link]        /games         ✅ [Edit] [🗑] │
└─────────────────────────────────────────────────────────────────┘
│  Drag to reorder • ✅ = Active • Click Edit to modify          │
└─────────────────────────────────────────────────────────────────┘
```

---

#### 2.3 Footer Management

**Editable Elements:**

| Section             | Elements                          |
| ------------------- | --------------------------------- |
| Logo & Description  | Logo image, description text      |
| Quick Links         | Configurable link list            |
| Contact Info        | Email, phone, address             |
| Social Media        | Icons + URLs                      |
| Copyright           | Copyright text with year variable |
| Additional Sections | Custom footer columns             |

**Database Table: `footer_sections`**

```php
Schema::create('footer_sections', function (Blueprint $table) {
    $table->id();
    $table->string('title');
    $table->enum('type', ['logo', 'links', 'contact', 'social', 'text', 'newsletter']);
    $table->json('content');        // Flexible content storage
    $table->integer('column');      // 1, 2, 3, 4 (Bootstrap grid)
    $table->integer('order')->default(0);
    $table->boolean('is_active')->default(true);
    $table->timestamps();
});
```

**Footer Content Example:**

```php
// Logo section
$logoSection = [
    'type' => 'logo',
    'content' => [
        'logo' => '/images/logo.png',
        'description' => 'AsetQu V.2 menyediakan solusi tokenisasi...',
    ],
];

// Links section
$linksSection = [
    'type' => 'links',
    'content' => [
        'title' => 'Quick Links',
        'links' => [
            ['label' => 'Tentang Kami', 'url' => '/about'],
            ['label' => 'Tokenomics', 'url' => '/explore/tokenomics'],
            ['label' => 'Roadmap', 'url' => '/explore/roadmap'],
            ['label' => 'FAQ', 'url' => '/#faq'],
        ],
    ],
];

// Copyright
$copyright = 'copy; {year} AsetQu V.2. All Rights Reserved.';
// {year} is replaced dynamically with current year
```

---

#### 2.4 Social Media Links Management

**Database Table: `social_links`**

```php
Schema::create('social_links', function (Blueprint $table) {
    $table->id();
    $table->string('platform');     // facebook, twitter, instagram, etc.
    $table->string('label');
    $table->string('url');
    $table->string('icon');         // Icon class or SVG
    $table->integer('order')->default(0);
    $table->boolean('is_active')->default(true);
    $table->boolean('show_in_header')->default(false);
    $table->boolean('show_in_footer')->default(true);
    $table->timestamps();
});
```

**Supported Platforms:**
| Platform | Icon | Default URL Pattern |
|----------|------|---------------------|
| Facebook | `fab fa-facebook` | https://facebook.com/... |
| Twitter/X | `fab fa-x-twitter` | https://x.com/... |
| Instagram | `fab fa-instagram` | https://instagram.com/... |
| LinkedIn | `fab fa-linkedin` | https://linkedin.com/... |
| Discord | `fab fa-discord` | https://discord.gg/... |
| Telegram | `fab fa-telegram` | https://t.me/... |
| YouTube | `fab fa-youtube` | https://youtube.com/... |
| TikTok | `fab fa-tiktok` | https://tiktok.com/... |
| GitHub | `fab fa-github` | https://github.com/... |

---

#### 2.5 Hero Section Management (Per Page)

Each page can have its own hero section configuration.

**Database Table: `page_heroes`**

```php
Schema::create('page_heroes', function (Blueprint $table) {
    $table->id();
    $table->string('page_slug')->unique();  // beranda, tokenomics, etc.
    $table->string('title');
    $table->string('title_color')->default('#FFD700');  // Gold gradient
    $table->text('subtitle')->nullable();
    $table->text('description')->nullable();
    $table->string('background_image')->nullable();
    $table->string('background_video')->nullable();  // For video backgrounds
    $table->enum('background_type', ['image', 'video', 'gradient'])->default('image');
    $table->string('background_overlay')->default('rgba(0,0,0,0.5)');
    $table->json('cta_buttons')->nullable();  // Array of buttons
    $table->enum('text_alignment', ['left', 'center', 'right'])->default('center');
    $table->enum('height', ['small', 'medium', 'large', 'full'])->default('medium');
    $table->boolean('is_active')->default(true);
    $table->timestamps();
});
```

**Hero CTA Buttons Structure:**

```php
$ctaButtons = [
    [
        'label' => 'Unduh Berkas',
        'url' => '/download/whitepaper.pdf',
        'style' => 'primary',      // primary, secondary, outline
        'icon' => 'download',
        'open_new_tab' => true,
    ],
    [
        'label' => 'Pelajari Lebih Lanjut',
        'url' => '#about',
        'style' => 'outline',
        'icon' => 'arrow-right',
        'open_new_tab' => false,
    ],
];
```

**Pages with Hero Sections:**
| Page | Hero Type | Special Features |
|------|-----------|------------------|
| Beranda | Slider/Carousel | Multiple slides |
| Tokenomics | Static | Title + description |
| White Paper | Static | With download CTA |
| Roadmap | Static | Timeline preview |
| Arsitektur | Static | Tech graphics |
| Ecosystem | Static | Network graphics |
| Audit & Security | Static | Security badge |
| Achievement | Static | Stats counters |
| Token Info | Static | Price ticker |
| Staking Dashboard | Static | Staking stats |
| Burn Tracker | Static | Burn stats |
| Newsletter | Static | Subscribe CTA |
| Events | Static | Calendar preview |
| Academy | Static | Course count |
| Games | Static | Game characters |

---

#### 2.6 Homepage (Beranda) Section Management

**All 11 Sections - Fully Editable:**

```php
$homepageSections = [
    'hero' => [
        'type' => 'slider',
        'editable' => [
            'slides' => [
                'image', 'title', 'description', 'cta_button', 'order'
            ],
            'autoplay' => true,
            'interval' => 5000,
            'indicators' => true,
        ],
    ],
    'about' => [
        'type' => 'two_column',
        'editable' => [
            'heading',
            'subheading',
            'logo_image',
            'intro_text',
            'bullet_points' => ['text', 'icon', 'order'],
            'background_image',
        ],
    ],
    'roadmap' => [
        'type' => 'timeline',
        'editable' => [
            'heading',
            'subheading',
            'phases' => ['title', 'items', 'status', 'order'],
        ],
    ],
    'whitepaper' => [
        'type' => 'two_column',
        'editable' => [
            'heading',
            'coin_image',
            'description',
            'features' => ['text', 'icon'],
            'download_button' => ['label', 'file'],
        ],
    ],
    'events' => [
        'type' => 'three_column',
        'editable' => [
            'heading',
            'calendar_settings',
            'featured_event',  // Auto or manual selection
            'event_display_count',
        ],
    ],
    'community' => [
        'type' => 'grid',
        'editable' => [
            'heading',
            'testimonials' => ['name', 'role', 'avatar', 'content', 'order'],
            'display_count',
        ],
    ],
    'partnership' => [
        'type' => 'stats_cards',
        'editable' => [
            'heading',
            'stats' => ['icon', 'number', 'label', 'suffix'],
            'feature_cards' => ['icon', 'title', 'description', 'color'],
        ],
    ],
    'timeline' => [
        'type' => 'horizontal',
        'editable' => [
            'milestones' => ['year', 'title', 'icon', 'order'],
            'line_color',
        ],
    ],
    'faq' => [
        'type' => 'accordion',
        'editable' => [
            'heading',
            'badge_text',
            'faqs' => ['question', 'answer', 'is_expanded', 'order'],
        ],
    ],
    'newsletter_cta' => [
        'type' => 'single',
        'editable' => [
            'heading',
            'description',
            'button_text',
            'background_image',
        ],
    ],
];
```

**Database Table: `homepage_sections`**

```php
Schema::create('homepage_sections', function (Blueprint $table) {
    $table->id();
    $table->string('section_key')->unique();  // hero, about, roadmap, etc.
    $table->string('title');
    $table->json('content');          // Section-specific content
    $table->json('settings');         // Display settings
    $table->integer('order')->default(0);
    $table->boolean('is_active')->default(true);
    $table->timestamps();
});
```

**Admin UI - Section Manager:**

```
┌─────────────────────────────────────────────────────────────────┐
│  HOMEPAGE SECTIONS                                    [Preview] │
├─────────────────────────────────────────────────────────────────┤
│  ☰ 1. Hero Slider        ✅ Active    [Edit Content] [Settings] │
│  ☰ 2. Tentang AsetQu     ✅ Active    [Edit Content] [Settings] │
│  ☰ 3. Roadmap            ✅ Active    [Edit Content] [Settings] │
│  ☰ 4. White Paper        ✅ Active    [Edit Content] [Settings] │
│  ☰ 5. Events             ✅ Active    [Edit Content] [Settings] │
│  ☰ 6. Community Feed     ✅ Active    [Edit Content] [Settings] │
│  ☰ 7. Partnership        ✅ Active    [Edit Content] [Settings] │
│  ☰ 8. Timeline           ❌ Disabled  [Edit Content] [Settings] │
│  ☰ 9. FAQ                ✅ Active    [Edit Content] [Settings] │
│ ☰ 10. Newsletter CTA     ✅ Active    [Edit Content] [Settings] │
└─────────────────────────────────────────────────────────────────┘
│  ☰ Drag to reorder • Toggle ✅/❌ to show/hide section          │
└─────────────────────────────────────────────────────────────────┘
```

---

#### 2.7 Explore Pages CMS

Each Explore page follows a similar structure but with unique content.

**Database Table: `explore_pages`**

```php
Schema::create('explore_pages', function (Blueprint $table) {
    $table->id();
    $table->string('slug')->unique();
    $table->string('menu_label');
    $table->text('menu_description');
    $table->string('menu_icon')->nullable();

    // Hero Section
    $table->string('hero_title');
    $table->text('hero_subtitle')->nullable();
    $table->string('hero_background')->nullable();

    // Main Content
    $table->string('content_heading')->nullable();
    $table->longText('content_body');    // Rich text / HTML
    $table->json('content_sections');     // Additional structured content

    // SEO
    $table->string('meta_title')->nullable();
    $table->text('meta_description')->nullable();

    $table->boolean('is_active')->default(true);
    $table->integer('order')->default(0);
    $table->timestamps();
});
```

**Page-Specific Content Structures:**

##### Tokenomics Page:

```php
$tokenomicsContent = [
    'distribution_chart' => [
        'type' => 'pie',
        'data' => [
            ['label' => 'Pool Migrasi', 'percentage' => 60, 'color' => '#14B8A6', 'description' => '...'],
            ['label' => 'Pengembangan Ekosistem', 'percentage' => 12, 'color' => '#22D3EE', 'description' => '...'],
            ['label' => 'Tim & Penasihat', 'percentage' => 8, 'color' => '#F87171', 'description' => '...'],
            ['label' => 'Treasury & Likuiditas', 'percentage' => 10, 'color' => '#E5E7EB', 'description' => '...'],
            ['label' => 'Marketing & Komunitas', 'percentage' => 7, 'color' => '#9CA3AF', 'description' => '...'],
            ['label' => 'Operasional', 'percentage' => 3, 'color' => '#EF4444', 'description' => '...'],
        ],
    ],
    'token_details' => [
        'name' => 'AsetQu V.2',
        'symbol' => 'ASQV2',
        'blockchain' => 'Solana',
        'total_supply' => '1,000,000,000',
        'decimals' => 9,
    ],
];
```

##### White Paper Page:

```php
$whitepaperContent = [
    'document' => [
        'file_url' => '/storage/documents/whitepaper-v2.pdf',
        'file_size' => '2.5 MB',
        'version' => '2.0',
        'last_updated' => '2025-12-01',
    ],
    'sections' => [
        ['title' => 'Executive Summary', 'anchor' => '#executive-summary'],
        ['title' => 'Technology', 'anchor' => '#technology'],
        ['title' => 'Tokenomics', 'anchor' => '#tokenomics'],
        ['title' => 'Roadmap', 'anchor' => '#roadmap'],
    ],
    'preview_enabled' => true,  // Show PDF preview
];
```

##### Roadmap Page:

```php
$roadmapContent = [
    'phases' => [
        [
            'phase_number' => 1,
            'title' => 'Peluncuran AsetQu V.2',
            'status' => 'completed',  // completed, in_progress, upcoming
            'items' => [
                ['text' => 'Migrasi token 1:1...', 'completed' => true],
                ['text' => 'Pembaruan branding...', 'completed' => true],
                // ...
            ],
        ],
        // More phases...
    ],
    'display_style' => 'vertical',  // vertical, horizontal
    'show_progress' => true,
];
```

##### Arsitektur & Teknologi Page:

```php
$architectureContent = [
    'tech_stack' => [
        ['name' => 'Solana', 'description' => '...', 'icon' => 'solana.svg'],
        ['name' => 'Smart Contracts', 'description' => '...', 'icon' => 'contract.svg'],
        // ...
    ],
    'diagrams' => [
        ['title' => 'System Architecture', 'image' => 'architecture.png'],
        ['title' => 'Data Flow', 'image' => 'dataflow.png'],
    ],
];
```

##### Ecosystem Page:

```php
$ecosystemContent = [
    'components' => [
        ['name' => 'AsetBid', 'description' => '...', 'icon' => '...', 'url' => '...'],
        ['name' => 'AsetTrust', 'description' => '...', 'icon' => '...', 'url' => '...'],
        ['name' => 'AsetAcademy', 'description' => '...', 'icon' => '...', 'url' => '...'],
    ],
    'integrations' => [
        // Third-party integrations
    ],
];
```

##### Audit & Security Page:

```php
$securityContent = [
    'audits' => [
        [
            'auditor' => 'CertiK',
            'date' => '2025-11-15',
            'score' => '95/100',
            'report_url' => '/audits/certik-2025.pdf',
            'badge_image' => 'certik-badge.png',
        ],
    ],
    'security_features' => [
        ['title' => 'Multi-Sig Wallet', 'description' => '...', 'icon' => '...'],
        ['title' => 'Time-Lock', 'description' => '...', 'icon' => '...'],
    ],
    'bug_bounty' => [
        'enabled' => true,
        'url' => 'https://...',
        'rewards' => '$100 - $10,000',
    ],
];
```

##### Achievement Page:

```php
$achievementContent = [
    'milestones' => [
        [
            'date' => '2025-01',
            'title' => 'Platform Launch',
            'description' => '...',
            'stats' => ['users' => 1000, 'transactions' => 5000],
        ],
        // More milestones
    ],
    'stats_counters' => [
        ['label' => 'Total Users', 'value' => 500000, 'icon' => 'users'],
        ['label' => 'Transactions', 'value' => 1000000, 'icon' => 'transactions'],
        ['label' => 'Partners', 'value' => 50, 'icon' => 'handshake'],
    ],
];
```

---

#### 2.8 Token Dashboard Pages CMS

##### Informasi Token Page:

```php
$tokenInfoContent = [
    // Static content (editable)
    'description' => 'AsetQu V.2 adalah token utilitas...',
    'features' => [
        ['title' => 'Fast Transactions', 'description' => '...'],
        ['title' => 'Low Fees', 'description' => '...'],
    ],

    // Dynamic data sources (API config)
    'data_sources' => [
        'price' => ['source' => 'coingecko', 'api_key' => '...'],
        'market_cap' => ['source' => 'coingecko'],
        'volume_24h' => ['source' => 'coingecko'],
        'holders' => ['source' => 'solscan'],
    ],

    // Fallback/mock data (when API unavailable)
    'fallback_data' => [
        'price' => 27.53,
        'market_cap' => '5.62M',
        'volume_24h' => '0',
        'holders' => '2.12K',
    ],

    'use_live_data' => false,  // Toggle: live API vs fallback
];
```

##### Staking Dashboard Page:

```php
$stakingContent = [
    'hero' => [
        'title' => 'Staking Dashboard',
        'subtitle' => 'Stake your ASQV2 tokens and earn rewards',
    ],
    'staking_info' => [
        'min_stake' => 100,
        'lock_periods' => [
            ['days' => 30, 'apy' => '5%'],
            ['days' => 90, 'apy' => '12%'],
            ['days' => 180, 'apy' => '20%'],
            ['days' => 365, 'apy' => '35%'],
        ],
        'total_staked' => '50,000,000 ASQV2',  // Can be dynamic
        'total_stakers' => 1500,
    ],
    'faq' => [
        // Staking-specific FAQ
    ],
    'is_staking_enabled' => true,  // Enable/disable staking feature
];
```

##### Burn Tracker Page:

```php
$burnTrackerContent = [
    'hero' => [
        'title' => 'Burn Tracker Interaktif',
        'subtitle' => 'Track ASQV2 token burns in real-time',
    ],
    'burn_stats' => [
        'total_burned' => '10,000,000 ASQV2',
        'burn_rate' => '0.1% per transaction',
        'next_burn' => '2026-02-01',
    ],
    'burn_history' => [
        // Can be from database or API
    ],
    'burn_mechanism' => [
        'description' => 'Tokens are burned automatically...',
        'sources' => [
            ['name' => 'Transaction Fee Burn', 'percentage' => 50],
            ['name' => 'Quarterly Burns', 'percentage' => 30],
            ['name' => 'Buyback & Burn', 'percentage' => 20],
        ],
    ],
];
```

---

#### 2.9 News & Events Pages CMS

##### Newsletter Page:

```php
$newsletterPageContent = [
    'hero' => [
        'title' => 'ASETQU V.2 NEWSLETTER',
        'subtitle' => 'Berlangganan newsletter...',
    ],
    'subscribe_section' => [
        'heading' => 'Berlangganan Newsletter Kami',
        'description' => 'Ikuti newsletter kami...',
        'button_text' => 'Subscribe',
        'privacy_note' => 'Privasi Anda adalah prioritas kami...',
    ],
    'past_newsletters' => [
        'show' => true,
        'display_count' => 6,
    ],
];
```

##### Academy Page:

```php
$academyPageContent = [
    'hero' => [
        'title' => 'AsetAcademy untuk Ekonomi Digital Masa Depan',
        'subtitle' => 'Pembelajaran terstruktur...',
    ],
    'categories' => [
        // Managed via courses module
    ],
    'featured_courses' => [
        'display_count' => 6,
        'sort_by' => 'newest',  // newest, popular, featured
    ],
];
```

---

#### 2.10 Games Page CMS

```php
$gamesPageContent = [
    'hero' => [
        'title' => 'AsetQu Games',
        'subtitle' => 'Play games and earn coins!',
        'background_image' => 'games-hero.jpg',
    ],
    'games_section' => [
        'heading' => 'SEMUA GAME',
        'subtitle' => 'Mainkan game dibawah untuk mendapatkan koin...',
        'display_style' => 'grid',  // grid, list
        'columns' => 3,
        'sort_by' => 'order',  // order, name, coins, newest
    ],
    'show_leaderboard' => true,
    'show_daily_limit_warning' => true,
];
```

---

#### 2.11 Global Settings CMS

**Database Table: `settings` (Enhanced)**

```php
$settingsCategories = [
    'site' => [
        'site_name' => ['type' => 'text', 'default' => 'AsetQu V.2'],
        'site_tagline' => ['type' => 'text', 'default' => 'Digital Asset Ecosystem'],
        'site_description' => ['type' => 'textarea'],
        'site_logo' => ['type' => 'image'],
        'site_logo_dark' => ['type' => 'image'],
        'site_favicon' => ['type' => 'image'],
        'site_language' => ['type' => 'select', 'options' => ['id', 'en']],
    ],

    'contact' => [
        'contact_email' => ['type' => 'email'],
        'contact_phone' => ['type' => 'text'],
        'contact_address' => ['type' => 'textarea'],
        'contact_whatsapp' => ['type' => 'text'],
    ],

    'seo' => [
        'meta_title' => ['type' => 'text'],
        'meta_description' => ['type' => 'textarea'],
        'meta_keywords' => ['type' => 'text'],
        'og_image' => ['type' => 'image'],
        'google_analytics_id' => ['type' => 'text'],
        'google_tag_manager_id' => ['type' => 'text'],
        'facebook_pixel_id' => ['type' => 'text'],
    ],

    'appearance' => [
        'primary_color' => ['type' => 'color', 'default' => '#E85D04'],
        'secondary_color' => ['type' => 'color', 'default' => '#2D1B4E'],
        'accent_color' => ['type' => 'color', 'default' => '#22D3EE'],
        'custom_css' => ['type' => 'code', 'language' => 'css'],
        'custom_js_head' => ['type' => 'code', 'language' => 'javascript'],
        'custom_js_footer' => ['type' => 'code', 'language' => 'javascript'],
    ],

    'maintenance' => [
        'maintenance_mode' => ['type' => 'boolean', 'default' => false],
        'maintenance_message' => ['type' => 'textarea'],
        'maintenance_end_date' => ['type' => 'datetime'],
        'allowed_ips' => ['type' => 'textarea'],  // One IP per line
    ],

    'api' => [
        'coingecko_api_key' => ['type' => 'password'],
        'solscan_api_key' => ['type' => 'password'],
        'use_live_token_data' => ['type' => 'boolean', 'default' => false],
    ],
];
```

---

#### 2.12 Media Library

**Features:**

-   Upload images, documents, videos
-   Organize by folders/categories
-   Image optimization on upload
-   Bulk upload support
-   Search & filter
-   Used-by tracking (which page uses which media)

**Database Table: `media` (Enhanced)**

```php
Schema::create('media', function (Blueprint $table) {
    $table->id();
    $table->string('name');
    $table->string('file_name');
    $table->string('mime_type');
    $table->string('path');
    $table->string('disk')->default('public');
    $table->unsignedBigInteger('size');
    $table->json('dimensions')->nullable();  // width, height for images
    $table->string('alt_text')->nullable();
    $table->text('caption')->nullable();
    $table->foreignId('folder_id')->nullable()->constrained('media_folders')->nullOnDelete();
    $table->foreignId('uploaded_by')->constrained('users');
    $table->timestamps();

    $table->index(['mime_type', 'folder_id']);
});

Schema::create('media_folders', function (Blueprint $table) {
    $table->id();
    $table->string('name');
    $table->string('slug');
    $table->foreignId('parent_id')->nullable()->constrained('media_folders')->cascadeOnDelete();
    $table->timestamps();
});
```

---

#### 2.13 CMS Admin Dashboard

**Quick Access Widgets:**

```
┌─────────────────────────────────────────────────────────────────┐
│  CMS DASHBOARD                                                  │
├─────────────────────────────────────────────────────────────────┤
│                                                                 │
│  ┌──────────────┐  ┌──────────────┐  ┌──────────────┐          │
│  │ Quick Edit   │  │ Recent       │  │ Popular      │          │
│  │ ─────────────│  │ Changes      │  │ Pages        │          │
│  │ • Homepage   │  │ • Hero (2h)  │  │ • Beranda    │          │
│  │ • Menu       │  │ • FAQ (1d)   │  │ • Tokenomics │          │
│  │ • Footer     │  │ • Menu (3d)  │  │ • Games      │          │
│  │ • Settings   │  │              │  │              │          │
│  └──────────────┘  └──────────────┘  └──────────────┘          │
│                                                                 │
│  ┌─────────────────────────────────────────────────────────┐   │
│  │ CONTENT CHECKLIST                                        │   │
│  │ ✅ Homepage hero configured                              │   │
│  │ ✅ All explore pages have content                        │   │
│  │ ⚠️  Social media links incomplete (3/9)                  │   │
│  │ ❌ White paper document not uploaded                     │   │
│  └─────────────────────────────────────────────────────────┘   │
│                                                                 │
└─────────────────────────────────────────────────────────────────┘
```

---

#### 2.14 Additional CMS Features (Suggested)

| Feature                    | Description                                     | Priority |
| -------------------------- | ----------------------------------------------- | -------- |
| **Page Versioning**        | Keep history of page edits, rollback capability | Medium   |
| **Draft/Publish Workflow** | Save drafts before publishing                   | High     |
| **Preview Mode**           | Preview changes before publishing               | High     |
| **Scheduled Publishing**   | Schedule content to go live at specific time    | Medium   |
| **Content Duplication**    | Clone pages/sections for quick setup            | Low      |
| **SEO Analyzer**           | Check SEO score for each page                   | Medium   |
| **Broken Link Checker**    | Scan for broken internal/external links         | Low      |
| **Multi-language Support** | Manage content in multiple languages            | Future   |
| **Content Templates**      | Reusable templates for common layouts           | Medium   |
| **Revision Comparison**    | Side-by-side comparison of versions             | Low      |
| **Bulk Actions**           | Bulk publish/unpublish/delete                   | Medium   |
| **Export/Import**          | Export content to JSON, import from backup      | Low      |

---

#### 2.15 CMS Database Schema Summary

**New Tables for CMS:**

| Table               | Purpose                             |
| ------------------- | ----------------------------------- |
| `menus`             | Header/footer menu management       |
| `footer_sections`   | Footer column management            |
| `social_links`      | Social media links                  |
| `page_heroes`       | Per-page hero configuration         |
| `homepage_sections` | Homepage section content & settings |
| `explore_pages`     | Explore page content                |
| `media`             | Media library files                 |
| `media_folders`     | Media organization                  |
| `content_revisions` | Page version history (optional)     |

---

### 3. EVENT MANAGEMENT SYSTEM

#### 3.1 Event Rules

**Constraint: ONE event per date**

```php
// events table - add unique constraint
$table->unique('event_date'); // Only one event per date
```

#### 3.2 Event Lifecycle

```
┌─────────────────────────────────────────────────────────────────┐
│                      EVENT LIFECYCLE                            │
├─────────────────────────────────────────────────────────────────┤
│                                                                 │
│  [Draft] → [Published] → [Registration Open] → [Starting Soon] │
│                                     ↓              ↓            │
│                              [Registration    [Event Live]      │
│                                 Closed]            ↓            │
│                                                [Completed]      │
│                                                                 │
└─────────────────────────────────────────────────────────────────┘
```

**Event Status Enum:**

```php
enum EventStatus: string {
    case DRAFT = 'draft';
    case PUBLISHED = 'published';
    case REGISTRATION_OPEN = 'registration_open';
    case REGISTRATION_CLOSED = 'registration_closed';
    case STARTING_SOON = 'starting_soon';  // 24h before
    case LIVE = 'live';                     // Event ongoing
    case COMPLETED = 'completed';
    case CANCELLED = 'cancelled';
}
```

#### 3.3 User Event Features

**Registration:**

```
┌─────────────────────────────────────────────────────────────────┐
│                    EVENT REGISTRATION                           │
├─────────────────────────────────────────────────────────────────┤
│  1. User views event details                                   │
│  2. Clicks "Ikuti Acara" (Join Event)                         │
│  3. System checks:                                             │
│     - User logged in?                                          │
│     - Registration still open?                                 │
│     - User not already registered?                             │
│     - Event capacity not full?                                 │
│  4. Create registration record                                 │
│  5. Send confirmation email                                    │
│  6. Add to user's event calendar                              │
└─────────────────────────────────────────────────────────────────┘
```

**Reminder System:**

```php
// Reminder schedule (via Laravel Scheduler + Queues)
$reminderSchedule = [
    '7_days'  => 'Event "{title}" akan berlangsung dalam 7 hari',
    '1_day'   => 'Event "{title}" akan berlangsung BESOK!',
    '1_hour'  => 'Event "{title}" akan dimulai dalam 1 JAM!',
    '15_min'  => 'Event "{title}" akan dimulai dalam 15 MENIT!',
];
```

**Database Table: `event_reminders`**

```php
Schema::create('event_reminders', function (Blueprint $table) {
    $table->id();
    $table->foreignId('user_id')->constrained()->cascadeOnDelete();
    $table->foreignId('event_id')->constrained()->cascadeOnDelete();
    $table->enum('reminder_type', ['7_days', '1_day', '1_hour', '15_min']);
    $table->timestamp('scheduled_at');
    $table->timestamp('sent_at')->nullable();
    $table->boolean('is_sent')->default(false);
    $table->timestamps();

    $table->unique(['user_id', 'event_id', 'reminder_type']);
});
```

**"Ingatkan" (Remind Me) Button:**

-   Toggle reminder notifications for event
-   User chooses which reminders: 7 days, 1 day, 1 hour, 15 min
-   Default: All enabled when registered

#### 3.4 Admin Event Features

**CRUD Events:**

-   Create event with date validation (no duplicate dates)
-   Set capacity limit (optional)
-   Upload poster/image
-   Set registration period (open/close dates)
-   Edit event details
-   Cancel event (notify all registered users)

**Event Dashboard:**

-   View registrations list
-   Export attendee list
-   Send announcement to registered users
-   Mark attendance (for offline events)
-   View event statistics

---

### 4. GAMES & GAMIFICATION SYSTEM

#### 4.1 Game Management (Admin)

**Game Configuration:**

```php
// games table fields
$gameConfig = [
    'name',
    'slug',
    'description',
    'thumbnail',
    'game_url',              // External game URL or route
    'coins_reward',          // Coins per completion
    'daily_play_limit',      // How many times per day
    'cooldown_minutes',      // Wait time between plays
    'min_score_for_reward',  // Minimum score to earn coins
    'is_active',
    'difficulty_level',      // easy, medium, hard
];
```

**Admin Features:**

-   CRUD games
-   Set reward amounts
-   Enable/disable games
-   View play statistics
-   Configure difficulty/limits

#### 4.2 Game Play System (User)

**Play Flow:**

```
┌─────────────────────────────────────────────────────────────────┐
│                        GAME PLAY FLOW                           │
├─────────────────────────────────────────────────────────────────┤
│  1. User clicks "Main Sekarang"                                │
│  2. System checks:                                             │
│     - Daily limit not exceeded?                                │
│     - Cooldown period passed?                                  │
│  3. Create game_session (status: started)                      │
│  4. User plays game                                            │
│  5. Game reports score/completion                              │
│  6. System validates result                                    │
│  7. Award coins if eligible                                    │
│  8. Update game_session (status: completed)                    │
│  9. Show reward notification                                   │
└─────────────────────────────────────────────────────────────────┘
```

**Anti-Cheat Measures:**

```php
$antiCheatRules = [
    'server_side_validation',     // Validate scores server-side
    'session_token',              // Unique token per game session
    'time_validation',            // Check if play time is realistic
    'score_threshold',            // Flag suspicious high scores
    'ip_rate_limiting',           // Limit requests per IP
    'device_fingerprinting',      // Track device (optional)
];
```

**Database: `game_sessions` updates**

```php
// Add to game_sessions table
$table->string('session_token')->unique();
$table->integer('duration_seconds')->nullable();
$table->json('game_data')->nullable();  // Store game-specific data
$table->boolean('is_valid')->default(true);
$table->string('invalidation_reason')->nullable();
```

#### 4.3 Daily Rewards

**Daily Login Reward:**

```
┌─────────────────────────────────────────────────────────────────┐
│                    DAILY REWARD SYSTEM                          │
├─────────────────────────────────────────────────────────────────┤
│  Day 1: 10 coins                                               │
│  Day 2: 15 coins                                               │
│  Day 3: 20 coins                                               │
│  Day 4: 25 coins                                               │
│  Day 5: 30 coins                                               │
│  Day 6: 40 coins                                               │
│  Day 7: 50 coins + BONUS 20 coins                              │
│  ─────────────────────────────────────                         │
│  Streak resets if user misses a day                            │
│  After Day 7, cycle repeats                                    │
└─────────────────────────────────────────────────────────────────┘
```

**Database: Add `daily_reward_config` table**

```php
Schema::create('daily_reward_config', function (Blueprint $table) {
    $table->id();
    $table->integer('day_number');  // 1-7
    $table->integer('coins_reward');
    $table->integer('bonus_coins')->default(0);
    $table->timestamps();
});
```

---

### 5. WALLET MANAGEMENT SYSTEM

#### 5.1 Wallet Platforms

**Supported Platforms:**
| Platform | Type | Features |
|----------|------|----------|
| Indodax | Exchange | API integration possible |
| Metamask | Web3 | Wallet address only |
| Trust Wallet | Web3 | Wallet address only |
| Coinbase | Exchange | API integration possible |
| Phantom | Web3 (Solana) | Wallet address only |

#### 5.2 User Wallet Features

**Add Wallet:**

```
┌─────────────────────────────────────────────────────────────────┐
│                      ADD WALLET FLOW                            │
├─────────────────────────────────────────────────────────────────┤
│  1. User clicks "+ Tambah Wallet"                              │
│  2. Select wallet platform from dropdown                       │
│  3. Enter wallet address/ID                                    │
│  4. System validates address format                            │
│  5. If exchange (Indodax/Coinbase):                           │
│     - Option to connect via API (future feature)              │
│  6. Save wallet to user account                               │
│  7. First wallet auto-set as primary                          │
└─────────────────────────────────────────────────────────────────┘
```

**Primary Wallet:**

-   One wallet marked as primary
-   Used for coin redemption
-   Can change primary wallet anytime

**Wallet Actions:**
| Action | Description |
|--------|-------------|
| Set Primary | Make this wallet primary for redemption |
| Disconnect | Remove API connection (if connected) |
| Delete | Remove wallet from account |

#### 5.3 Wallet Validation

**Address Format Validation:**

```php
$walletValidation = [
    'metamask'     => '/^0x[a-fA-F0-9]{40}$/',      // Ethereum address
    'trust_wallet' => '/^0x[a-fA-F0-9]{40}$/',      // Same as ETH
    'coinbase'     => '/^0x[a-fA-F0-9]{40}$/',      // Same as ETH
    'phantom'      => '/^[1-9A-HJ-NP-Za-km-z]{32,44}$/', // Solana address
    'indodax'      => '/^[a-zA-Z0-9]{6,20}$/',      // Indodax user ID
];
```

---

### 6. POINTS & REDEMPTION SYSTEM

#### 6.1 Coin System

**Earn Coins:**
| Source | Coins | Frequency |
|--------|-------|-----------|
| Game Completion | 10-25 | Per game (daily limit) |
| Daily Login | 10-50 | Once per day |
| Event Attendance | 50-100 | Per event |
| Academy Course Completion | 25-50 | Per course |
| Referral | 100 | Per successful referral (future) |

**Coin Transaction Types:**

```php
enum CoinTransactionType: string {
    case GAME_REWARD = 'game_reward';
    case DAILY_LOGIN = 'daily_login';
    case EVENT_BONUS = 'event_bonus';
    case COURSE_COMPLETION = 'course_completion';
    case REFERRAL_BONUS = 'referral_bonus';
    case ADMIN_ADJUSTMENT = 'admin_adjustment';
    case CONVERSION = 'conversion';  // Converted to points
    case EXPIRED = 'expired';        // If coins have expiry
}
```

#### 6.2 Points System

**Conversion Rate:**

```php
COIN_TO_POINT_RATE = 100;  // 100 coins = 1 point
```

**Conversion Flow:**

```
┌─────────────────────────────────────────────────────────────────┐
│                    COIN TO POINT CONVERSION                     │
├─────────────────────────────────────────────────────────────────┤
│  1. User goes to Redeem page                                   │
│  2. Sees current coin balance                                  │
│  3. Enters amount to convert                                   │
│  4. System shows point equivalent                              │
│  5. User confirms conversion                                   │
│  6. Coins deducted, points added                              │
│  7. Transaction logged                                         │
└─────────────────────────────────────────────────────────────────┘
```

#### 6.3 Redemption Options

**Redeem To:**
| Option | Description | Points Required |
|--------|-------------|-----------------|
| AsetBid | Credits for auction platform | TBD |
| AsetTrust Score | Boost reputation score | TBD |
| AsetAcademy | Premium course access | TBD |

---

### 7. LEADERBOARD SYSTEM

#### 7.1 Leaderboard Types

| Type            | Description                  | Period                  |
| --------------- | ---------------------------- | ----------------------- |
| Top Gamers      | Most coins from games        | Weekly/Monthly/All-time |
| Top Earners     | Most total coins             | Weekly/Monthly/All-time |
| Top Stakers     | Most consistent daily logins | Monthly                 |
| Event Champions | Most events attended         | Yearly                  |

#### 7.2 Leaderboard Calculation

**Scheduled Job (Daily):**

```php
// Calculate and cache leaderboard rankings
$schedule->command('leaderboard:calculate')->dailyAt('00:05');
```

**Privacy Settings:**

-   Users can opt-out from public leaderboard
-   Show username or "Anonymous User #123"

---

### 8. NOTIFICATION SYSTEM

#### 8.1 Notification Types

| Type             | Channels      | Trigger                |
| ---------------- | ------------- | ---------------------- |
| Event Reminder   | Email, In-app | Scheduled before event |
| Event Update     | Email, In-app | Admin updates event    |
| Coin Earned      | In-app        | Game completion        |
| Daily Reward     | In-app        | Login reward claimed   |
| Password Changed | Email         | Password updated       |
| 2FA Status       | Email         | 2FA enabled/disabled   |
| Welcome          | Email         | Registration completed |
| Newsletter       | Email         | Admin sends campaign   |

#### 8.2 Notification Preferences

**User Settings:**

```php
$notificationPreferences = [
    'email_event_reminders' => true,
    'email_newsletters' => true,
    'email_security_alerts' => true,  // Cannot disable
    'inapp_coin_rewards' => true,
    'inapp_event_updates' => true,
];
```

#### 8.3 Database: `notifications` table

```php
Schema::create('notifications', function (Blueprint $table) {
    $table->uuid('id')->primary();
    $table->string('type');
    $table->morphs('notifiable');
    $table->text('data');
    $table->timestamp('read_at')->nullable();
    $table->timestamps();
});
```

---

### 9. NEWSLETTER SYSTEM

#### 9.1 Subscription Management

**Subscribe Flow:**

```
┌─────────────────────────────────────────────────────────────────┐
│                    NEWSLETTER SUBSCRIBE                         │
├─────────────────────────────────────────────────────────────────┤
│  1. User enters email on newsletter page                       │
│  2. System validates email format                              │
│  3. Check if already subscribed                                │
│  4. Create subscriber record (status: pending)                 │
│  5. Send confirmation email with link                          │
│  6. User clicks confirmation link                              │
│  7. Status updated to: active                                  │
│  8. Show success message                                       │
└─────────────────────────────────────────────────────────────────┘
```

**Unsubscribe:**

-   One-click unsubscribe link in every email
-   Unsubscribe page with feedback form (optional)

#### 9.2 Admin Newsletter Features

**Campaign Management:**

-   Create newsletter campaigns
-   Rich text editor for content
-   Preview before sending
-   Schedule send time
-   Target: All subscribers / Registered users only
-   Track open rates (optional)

---

### 10. ACADEMY SYSTEM

#### 10.1 Course Structure

```
Course
├── Lessons (ordered)
│   ├── Lesson 1: Introduction
│   │   └── Content (video/text/quiz)
│   ├── Lesson 2: Basics
│   │   └── Content
│   └── Lesson 3: Advanced
│       └── Content
└── Completion Reward (coins)
```

#### 10.2 User Progress Tracking

**Progress States:**

```php
enum LessonStatus: string {
    case NOT_STARTED = 'not_started';
    case IN_PROGRESS = 'in_progress';
    case COMPLETED = 'completed';
}
```

**Course Completion:**

-   All lessons completed = Course completed
-   Award coins on first completion
-   Certificate generation (optional future feature)

---

### 11. ACTIVITY LOGGING & SECURITY

#### 11.1 User Activity Logs

**Logged Actions:**

```php
$loggedActions = [
    'auth.login',
    'auth.logout',
    'auth.login_failed',
    'auth.password_changed',
    'auth.2fa_enabled',
    'auth.2fa_disabled',
    'profile.updated',
    'wallet.added',
    'wallet.removed',
    'wallet.primary_changed',
    'game.played',
    'coins.converted',
    'event.registered',
    'event.cancelled',
];
```

#### 11.2 Admin Audit Logs

**Logged Admin Actions:**

```php
$adminLoggedActions = [
    'user.created',
    'user.updated',
    'user.suspended',
    'user.deleted',
    'event.created',
    'event.updated',
    'event.cancelled',
    'page.published',
    'settings.updated',
    'newsletter.sent',
];
```

#### 11.3 Security Features

| Feature             | Description                             |
| ------------------- | --------------------------------------- |
| Rate Limiting       | Limit login attempts (5 per minute)     |
| Account Lockout     | Lock after 5 failed attempts (15 min)   |
| Session Timeout     | Auto logout after inactivity (30 min)   |
| IP Logging          | Log IP for all auth actions             |
| Suspicious Activity | Alert on login from new device/location |

---

### 12. ADMIN DASHBOARD

#### 12.1 Dashboard Widgets

| Widget                 | Data                |
| ---------------------- | ------------------- |
| Total Users            | Count, growth %     |
| Active Users (Today)   | Count               |
| Total Events           | Upcoming, completed |
| Games Played Today     | Count               |
| Coins Distributed      | Today, this month   |
| Newsletter Subscribers | Total, growth       |
| Recent Registrations   | Last 5 users        |
| Recent Activity        | Last 10 actions     |

#### 12.2 Admin Modules

| Module     | Features                            |
| ---------- | ----------------------------------- |
| Users      | List, view, edit, suspend, delete   |
| Events     | CRUD, registrations, reports        |
| Games      | CRUD, statistics                    |
| CMS        | Pages, sections, FAQ, testimonials  |
| Newsletter | Campaigns, subscribers              |
| Academy    | Courses, lessons                    |
| Settings   | Site config, gamification rules     |
| Reports    | User stats, game stats, event stats |
| Logs       | Activity logs, error logs           |

---

### 13. ADDITIONAL SUGGESTED FEATURES

Based on the pages you've shared, here are additional features to consider:

#### 13.1 Search Functionality

-   Site-wide search
-   Search pages, events, courses, FAQ
-   Search suggestions/autocomplete

#### 13.2 Social Sharing

-   Share events on social media
-   Share achievements/badges
-   Referral links with tracking

#### 13.3 User Badges/Achievements

```php
$badges = [
    'early_bird'      => 'Registered in first month',
    'game_master'     => 'Played 100 games',
    'event_regular'   => 'Attended 5 events',
    'top_learner'     => 'Completed 10 courses',
    'loyal_member'    => '30-day login streak',
    'whale'           => 'Accumulated 10,000 coins',
];
```

#### 13.4 Referral System (Future)

-   Unique referral code per user
-   Reward for referrer and referee
-   Track referral conversions

#### 13.5 Multi-language Support (Future)

-   Indonesian (default)
-   English
-   Language switcher

#### 13.6 Dark/Light Mode (Future)

-   Theme toggle
-   Save preference

#### 13.7 Export Features

-   Export coin history (CSV)
-   Export game history (CSV)
-   Download certificates

#### 13.8 API Endpoints (Future)

-   Mobile app support
-   Third-party integrations
-   Webhook notifications

---

### 14. DATABASE SCHEMA UPDATES

**New Tables to Add:**

```php
// 1. two_factor_codes (for 2FA)
Schema::create('two_factor_codes', function (Blueprint $table) {
    $table->id();
    $table->foreignId('user_id')->constrained()->cascadeOnDelete();
    $table->string('code', 6);
    $table->timestamp('expires_at');
    $table->integer('attempts')->default(0);
    $table->boolean('is_used')->default(false);
    $table->string('ip_address')->nullable();
    $table->string('user_agent')->nullable();
    $table->timestamps();
    $table->index(['user_id', 'code', 'is_used']);
});

// 2. event_reminders
Schema::create('event_reminders', function (Blueprint $table) {
    $table->id();
    $table->foreignId('user_id')->constrained()->cascadeOnDelete();
    $table->foreignId('event_id')->constrained()->cascadeOnDelete();
    $table->enum('reminder_type', ['7_days', '1_day', '1_hour', '15_min']);
    $table->timestamp('scheduled_at');
    $table->timestamp('sent_at')->nullable();
    $table->boolean('is_sent')->default(false);
    $table->timestamps();
    $table->unique(['user_id', 'event_id', 'reminder_type']);
});

// 3. daily_reward_config
Schema::create('daily_reward_config', function (Blueprint $table) {
    $table->id();
    $table->integer('day_number');
    $table->integer('coins_reward');
    $table->integer('bonus_coins')->default(0);
    $table->timestamps();
});

// 4. user_notification_preferences
Schema::create('user_notification_preferences', function (Blueprint $table) {
    $table->id();
    $table->foreignId('user_id')->constrained()->cascadeOnDelete();
    $table->boolean('email_event_reminders')->default(true);
    $table->boolean('email_newsletters')->default(true);
    $table->boolean('email_security_alerts')->default(true);
    $table->boolean('inapp_coin_rewards')->default(true);
    $table->boolean('inapp_event_updates')->default(true);
    $table->timestamps();
});

// 5. user_badges
Schema::create('user_badges', function (Blueprint $table) {
    $table->id();
    $table->foreignId('user_id')->constrained()->cascadeOnDelete();
    $table->string('badge_slug');
    $table->timestamp('earned_at');
    $table->timestamps();
    $table->unique(['user_id', 'badge_slug']);
});

// 6. badges (reference table)
Schema::create('badges', function (Blueprint $table) {
    $table->id();
    $table->string('slug')->unique();
    $table->string('name');
    $table->text('description');
    $table->string('icon')->nullable();
    $table->json('criteria');  // Conditions to earn
    $table->boolean('is_active')->default(true);
    $table->timestamps();
});
```

**Tables to Update:**

```php
// users table - add fields
$table->string('phone')->nullable();
$table->string('country')->default('Indonesia');
$table->string('city')->nullable();
$table->string('district')->nullable();
$table->string('village')->nullable();
$table->string('postal_code')->nullable();
$table->text('full_address')->nullable();
$table->boolean('two_factor_enabled')->default(false);
$table->integer('login_streak')->default(0);
$table->timestamp('last_reward_claimed_at')->nullable();
$table->boolean('show_on_leaderboard')->default(true);

// events table - add unique date constraint
$table->unique('event_date');

// game_sessions table - add anti-cheat fields
$table->string('session_token')->unique();
$table->integer('duration_seconds')->nullable();
$table->json('game_data')->nullable();
$table->boolean('is_valid')->default(true);
$table->string('invalidation_reason')->nullable();

// sessions table - add device info
$table->string('device_name')->nullable();
$table->string('device_type')->nullable();
$table->string('location')->nullable();
```

---

### 15. SUMMARY: TOTAL TABLES

| Category      | Tables                                                                           |
| ------------- | -------------------------------------------------------------------------------- |
| Core          | users, password_reset_tokens, sessions                                           |
| Permission    | roles, permissions, model_has_roles, model_has_permissions, role_has_permissions |
| CMS           | pages, sections, faqs, testimonials, partners                                    |
| Roadmap       | roadmap_phases, roadmap_items                                                    |
| Events        | events, event_registrations, event_reminders                                     |
| Newsletter    | newsletters, newsletter_subscribers                                              |
| Academy       | courses, lessons, user_course_progress                                           |
| Wallet        | wallet_platforms, wallets, wallet_balances                                       |
| Games         | games, game_sessions                                                             |
| Points        | coins, points, coin_conversions, daily_rewards, daily_reward_config              |
| Gamification  | badges, user_badges, leaderboards                                                |
| Notifications | notifications, user_notification_preferences                                     |
| Auth          | two_factor_codes                                                                 |
| Settings      | settings, media                                                                  |
| Logging       | activity_logs                                                                    |

**Updated Total: ~40 tables**

---

## 🤝 Ready to Start!

Now that we have documented both **frontend design** and **system features**, we can begin implementation.

**Suggested Implementation Order:**

1. **Phase 1: Foundation**

    - Install dependencies (Bootstrap, packages)
    - Configure database (PostgreSQL)
    - Create all migrations
    - Setup HMVC modules structure

2. **Phase 2: Authentication**

    - User registration
    - Login with 2FA
    - Password management
    - Session management

3. **Phase 3: Core CMS**

    - Admin dashboard
    - Page management
    - Site settings
    - Media library

4. **Phase 4: Public Pages**

    - Homepage with all sections
    - Explore pages (Tokenomics, etc.)
    - FAQ

5. **Phase 5: Events**

    - Event CRUD (Admin)
    - Event calendar (Public)
    - Registration & reminders

6. **Phase 6: Games & Points**

    - Game management
    - Game play system
    - Coin/Point system
    - Daily rewards

7. **Phase 7: User Dashboard**

    - Dashboard overview
    - Wallet management
    - Profile settings

8. **Phase 8: Newsletter & Academy**
    - Newsletter subscription
    - Course management
    - User progress

Let me know when you're ready to start implementation! 🚀
