PW Panel Extended Version

Website PW Panel Extended Version 1.5

You must log in or register to purchase ($250.00) No permission to download

Welcome!

By registering with us, you'll be able to discuss, share and private message with other members of our community.

SignUp Now!
  • Dear Guest, You are a regular member, and you cannot download files here. To be able to download all files here, you must become a “Lovely Member.” How to become a Lovely Member? Click this link: 💖 How to Become a “Lovely Member” on Our Forum Alternatively, you can upgrade your account to VIP using this link: Upgrade

1783900261935.webp

PW-Panel Extended Version​


NOTE: Ini adalah versi premium berbayar, versi gratis bisa download di Website - PW Panel
PW-Panel adalah web control panel untuk private server MMORPG Perfect World. Satu paket berisi: situs marketing publik, dashboard pemain, dan staff tooling (admin + gamemaster) di atas Laravel 8 dengan Jetstream, Fortify, Livewire, Sanctum, dan Tailwind CSS.

Catatan kompatibilitas: panel ini ditargetkan untuk build Perfect World klasik. Versi server terbaru (mis. 1.6.x / 1.7.x) mungkin butuh penyesuaian.

Homepage / Author: hrace009



Overview​


Proyek dipisah menjadi empat area modul (lihat app/Http/Controllers dan resources/views):

  • Website — halaman marketing publik, berita, ranking.
  • Front — area pemain yang sudah login (dashboard, shop, donasi, voting, services, voucher).
  • Admin — staff control panel lengkap.
  • Gamemaster — tools staff in-game yang dibatasi.

Akses Perfect World API diisolasi di services terpisah (app/Services, plus local package package/hrace009/perfect-world-api) sehingga controllers dan views tidak pernah memanggil game API secara langsung.



Features​


  • Authentication & manajemen profil via Laravel Jetstream + Fortify (opsional 2FA).
  • Player dashboard di /dashboard.
  • News / artikel dengan categories dan tags.
  • Item Shop — purchase, gift, add points, masks.
  • Donations — PayPal (Omnipay), Paymentwall, iPaymu, bank transfer.
  • Voucher / coupon redemption.
  • In-game services.
  • Rankings — players dan factions.
  • Streamer promotion codes dengan bonus untuk player dan streamer.
  • Monthly dan weekly top-spender rewards (Auto send ke character mailbox).
  • Character inspection dengan octets reader dan RAE Exported Tabs — sekarang bisa lihat semuanya.
  • Gold circulation.
  • Territory War data sync.
  • Admin dan Gamemaster panels.
  • Income reporting & statistik.
  • Daily login activity statistics.
  • CAPTCHA support (bonecms/laravel-captcha).
  • Scheduled jobs untuk game sync, top-spender rewards, daily login, cleanup.



Roadmap / What's Next​


Section ini di-maintain best-effort; hanya item yang sudah confirmed — extend sesuai rencana.

  • Tetap di Laravel 8 (belum ada rencana migrasi ke Laravel 12 / Vite).
  • Terus hardening integrasi Perfect World API di belakang services.
  • TODO: publish official changelog / milestone list.
  • TODO: dokumentasi formal upgrade path untuk PW server build terbaru.



Tech Stack​


  • Language / runtime: PHP ^7.3 | ^8.0
  • Framework: Laravel ^8.75
  • Auth / UI scaffolding: Jetstream ^2.6, Fortify, Sanctum ^2.11, Livewire ^2.5
  • Front-end: Tailwind CSS 3, Sass, Alpine.js 3, jQuery, Bootstrap 5 (legacy assets), TinyMCE, SweetAlert2 — dibundel dengan Laravel Mix 6
  • Database: MySQL 5.7+ / MariaDB 10.3+
  • Package managers: Composer (PHP), npm (JS/CSS)
  • Testing: PHPUnit ^9.5
  • Local packages (path repositories di composer.json):
    • brucedeity/pwhexparser
    • hrace009/perfect-world-api



Requirements​


  • PHP ^7.3 atau ^8.0 dengan extension: BCMath, Ctype, cURL, Fileinfo, GD, JSON, Mbstring, OpenSSL, PDO, Tokenizer, XML
  • Composer 2.x dan Git
  • Node.js 14+ / 16+ dan npm (atau yarn)
  • MySQL 5.7+ / MariaDB 10.3+
  • Perfect World server yang running dan reachable dari web host (untuk game integration)
  • Web server: Nginx atau Apache



Quick Start​


Bash:
# 1. Clone dan install dependencies
git clone <your-fork-or-repo-url> pw-panel
cd pw-panel
composer install
npm install

# 2. Configure environment
cp .env.example .env
# edit .env — minimal set APP_URL dan DB_* credentials

# 3. Generate app key dan run migrations
php artisan key:generate
php artisan migrate
php artisan db:seed --class=ServiceSeeder

# 4. Build front-end assets
npm run dev      # development build
# npm run prod   # production build

# 5. Buat akun administrator
php artisan pw:createAdmin

# 6. Serve the app
php artisan serve

Akses http://127.0.0.1:8000/ untuk public site, dan http://127.0.0.1:8000/dashboard setelah login.



Entry Points​


  • HTTP kernel: public/index.php (web server document root harus ke public/).
  • Console kernel / CLI: artisan (mis. php artisan ...).
  • Route definitions: routes/web.php, routes/api.php, routes/channels.php, routes/console.php.
  • Scheduler: didefinisikan di app/Console/Kernel.php — jalankan php artisan schedule:work untuk local, atau cron entry * * * * * php /path/to/artisan schedule:run >> /dev/null 2>&1 di production.



Scripts​


npm (lihat package.json)​


ScriptDescription
npm run dev / npm run developmentLaravel Mix development build
npm run watchRebuild assets on file changes
npm run watch-pollwatch dengan polling (berguna di VM / WSL)
npm run hotHot Module Replacement dev server
npm run prod / npm run productionProduction (minified) build

Custom artisan commands (lihat app/Console/Commands)​


CommandPurpose
pw:createAdminBuat akun administrator secara interaktif.
pw:cleanupPendingUsersHapus pending user registration yang kedaluwarsa.
pw:deactivateCouponsNonaktifkan coupons / vouchers yang sudah expired.
pw:getDailyLoginRecord daily-login activity dari game server.
pw:summarizeDailyLoginSummarize daily-login stats.
pw:sendTopSpendersRewardDistribusikan weekly top-spender rewards.
pw:sendTopSpendersMonthlyRewardDistribusikan monthly top-spender rewards.
pw:updateFactionsSync factions dari game server.
pw:updatePlayersSync player data dari game server.
pw:updateTerritoriesSync Territory War data.
pw:updateTransferProcess pending in-game transfers.
pw:updateIpaymuStatusPoll iPaymu untuk update status donasi.

Signature command yang pasti dideklarasikan di tiap class di app/Console/Commands. Cek di sana sebelum scripting automation.

Composer scripts​


Hanya standard Laravel lifecycle hooks (post-autoload-dump, post-update-cmd, post-create-project-cmd, post-root-package-install) — lihat composer.json.



Environment Variables​


Copy .env.example ke .env dan isi minimal berikut. Key yang tidak disebutkan pakai default Laravel.

Core​


VariableNotes
APP_NAMEDisplayed application name.
APP_ENVlocal / production.
APP_KEYDi-generate oleh php artisan key:generate.
APP_DEBUGfalse di production.
APP_URLPublic base URL (dipakai payment callback).

Database​


DB_CONNECTION, DB_HOST, DB_PORT, DB_DATABASE, DB_USERNAME, DB_PASSWORD.

Sessions / Cache / Queue​


SESSION_DRIVER (default database — run migrations sebelum login pertama), SESSION_LIFETIME, CACHE_DRIVER, QUEUE_CONNECTION, FILESYSTEM_DRIVER, BROADCAST_DRIVER.

Mail​


MAIL_MAILER, MAIL_HOST, MAIL_PORT, MAIL_USERNAME, MAIL_PASSWORD, MAIL_ENCRYPTION, MAIL_FROM_ADDRESS, MAIL_FROM_NAME, dan MAIL_GM untuk gamemaster notifications.

Optional services​


  • AWS: AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, AWS_DEFAULT_REGION, AWS_BUCKET, AWS_USE_PATH_STYLE_ENDPOINT.
  • Pusher: PUSHER_APP_ID, PUSHER_APP_KEY, PUSHER_APP_SECRET, PUSHER_APP_CLUSTER (dan matching MIX_PUSHER_*).
  • Redis / Memcached: REDIS_HOST, REDIS_PORT, REDIS_PASSWORD, MEMCACHED_HOST.

Perfect World & payments​


Credentials Perfect World server dan feature toggle ada di config/pw-config.php dan config file terkait (config/ipaymu.php, dll). Payment provider keys (PayPal, Paymentwall, iPaymu) umumnya di-config dari admin panel; webhook secrets sensitif wajib disimpan di .env dan direferensikan via config. TODO: enumerate semua PW-specific env/config key di docs/ page tersendiri.



Database & Game Integration​


  • Sample database dump tersedia di dbo.sql untuk baseline data PW-integration (wajib import dbo.sql ke database baru sebelum run migrations).
  • Application tables dibuat oleh migrations di database/migrations; seeders di database/seeders.
  • Custom User model pakai kolom passwd / passwd2 dan primary key custom (users.ID); hashing di-wire lewat app/Providers/HashServiceProvider.php.



Payments​


  • iPaymu — config di config/ipaymu.php (va, key, sandbox, limits).
  • PayPal — via league/omnipay + omnipay/paypal; config di admin panel.
  • Paymentwall — middleware dan model sudah included; set callback / pingback URL ke domain kamu.

Donation endpoint dideklarasikan di routes/web.php.



Tests​


Pakai PHPUnit (phpunit.xml di repo root) dengan suite tests/Feature dan tests/Unit.

Bash:
php vendor/bin/phpunit
# atau suite tertentu
php vendor/bin/phpunit --testsuite=Feature

TODO: expand test coverage — suite saat ini masih minim dan jadi starting point.



Project Structure​


Code:
app/
  Actions/                    # Jetstream/Fortify actions dan custom actions
  Console/
    Commands/                 # Custom artisan commands (PW sync, rewards, cleanup)
    Kernel.php                # Scheduler definitions
  Http/
    Controllers/{Admin,Front,Gamemaster,Website,Auth,Profile}
    Livewire/                 # Livewire components (class-side)
    Middleware/               # Registered in Http/Kernel.php
    Helper/                   # Autoloaded helpers (prefer Services/Actions for new code)
  Providers/                  # Incl. HashServiceProvider untuk PW passwd hashing
  Services/                   # Perfect World API dan service class lain
  View/Components/Hrace009/   # Blade component classes
bootstrap/
config/                       # Incl. pw-config.php, ipaymu.php
database/
  migrations/
  seeders/
  factories/
docs/                         # Dokumentasi tambahan
package/                      # Local path-repository packages
  brucedeity/pwhexparser
  hrace009/perfect-world-api
public/                       # Web server document root (index.php)
resources/
  css/app.css                 # Tailwind entry
  sass/app.scss               # Sass entry
  js/                         # JS bundles
  lang/{en,id,...}/           # Translation files
  views/{website,front,admin,gm,auth,profile,components,livewire}/
routes/
  web.php  api.php  channels.php  console.php
storage/
tests/{Feature,Unit}/
webpack.mix.js                # Laravel Mix build config
tailwind.config.js
phpunit.xml
artisan                       # CLI entry point



Deployment​


Arahkan web server ke direktori public/ dan set APP_DEBUG=false, APP_ENV=production.

Optimize untuk production:

Bash:
composer install --optimize-autoloader --no-dev
php artisan config:cache
php artisan route:cache
php artisan view:cache
npm run prod

Clear cache setelah perubahan config / route / view:

Bash:
php artisan optimize:clear

Nginx (contoh)​


NGINX:
server {
    listen 80;
    server_name example.com;
    root /srv/example.com/public;

    add_header X-Frame-Options "SAMEORIGIN";
    add_header X-Content-Type-Options "nosniff";
    index index.php;
    charset utf-8;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    location = /favicon.ico { access_log off; log_not_found off; }
    location = /robots.txt  { access_log off; log_not_found off; }

    error_page 404 /index.php;

    location ~ \.php$ {
        fastcgi_pass unix:/var/run/php/php7.4-fpm.sock; # sesuaikan dengan PHP-FPM kamu
        fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
        include fastcgi_params;
    }

    location ~ /\.(?!well-known).* { deny all; }
}

Apache (contoh)​


Code:
<VirtualHost *:80>
    ServerName example.com
    DocumentRoot /var/www/example.com/public

    <Directory /var/www/example.com>
        AllowOverride All
        Require all granted
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/example.com-error.log
    CustomLog ${APACHE_LOG_DIR}/example.com-access.log combined
</VirtualHost>

Bash:
a2ensite pwpanel.conf
a2enmod rewrite
systemctl restart apache2



Security Checklist​


  • APP_ENV=production dan APP_DEBUG=false di production.
  • Serve lewat HTTPS dan set APP_URL dengan benar.
  • Restrict write permission ke storage/* dan bootstrap/cache.
  • Rotasi payment provider keys dan webhook secret secara berkala.
  • Simpan secret di .env — jangan pernah commit credentials.



Troubleshooting​


  • 500 error setelah deployment — run php artisan optimize:clear dan cek file permission.
  • Auth / session issue — pastikan migration sudah jalan dan table sessions ada (default SESSION_DRIVER=database).
  • Asset issue — rebuild dengan npm run prod dan pastikan public/mix-manifest.json ada dan readable.



Contributing​


PR dan issue welcome. Ikuti Laravel code style, hormati module boundary yang dijelaskan di AI_GUIDELINES.md, dan jaga controller tetap tipis — push business logic ke actions / services.

Lihat juga CODE_OF_CONDUCT.md.



License​


Dirilis di bawah MIT License — lihat LICENSE.

Credits: Harris Marfel (hrace009). Base work inspired by @tomirons/pw-web.
Author
hrace009
Downloads
1
Views
1,390
First release
Last update

Ratings

0.00 star(s) 0 ratings

More resources from hrace009

Back
Top