Petzy Redesign - Detailed Description
OVERVIEW
The user-facing pages of the site were redesigned to match the Petzy mobile app look: cream background
(#fff8eb), green action buttons (#377544) with a 3D "pressed" shadow, gold accent (#ffd66b), rounded
cards, and the Nunito font. All pages are mobile-first (max width 480px, centred on wider screens).
Only the Blade views were changed. Controllers, routes, form field names, validation and money logic
are the same as before, so existing behaviour is not affected.
AUTH
- Login (/login): waterfall hero image, logo, site name, dog mascot, phone + password form, show/hide
password, Remember me, Log in button, Forgot password and Sign up links. Posts to the same login route
with the same fields (phone, password).
- Registration (/register): same hero, fields for full name, phone, password, confirm password and invite
code (required by the controller), terms checkbox, optional sign-up bonus banner (shown only when the
registration_bonus setting is above 0). Invite code is pre-filled from ?inviteCode=.
MAIN TABS (shared bottom nav: Home, Adopt, Pets, Team, Profile)
- Dashboard (/dashboard): hero with monkey, wallet card (balance, total withdrawn, hide/show amounts),
"Choose your first buddy" plan carousel from the database, 3-step guide, quick actions (Top up, Withdraw,
Invite, Gift code), My team card.
- Adopt (/vip): all active plans sorted by price. First plan is a large card, the rest are 2-column cards
with price tag, hourly income, total return and days. Cards go to /purchase/confirmation/{id}. Shows
"Already adopted" or "Coming soon" where relevant.
- Pets (/my/vip): island hero with wallet pill; empty state when nothing is adopted; otherwise a card per
adopted plan with capital, daily income, earnings so far, progress bar and the claim button (24h
countdown, Claim rewards, Already claimed). Claim links still use /my/vip?vip_id=ID.
- Team (/my-team): invite code with copy, share button, commission rates per level, tabs (Overview,
Members, Tasks, Rewards), total commission with this week / this month, "Your circle" table per level,
member list per level.
- Profile (/mine): passport card (name, masked phone with reveal, UID with copy, pets, withdrawn, balance),
Top up / Withdraw buttons, invite banner, grouped menus (Assets, History, Services, Settings), Download
app and Log out.
WALLET
- Top up (/user/recharge): amount box, presets, payment channel list from the database, deposit rules,
fixed confirm button. Minimum is 50,000 (same as before). Goes to /user/payment/{amount}/{method}.
- Payment confirm (/user/payment/{amount}/{method}): amount to send, channel logo/name, account number with
copy, Transaction ID (required), optional screenshot (max 4MB). Posts to external-deposit with the same
fields (methods, amount, trx, photo). The old fake 59-minute countdown was removed.
- Withdraw (/withdraw): checklist (active pet, payout account, withdrawals open), amount box with min/max
and fee from settings (minimum_withdraw, maximum_withdraw, withdraw_charge), presets and Max, saved payout
account card, rules, fixed confirm button. Posts to user.withdraw-confirm-submit with field "amount".
- Payout account (/card and /add/card): bank/e-wallet select (WithdrawBank), account number, confirm number,
account name. Posts to setup.gateway.submit (gateway_method, gateway_number, holdername).
RECORDS (one shared template: petzy-records.blade.php)
- Top-up history, Withdrawal history, Transaction history (filters + totals), Fund flow, Rewards
(daily reward, task bonus, gift code bonus). Each record shows icon, title, description, date, +/-
amount and a Success / Pending / Failed tag. Nice empty state with a call-to-action button.
GROWTH
- Tasks (/tasks): next goal, milestone road, progress bars (paid members and team deposit) and Claim
button. Claim still goes to apply-for-task-commission/{id} with the same eligibility rules.
- Invite (/invite): code and link with copy, native share, WhatsApp and Telegram buttons, stats, commission
rates (25% / 3% / 1%, taken from PurchaseController), how it works. Stats are now calculated from the
database instead of user columns that may not exist.
- Gift code (/promo): code input and Redeem button. Posts to submitBonusCode (bonus_code). The old
hard-coded "Latest Claims" ticker (fake names and amounts) was removed.
ACCOUNT
- Edit profile (/my/name): nickname (posts name to name.submit), read-only phone. Save is enabled only
when the name changed.
- Change password (/my/password) and Withdraw password (/withdraw/password): shared template with
show/hide, minimum 6 characters and match check. Same routes and field names as before.
INFO
- About us: rewritten for Petzy (the old text was about a different crypto project with invented market
data). Contact links use the support page and the telegram_group setting.
- Customer support (/service): cards from telegram_channel and telegram_group settings, tips. The bottom
nav was removed from this page as requested.
DYNAMIC DATA AND HELPERS (app/Helper/helpers.php)
- pet_species(), pet_slug(), pet_image(): choose a cartoon pet per plan (animal word in the plan name,
then the number in the name, then price order).
- plan_image(): uses the photo uploaded for the package in the admin panel if it exists, otherwise the
cartoon pet. Used on Dashboard, Adopt and Pets.
- The site name always comes from config('app.name') (APP_NAME in .env).
FILES
- Images: assets/petzy/ (habitat-garden, dog, monkey, thumbnails, team, wallet) and
assets/logo-Bft15HTj.png
- Shared views: app/layout/petzy-nav, petzy-records, petzy-password-form
KNOWN LIMITS
- Purchase confirmation (/purchase/confirmation/{id}) is still the old design.
- Currency symbol is still "$" (change currency_symbol() once to update everywhere).
- Malaysia chip and +60 on Login/Register are display-only (no country switching).
- Pages were checked for Blade compile errors and routes only; I did not view them logged in.
- Run php artisan config:clear after changing .env.