GameDock is a full-featured web platform combining digital game commerce, console game rentals, peer-to-peer game sales, and a real-time community forum. Built with a server-rendered PHP foundation and enhanced with modern JavaScript and interactive CSS styling.
- PC Digital Ownership (Buy): Purchase digital PC game keys with permanent library access.
- Console Rentals (Rent): Rent PlayStation (PS4/PS5) and Xbox game discs/licenses with flexible rental durations (3, 7, 15, or 30 days).
- Interactive Library Marquee: Dynamic, dual-track drifting game showcase on the homepage that responds to mouse movement and touch drag.
- Detailed Game Specs: Overview of platforms, categories, pricing, stock levels, and rental availability.
- Unified Cart System: Supports purchasing PC games and renting console games in the same order with custom durations.
- Wishlist Management: Save favorites and quickly toggle games in/out of your wishlist from cards or detail views.
- Transaction-Safe Checkout: Database transactions ensure stock decrements and purchase/rental records occur atomically.
- Printable Invoices / Receipts: Clean, print-ready order invoice view (
receipt.php) formatted for paper and PDF export.
- Discussion Threads: Create and browse gaming threads with rich formatting and author details.
- Hold-to-Pick Emoji Reactions: Facebook-style reaction trigger supporting instant tap-to-like or hold-to-pick from an animated emoji tray (
👍 Like,❤️ Love,😆 Haha,😮 Wow,😢 Sad,😠 Angry), plus a dedicated👎 Disliketoggle. - AJAX Commenting System: Expandable comment threads with real-time additions, inline content editing, and deletion without page reloads.
- User Dashboard: View purchase history, active rentals with expiration dates, saved games, and submitted sales.
- Illustrated Avatar Gallery: Choose from 81 bundled vector avatars with gender filtering (Male / Female).
- Deterministic Avatar Fallback: Multiplicative hashing algorithm assigns unique, consistent avatars to anonymous or unconfigured users.
- Safe Billing Storage: Tokenized card management that safely stores only card brand, last 4 digits, and expiry date.
- Multi-Currency Support: On-the-fly price conversion across 12 currencies (USD, EUR, GBP, JPY, CAD, AUD, BDT, INR, etc.) stored via cookie.
- Zero-FOUC Dual Themes: Dark mode ("Aurora Drift") with ambient glow and Light mode ("Warm Paper") rendered server-side to eliminate theme flashing.
- Interactive Custom Cursor: Theme-aware magnetic cursor with trailing particles and sparkle effects.
- Footer Battle Minigame: Real-time animated SVG arena simulation featuring selectable heroes (Volt, Ember, Bolt-7, Rune, Fern) battling Shade.
| Layer | Technologies / Tools |
|---|---|
| Backend | PHP 8.2+ (Procedural / Script-based with PDO prepared statements) |
| Database | MySQL / MariaDB (InnoDB, UTF-8 mb4, Foreign Key Constraints) |
| Frontend Styling | Custom CSS3 (Custom properties, Flexbox, CSS Grid, Keyframe Animations) |
| Frontend Scripting | JavaScript (ES6+, jQuery 3.7.1, Pointer Events, requestAnimationFrame) |
| Typography & Icons | Google Fonts (Unbounded, Hanken Grotesk), Native Unicode Emoji, Inline SVG |
| Server | Apache HTTP Server (XAMPP / WAMP / LAMP) |
GameDock/
├── css/
│ └── style.css # Master stylesheet (design system, themes, animations)
├── images/ # Raw box art, cover images, and favicon
├── includes/ # Shared PHP partials & helpers
│ ├── auth_check.php # Session management & Remember-Me auth
│ ├── avatar_gallery_data.php # 81-avatar roster data & hash seeder
│ ├── connection.php # PDO MySQL database connection
│ ├── currency.php # Multi-currency rates & price formatters
│ ├── footer.php # Footer layout & SVG battle arena
│ ├── header.php # Navigation, cart badge, and theme rendering
│ ├── reaction_icons.php # Forum reaction definitions & emoji maps
│ └── cache/
│ └── rates_cache.json # Cached exchange rate data
├── js/ # Client-side interactivity scripts
│ ├── app.js # Nav toggles, theme switch, hero parallax, library marquee
│ ├── avatar-builder.js # Avatar gallery filter and AJAX selector
│ ├── cursor.js # Custom interactive trailing cursor & sparkles
│ ├── footer-battle.js # Auto-battling SVG canvas minigame
│ ├── forum-comments.js # AJAX comments thread management
│ └── forum-reactions.js # Facebook-style hold-to-pick emoji reactions
├── uploads/ # Web-accessible game covers & avatars
│ └── avatars/gallery/ # 81 pre-bundled avatar PNGs
├── buy.php # Direct PC purchase checkout
├── cart.php # Shopping cart page
├── cart_action.php # Cart add / remove action handler
├── checkout_process.php # Multi-item cart checkout transaction
├── forum.php # Community discussion board
├── forum_comment_action.php # AJAX comment CRUD endpoint
├── forum_reaction_action.php # AJAX reaction toggle endpoint
├── game_details.php # Single game details & purchase/rental actions
├── gamedock.sql # Full database schema and initial seed data
├── home.php # Homepage with hero & animated marquee
├── login.php / register.php # Authentication pages
├── pc_games.php # PC digital game catalog
├── profile.php # User profile dashboard
├── ps_rentals.php / xbox_rentals.php # Console rental catalogs
├── receipt.php # Order invoice receipt
├── rental_checkout.php # Direct rental checkout flow
├── sell_game.php # C2C game listing submission
└── wishlist.php # User saved games wishlist
- Web Server: Apache (via XAMPP, WAMP, or standalone Apache)
- PHP: Version 8.0 or higher (PHP 8.2 recommended)
- Database: MySQL 5.7+ or MariaDB 10.4+
-
Clone the Repository: Clone or copy the project into your web server's root directory (e.g.
C:\xampp\htdocs\on Windows):git clone https://github.com/luminancexe/GameDock.git C:/xampp/htdocs/GameDock
-
Database Setup:
- Start Apache and MySQL in your XAMPP Control Panel.
- Open phpMyAdmin (
http://localhost/phpmyadmin) or MySQL CLI. - Create a database named
gamedock:CREATE DATABASE gamedock CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
- Import the schema file:
(Or use phpMyAdmin's Import tab to upload
mysql -u root -p gamedock < gamedock.sqlgamedock.sql)
-
Configure Database Connection: Open
includes/connection.phpand verify your MySQL host, port, and credentials:$host = "localhost"; $port = "3306"; // Change to 3307 if your local MySQL runs on 3307 $username = "root"; $password = ""; $dbname = "gamedock";
-
Verify Database Connection: Visit
http://localhost/GameDock/db_connection_check.phpin your browser to verify the connection and table row counts. -
Launch Application: Open your browser and navigate to:
http://localhost/GameDock/
You can register a new account via register.php or use the pre-seeded demo user:
- Email:
demo@gamedock.com - Password:
password123
- Noman — @luminancexe
- Abrar — @abrar-0992
- Saadman — @Saadmantheretroenjoyer
- Muaaz — @ansm-muaaz