gameforge / index.html
Batfly's picture
Create a fully responsive and professional website called "Trommel" using PHP, MySQL, CSS, and JavaScript. The website must allow registered users to trade and sell personal goods they no longer want. It must have a unique, modern, and awesome UI/UX with high security standards to protect all user data from hackers (e.g., SQL injection prevention, password hashing with bcrypt, CSRF protection). Key Features & Requirements: General Requirements: Modern and fully responsive layout (mobile-first design). Optimized for speed and SEO. Clear navigation with a professional marketplace vibe. Separate areas for users and admin (different dashboards). Authentication System: Fully functional login and registration system built with PHP and MySQL. Secure password storage using hashing (bcrypt). Input validation and sanitization on all forms. Session-based authentication with CSRF tokens for protection. Ability for users to reset passwords via email (use PHPMailer). Database Structure: Tables for users, items (listings), subscriptions, and admin management. Fields for user profile data (username, email, password, subscription type, etc.). Fields for items (title, description, images, location, price, created_at, posted_by). User Dashboard Features: Ability to list items for trade or sale: upload images, add description, set location, etc. View, edit, and delete personal listings. View subscription status (Free or Pro). Pro users get highlighted listings and more item slots (e.g., 50 vs 10). Admin Dashboard Features: View, approve, or remove user listings. Manage users (upgrade to Pro, ban users, etc.). View website statistics (e.g., total listings, active users). Subscriptions: Two types: Free and Pro. Free: Limited listings, no priority display. Pro: More listings, priority display, highlighted profile. Contact Page: Functional contact form using PHPMailer to send messages to site admin. Includes validation (no empty fields, valid email format). Security: Use prepared statements (PDO/MySQLi) for all database queries. Password hashing (bcrypt). CSRF protection on all forms. Validate and sanitize file uploads (e.g., only images, size limits). Role-based access control (normal users vs admin). Design Requirements: Unique and professional design — minimalistic marketplace look. Clean typography, modern buttons, hover animations. Use grid and flexbox for layout. Fully responsive navbar with dropdown menus for mobile. Additional Features: Search functionality for listings (by keyword, location, category). Filter and sorting options for browsing items. User profiles with bio and active listings count. Image thumbnails and lightbox for viewing item photos. Output Expectations Provide all source files: PHP (frontend and backend), CSS, JS, MySQL database schema (SQL file), and PHPMailer integration setup. Include clean code structure with folders: pgsql Copy Edit /assets (css, js, images) /includes (header, footer, database connection) /dashboard (user dashboard) /admin (admin dashboard) /uploads (user uploaded images) Include step-by-step instructions for setup: database import, PHPMailer configuration, and admin access creation. - Follow Up Deployment
1da21d7 verified
Raw
History Blame Contribute Delete
52.2 kB
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Trommel - Trade & Sell Your Goods</title>
<script src="https://cdn.tailwindcss.com"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
<style>
/* Custom CSS for elements Tailwind can't handle easily */
.gradient-bg {
background: linear-gradient(135deg, #6b21a8 0%, #2563eb 100%);
}
.item-card:hover {
transform: translateY(-5px);
box-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.1);
}
.lightbox {
display: none;
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: rgba(0,0,0,0.9);
z-index: 1000;
justify-content: center;
align-items: center;
}
.lightbox-content {
max-width: 90%;
max-height: 90%;
}
.lightbox-close {
position: absolute;
top: 20px;
right: 30px;
color: white;
font-size: 30px;
cursor: pointer;
}
.mobile-menu {
transform: translateX(100%);
transition: transform 0.3s ease-in-out;
}
.mobile-menu.active {
transform: translateX(0);
}
/* Animation for alerts */
@keyframes slideIn {
from { transform: translateY(-100px); opacity: 0; }
to { transform: translateY(0); opacity: 1; }
}
.alert-animation {
animation: slideIn 0.5s forwards;
}
</style>
</head>
<body class="bg-gray-50 font-sans">
<!-- Alert Notification (would be shown after actions) -->
<div id="alert" class="hidden fixed top-4 right-4 z-50">
<div class="alert-animation bg-green-500 text-white px-6 py-3 rounded-lg shadow-lg flex items-center">
<i class="fas fa-check-circle mr-2"></i>
<span>Item listed successfully!</span>
</div>
</div>
<!-- Lightbox for images -->
<div id="lightbox" class="lightbox">
<span class="lightbox-close" onclick="closeLightbox()">&times;</span>
<img id="lightbox-img" class="lightbox-content" src="" alt="Enlarged view">
</div>
<!-- Mobile Menu -->
<div id="mobileMenu" class="mobile-menu fixed inset-y-0 right-0 w-64 bg-white shadow-lg z-40 p-4">
<button onclick="toggleMobileMenu()" class="absolute top-4 right-4 text-gray-600">
<i class="fas fa-times text-2xl"></i>
</button>
<div class="mt-12">
<a href="#" class="block py-2 px-4 rounded hover:bg-purple-50 text-gray-700">Home</a>
<a href="#listings" class="block py-2 px-4 rounded hover:bg-purple-50 text-gray-700">Browse Listings</a>
<a href="#how-it-works" class="block py-2 px-4 rounded hover:bg-purple-50 text-gray-700">How It Works</a>
<a href="#pricing" class="block py-2 px-4 rounded hover:bg-purple-50 text-gray-700">Pricing</a>
<a href="#contact" class="block py-2 px-4 rounded hover:bg-purple-50 text-gray-700">Contact</a>
<div class="border-t my-2"></div>
<a href="#" id="loginBtnMobile" class="block py-2 px-4 rounded bg-purple-100 text-purple-700 font-medium mt-2">Login</a>
<a href="#" id="registerBtnMobile" class="block py-2 px-4 rounded gradient-bg text-white font-medium mt-2">Register</a>
</div>
</div>
<!-- Navigation -->
<nav class="bg-white shadow-sm sticky top-0 z-30">
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
<div class="flex justify-between h-16">
<div class="flex items-center">
<div class="flex-shrink-0 flex items-center">
<i class="fas fa-recycle text-purple-600 text-2xl mr-2"></i>
<span class="text-xl font-bold text-gray-800">Trommel</span>
</div>
<div class="hidden sm:ml-6 sm:flex sm:space-x-8">
<a href="#" class="border-purple-500 text-gray-900 inline-flex items-center px-1 pt-1 border-b-2 text-sm font-medium">Home</a>
<a href="#listings" class="border-transparent text-gray-500 hover:border-gray-300 hover:text-gray-700 inline-flex items-center px-1 pt-1 border-b-2 text-sm font-medium">Browse Listings</a>
<a href="#how-it-works" class="border-transparent text-gray-500 hover:border-gray-300 hover:text-gray-700 inline-flex items-center px-1 pt-1 border-b-2 text-sm font-medium">How It Works</a>
<a href="#pricing" class="border-transparent text-gray-500 hover:border-gray-300 hover:text-gray-700 inline-flex items-center px-1 pt-1 border-b-2 text-sm font-medium">Pricing</a>
<a href="#contact" class="border-transparent text-gray-500 hover:border-gray-300 hover:text-gray-700 inline-flex items-center px-1 pt-1 border-b-2 text-sm font-medium">Contact</a>
</div>
</div>
<div class="hidden sm:ml-6 sm:flex sm:items-center">
<a href="#" id="loginBtn" class="px-4 py-2 rounded-md text-purple-700 font-medium hover:bg-purple-50">Login</a>
<a href="#" id="registerBtn" class="ml-4 px-4 py-2 rounded-md gradient-bg text-white font-medium hover:opacity-90">Register</a>
</div>
<div class="-mr-2 flex items-center sm:hidden">
<button onclick="toggleMobileMenu()" class="inline-flex items-center justify-center p-2 rounded-md text-gray-400 hover:text-gray-500 hover:bg-gray-100 focus:outline-none">
<i class="fas fa-bars text-xl"></i>
</button>
</div>
</div>
</div>
</nav>
<!-- Hero Section -->
<section class="gradient-bg text-white">
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-20">
<div class="md:flex md:items-center md:justify-between">
<div class="md:w-1/2 mb-10 md:mb-0">
<h1 class="text-4xl md:text-5xl font-bold mb-6">Trade & Sell Your Pre-Loved Items</h1>
<p class="text-lg mb-8 opacity-90">Join Trommel to give your unwanted items a new home while finding treasures from others.</p>
<div class="flex flex-col sm:flex-row space-y-4 sm:space-y-0 sm:space-x-4">
<a href="#" class="px-6 py-3 bg-white text-purple-700 rounded-lg font-medium text-center hover:bg-gray-100 transition">Browse Listings</a>
<a href="#" class="px-6 py-3 border border-white text-white rounded-lg font-medium text-center hover:bg-white hover:bg-opacity-10 transition">How It Works</a>
</div>
</div>
<div class="md:w-1/2 flex justify-center">
<div class="relative w-full max-w-md">
<div class="absolute -top-6 -left-6 w-32 h-32 bg-purple-300 rounded-full mix-blend-multiply filter blur-xl opacity-70"></div>
<div class="absolute -bottom-8 -right-8 w-32 h-32 bg-blue-300 rounded-full mix-blend-multiply filter blur-xl opacity-70"></div>
<div class="relative bg-white rounded-xl shadow-lg overflow-hidden">
<img src="https://images.unsplash.com/photo-1585916420730-1ba60c7d127a?ixlib=rb-1.2.1&auto=format&fit=crop&w=500&q=60" alt="Marketplace items" class="w-full h-auto">
<div class="p-4 bg-gray-50">
<div class="flex justify-between items-center">
<div>
<h3 class="font-medium text-gray-900">Vintage Camera</h3>
<p class="text-purple-600 font-medium">$45.00</p>
</div>
<div class="flex items-center text-yellow-400">
<i class="fas fa-star"></i>
<i class="fas fa-star"></i>
<i class="fas fa-star"></i>
<i class="fas fa-star"></i>
<i class="fas fa-star-half-alt"></i>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
<!-- Stats Section -->
<section class="bg-white py-12">
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
<div class="grid grid-cols-2 md:grid-cols-4 gap-8 text-center">
<div>
<div class="text-4xl font-bold text-purple-600 mb-2">10,000+</div>
<div class="text-gray-500">Active Members</div>
</div>
<div>
<div class="text-4xl font-bold text-purple-600 mb-2">50,000+</div>
<div class="text-gray-500">Items Listed</div>
</div>
<div>
<div class="text-4xl font-bold text-purple-600 mb-2">95%</div>
<div class="text-gray-500">Positive Feedback</div>
</div>
<div>
<div class="text-4xl font-bold text-purple-600 mb-2">24/7</div>
<div class="text-gray-500">Support Available</div>
</div>
</div>
</div>
</section>
<!-- Featured Listings -->
<section id="listings" class="py-16 bg-gray-50">
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
<div class="text-center mb-12">
<h2 class="text-3xl font-bold text-gray-900 mb-4">Featured Listings</h2>
<p class="text-lg text-gray-600 max-w-2xl mx-auto">Discover amazing items from our community members</p>
</div>
<!-- Search and Filter -->
<div class="mb-8 bg-white p-4 rounded-lg shadow-sm">
<div class="flex flex-col md:flex-row md:items-center md:justify-between gap-4">
<div class="flex-1">
<div class="relative">
<input type="text" placeholder="Search for items..." class="w-full pl-10 pr-4 py-2 border border-gray-300 rounded-lg focus:ring-purple-500 focus:border-purple-500">
<div class="absolute left-3 top-2.5 text-gray-400">
<i class="fas fa-search"></i>
</div>
</div>
</div>
<div class="flex space-x-2">
<select class="border border-gray-300 rounded-lg px-3 py-2 focus:ring-purple-500 focus:border-purple-500">
<option>All Categories</option>
<option>Electronics</option>
<option>Furniture</option>
<option>Clothing</option>
<option>Books</option>
<option>Other</option>
</select>
<select class="border border-gray-300 rounded-lg px-3 py-2 focus:ring-purple-500 focus:border-purple-500">
<option>Sort By</option>
<option>Newest First</option>
<option>Price: Low to High</option>
<option>Price: High to Low</option>
<option>Most Popular</option>
</select>
</div>
</div>
</div>
<!-- Listings Grid -->
<div class="grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 gap-6">
<!-- Listing Item 1 -->
<div class="item-card bg-white rounded-lg overflow-hidden shadow-sm hover:shadow-md transition duration-300">
<div class="relative">
<img src="https://images.unsplash.com/photo-1526170375885-4d8ecf77b99f?ixlib=rb-1.2.1&auto=format&fit=crop&w=500&q=60" alt="Vintage Camera" class="w-full h-48 object-cover cursor-pointer" onclick="openLightbox(this.src)">
<div class="absolute top-2 right-2 bg-purple-100 text-purple-800 text-xs font-medium px-2 py-1 rounded-full">PRO</div>
</div>
<div class="p-4">
<div class="flex justify-between items-start">
<div>
<h3 class="font-medium text-gray-900 mb-1">Vintage Polaroid Camera</h3>
<p class="text-gray-500 text-sm">New York, NY</p>
</div>
<span class="text-purple-600 font-medium">$85</span>
</div>
<div class="mt-3 flex items-center justify-between">
<div class="flex items-center text-yellow-400 text-sm">
<i class="fas fa-star"></i>
<i class="fas fa-star"></i>
<i class="fas fa-star"></i>
<i class="fas fa-star"></i>
<i class="fas fa-star-half-alt"></i>
<span class="text-gray-500 ml-1">(24)</span>
</div>
<button class="text-purple-600 hover:text-purple-800">
<i class="far fa-heart"></i>
</button>
</div>
</div>
</div>
<!-- Listing Item 2 -->
<div class="item-card bg-white rounded-lg overflow-hidden shadow-sm hover:shadow-md transition duration-300">
<div class="relative">
<img src="https://images.unsplash.com/photo-1556228453-efd6c1ff04f6?ixlib=rb-1.2.1&auto=format&fit=crop&w=500&q=60" alt="Designer Chair" class="w-full h-48 object-cover cursor-pointer" onclick="openLightbox(this.src)">
</div>
<div class="p-4">
<div class="flex justify-between items-start">
<div>
<h3 class="font-medium text-gray-900 mb-1">Mid-Century Modern Chair</h3>
<p class="text-gray-500 text-sm">Chicago, IL</p>
</div>
<span class="text-purple-600 font-medium">$120</span>
</div>
<div class="mt-3 flex items-center justify-between">
<div class="flex items-center text-yellow-400 text-sm">
<i class="fas fa-star"></i>
<i class="fas fa-star"></i>
<i class="fas fa-star"></i>
<i class="fas fa-star"></i>
<i class="far fa-star"></i>
<span class="text-gray-500 ml-1">(18)</span>
</div>
<button class="text-purple-600 hover:text-purple-800">
<i class="far fa-heart"></i>
</button>
</div>
</div>
</div>
<!-- Listing Item 3 -->
<div class="item-card bg-white rounded-lg overflow-hidden shadow-sm hover:shadow-md transition duration-300">
<div class="relative">
<img src="https://images.unsplash.com/photo-1546868871-7041f2a55e12?ixlib=rb-1.2.1&auto=format&fit=crop&w=500&q=60" alt="Smartwatch" class="w-full h-48 object-cover cursor-pointer" onclick="openLightbox(this.src)">
<div class="absolute top-2 right-2 bg-purple-100 text-purple-800 text-xs font-medium px-2 py-1 rounded-full">PRO</div>
</div>
<div class="p-4">
<div class="flex justify-between items-start">
<div>
<h3 class="font-medium text-gray-900 mb-1">Smart Watch Series 5</h3>
<p class="text-gray-500 text-sm">San Francisco, CA</p>
</div>
<span class="text-purple-600 font-medium">$150</span>
</div>
<div class="mt-3 flex items-center justify-between">
<div class="flex items-center text-yellow-400 text-sm">
<i class="fas fa-star"></i>
<i class="fas fa-star"></i>
<i class="fas fa-star"></i>
<i class="fas fa-star"></i>
<i class="fas fa-star"></i>
<span class="text-gray-500 ml-1">(32)</span>
</div>
<button class="text-purple-600 hover:text-purple-800">
<i class="far fa-heart"></i>
</button>
</div>
</div>
</div>
<!-- Listing Item 4 -->
<div class="item-card bg-white rounded-lg overflow-hidden shadow-sm hover:shadow-md transition duration-300">
<div class="relative">
<img src="https://images.unsplash.com/photo-1594035910387-fea47794261f?ixlib=rb-1.2.1&auto=format&fit=crop&w=500&q=60" alt="Leather Bag" class="w-full h-48 object-cover cursor-pointer" onclick="openLightbox(this.src)">
</div>
<div class="p-4">
<div class="flex justify-between items-start">
<div>
<h3 class="font-medium text-gray-900 mb-1">Genuine Leather Backpack</h3>
<p class="text-gray-500 text-sm">Austin, TX</p>
</div>
<span class="text-purple-600 font-medium">$75</span>
</div>
<div class="mt-3 flex items-center justify-between">
<div class="flex items-center text-yellow-400 text-sm">
<i class="fas fa-star"></i>
<i class="fas fa-star"></i>
<i class="fas fa-star"></i>
<i class="fas fa-star-half-alt"></i>
<i class="far fa-star"></i>
<span class="text-gray-500 ml-1">(12)</span>
</div>
<button class="text-purple-600 hover:text-purple-800">
<i class="far fa-heart"></i>
</button>
</div>
</div>
</div>
</div>
<div class="mt-10 text-center">
<a href="#" class="inline-flex items-center px-6 py-3 border border-transparent text-base font-medium rounded-md shadow-sm text-white gradient-bg hover:opacity-90">
View All Listings
<i class="fas fa-arrow-right ml-2"></i>
</a>
</div>
</div>
</section>
<!-- How It Works -->
<section id="how-it-works" class="py-16 bg-white">
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
<div class="text-center mb-12">
<h2 class="text-3xl font-bold text-gray-900 mb-4">How Trommel Works</h2>
<p class="text-lg text-gray-600 max-w-2xl mx-auto">Selling and buying pre-loved items has never been easier</p>
</div>
<div class="grid md:grid-cols-3 gap-8">
<div class="text-center p-6 rounded-lg bg-gray-50">
<div class="flex justify-center mb-4">
<div class="w-16 h-16 rounded-full bg-purple-100 flex items-center justify-center text-purple-600 text-2xl">
1
</div>
</div>
<h3 class="text-xl font-medium text-gray-900 mb-2">Create an Account</h3>
<p class="text-gray-600">Sign up for free in just a few minutes. Choose between Free or Pro membership.</p>
</div>
<div class="text-center p-6 rounded-lg bg-gray-50">
<div class="flex justify-center mb-4">
<div class="w-16 h-16 rounded-full bg-purple-100 flex items-center justify-center text-purple-600 text-2xl">
2
</div>
</div>
<h3 class="text-xl font-medium text-gray-900 mb-2">List Your Items</h3>
<p class="text-gray-600">Upload photos, add descriptions, set prices, and publish your listings.</p>
</div>
<div class="text-center p-6 rounded-lg bg-gray-50">
<div class="flex justify-center mb-4">
<div class="w-16 h-16 rounded-full bg-purple-100 flex items-center justify-center text-purple-600 text-2xl">
3
</div>
</div>
<h3 class="text-xl font-medium text-gray-900 mb-2">Connect & Trade</h3>
<p class="text-gray-600">Communicate with buyers, negotiate prices, and arrange safe exchanges.</p>
</div>
</div>
</div>
</section>
<!-- Pricing -->
<section id="pricing" class="py-16 bg-gray-50">
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
<div class="text-center mb-12">
<h2 class="text-3xl font-bold text-gray-900 mb-4">Simple, Transparent Pricing</h2>
<p class="text-lg text-gray-600 max-w-2xl mx-auto">Choose the plan that works best for your trading needs</p>
</div>
<div class="grid md:grid-cols-2 gap-8 max-w-4xl mx-auto">
<!-- Free Plan -->
<div class="bg-white rounded-lg shadow-sm overflow-hidden">
<div class="px-6 py-8">
<h3 class="text-2xl font-medium text-gray-900 mb-2">Free Plan</h3>
<p class="text-gray-600 mb-6">Perfect for casual sellers</p>
<div class="mb-6">
<span class="text-4xl font-bold text-gray-900">$0</span>
<span class="text-gray-500">/month</span>
</div>
<ul class="space-y-3 mb-8">
<li class="flex items-center">
<i class="fas fa-check text-green-500 mr-2"></i>
<span>List up to 10 items</span>
</li>
<li class="flex items-center">
<i class="fas fa-check text-green-500 mr-2"></i>
<span>Basic search visibility</span>
</li>
<li class="flex items-center">
<i class="fas fa-check text-green-500 mr-2"></i>
<span>Secure messaging</span>
</li>
<li class="flex items-center text-gray-400">
<i class="fas fa-times text-red-400 mr-2"></i>
<span>No priority placement</span>
</li>
<li class="flex items-center text-gray-400">
<i class="fas fa-times text-red-400 mr-2"></i>
<span>No profile highlighting</span>
</li>
</ul>
<button class="w-full px-4 py-2 border border-purple-600 text-purple-600 rounded-md font-medium hover:bg-purple-50">Get Started</button>
</div>
</div>
<!-- Pro Plan -->
<div class="bg-white rounded-lg shadow-md overflow-hidden border-2 border-purple-500 relative">
<div class="absolute top-0 right-0 bg-purple-500 text-white text-xs font-bold px-3 py-1 rounded-bl-lg">POPULAR</div>
<div class="px-6 py-8">
<h3 class="text-2xl font-medium text-gray-900 mb-2">Pro Plan</h3>
<p class="text-gray-600 mb-6">For serious sellers & collectors</p>
<div class="mb-6">
<span class="text-4xl font-bold text-gray-900">$9.99</span>
<span class="text-gray-500">/month</span>
</div>
<ul class="space-y-3 mb-8">
<li class="flex items-center">
<i class="fas fa-check text-green-500 mr-2"></i>
<span>List up to 50 items</span>
</li>
<li class="flex items-center">
<i class="fas fa-check text-green-500 mr-2"></i>
<span>Priority search visibility</span>
</li>
<li class="flex items-center">
<i class="fas fa-check text-green-500 mr-2"></i>
<span>Secure messaging</span>
</li>
<li class="flex items-center">
<i class="fas fa-check text-green-500 mr-2"></i>
<span>Highlighted listings</span>
</li>
<li class="flex items-center">
<i class="fas fa-check text-green-500 mr-2"></i>
<span>Featured profile</span>
</li>
</ul>
<button class="w-full px-4 py-2 bg-purple-600 text-white rounded-md font-medium hover:bg-purple-700">Upgrade Now</button>
</div>
</div>
</div>
</div>
</section>
<!-- Testimonials -->
<section class="py-16 bg-white">
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
<div class="text-center mb-12">
<h2 class="text-3xl font-bold text-gray-900 mb-4">What Our Members Say</h2>
<p class="text-lg text-gray-600 max-w-2xl mx-auto">Join thousands of happy users trading on Trommel</p>
</div>
<div class="grid md:grid-cols-3 gap-8">
<!-- Testimonial 1 -->
<div class="bg-gray-50 p-6 rounded-lg">
<div class="flex items-center mb-4">
<div class="flex items-center text-yellow-400 mr-2">
<i class="fas fa-star"></i>
<i class="fas fa-star"></i>
<i class="fas fa-star"></i>
<i class="fas fa-star"></i>
<i class="fas fa-star"></i>
</div>
<span class="text-gray-500 text-sm">2 weeks ago</span>
</div>
<p class="text-gray-700 mb-4">"I've sold over 20 items in just two months using Trommel. The Pro membership is totally worth it for the extra visibility!"</p>
<div class="flex items-center">
<img src="https://randomuser.me/api/portraits/women/43.jpg" alt="Sarah J." class="w-10 h-10 rounded-full mr-3">
<div>
<h4 class="font-medium text-gray-900">Sarah J.</h4>
<p class="text-gray-500 text-sm">New York, NY</p>
</div>
</div>
</div>
<!-- Testimonial 2 -->
<div class="bg-gray-50 p-6 rounded-lg">
<div class="flex items-center mb-4">
<div class="flex items-center text-yellow-400 mr-2">
<i class="fas fa-star"></i>
<i class="fas fa-star"></i>
<i class="fas fa-star"></i>
<i class="fas fa-star"></i>
<i class="fas fa-star"></i>
</div>
<span class="text-gray-500 text-sm">1 month ago</span>
</div>
<p class="text-gray-700 mb-4">"Found an amazing vintage record collection at a great price. The seller was super friendly and the whole process was smooth."</p>
<div class="flex items-center">
<img src="https://randomuser.me/api/portraits/men/32.jpg" alt="Michael T." class="w-10 h-10 rounded-full mr-3">
<div>
<h4 class="font-medium text-gray-900">Michael T.</h4>
<p class="text-gray-500 text-sm">Chicago, IL</p>
</div>
</div>
</div>
<!-- Testimonial 3 -->
<div class="bg-gray-50 p-6 rounded-lg">
<div class="flex items-center mb-4">
<div class="flex items-center text-yellow-400 mr-2">
<i class="fas fa-star"></i>
<i class="fas fa-star"></i>
<i class="fas fa-star"></i>
<i class="fas fa-star"></i>
<i class="fas fa-star-half-alt"></i>
</div>
<span class="text-gray-500 text-sm">3 weeks ago</span>
</div>
<p class="text-gray-700 mb-4">"As a college student, Trommel has been perfect for selling my textbooks and furniture when I don't need them anymore."</p>
<div class="flex items-center">
<img src="https://randomuser.me/api/portraits/women/65.jpg" alt="Jessica L." class="w-10 h-10 rounded-full mr-3">
<div>
<h4 class="font-medium text-gray-900">Jessica L.</h4>
<p class="text-gray-500 text-sm">Austin, TX</p>
</div>
</div>
</div>
</div>
</div>
</section>
<!-- CTA Section -->
<section class="gradient-bg text-white py-16">
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 text-center">
<h2 class="text-3xl font-bold mb-6">Ready to Start Trading?</h2>
<p class="text-xl opacity-90 mb-8 max-w-3xl mx-auto">Join thousands of members buying and selling pre-loved items in a safe, friendly community.</p>
<div class="flex flex-col sm:flex-row justify-center gap-4">
<a href="#" class="px-6 py-3 bg-white text-purple-700 rounded-lg font-medium hover:bg-gray-100 transition">Sign Up Free</a>
<a href="#" class="px-6 py-3 border border-white text-white rounded-lg font-medium hover:bg-white hover:bg-opacity-10 transition">Learn More</a>
</div>
</div>
</section>
<!-- Contact Form -->
<section id="contact" class="py-16 bg-white">
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
<div class="lg:grid lg:grid-cols-2 lg:gap-12">
<div class="mb-10 lg:mb-0">
<h2 class="text-3xl font-bold text-gray-900 mb-6">Get In Touch</h2>
<p class="text-gray-600 mb-6">Have questions about Trommel? Our team is here to help with any inquiries you might have about buying, selling, or using our platform.</p>
<div class="space-y-4">
<div class="flex items-start">
<div class="flex-shrink-0 mt-1">
<i class="fas fa-envelope text-purple-600"></i>
</div>
<div class="ml-3">
<h3 class="text-lg font-medium text-gray-900">Email Us</h3>
<p class="text-gray-600">support@trommel.com</p>
</div>
</div>
<div class="flex items-start">
<div class="flex-shrink-0 mt-1">
<i class="fas fa-phone-alt text-purple-600"></i>
</div>
<div class="ml-3">
<h3 class="text-lg font-medium text-gray-900">Call Us</h3>
<p class="text-gray-600">+1 (555) 123-4567</p>
</div>
</div>
<div class="flex items-start">
<div class="flex-shrink-0 mt-1">
<i class="fas fa-map-marker-alt text-purple-600"></i>
</div>
<div class="ml-3">
<h3 class="text-lg font-medium text-gray-900">Visit Us</h3>
<p class="text-gray-600">123 Market St, San Francisco, CA 94103</p>
</div>
</div>
</div>
</div>
<div>
<form class="bg-gray-50 p-6 rounded-lg">
<div class="mb-4">
<label for="name" class="block text-sm font-medium text-gray-700 mb-1">Your Name</label>
<input type="text" id="name" class="w-full px-3 py-2 border border-gray-300 rounded-md shadow-sm focus:outline-none focus:ring-purple-500 focus:border-purple-500">
</div>
<div class="mb-4">
<label for="email" class="block text-sm font-medium text-gray-700 mb-1">Email Address</label>
<input type="email" id="email" class="w-full px-3 py-2 border border-gray-300 rounded-md shadow-sm focus:outline-none focus:ring-purple-500 focus:border-purple-500">
</div>
<div class="mb-4">
<label for="subject" class="block text-sm font-medium text-gray-700 mb-1">Subject</label>
<select id="subject" class="w-full px-3 py-2 border border-gray-300 rounded-md shadow-sm focus:outline-none focus:ring-purple-500 focus:border-purple-500">
<option>General Inquiry</option>
<option>Account Support</option>
<option>Technical Issue</option>
<option>Business Inquiry</option>
<option>Other</option>
</select>
</div>
<div class="mb-4">
<label for="message" class="block text-sm font-medium text-gray-700 mb-1">Message</label>
<textarea id="message" rows="4" class="w-full px-3 py-2 border border-gray-300 rounded-md shadow-sm focus:outline-none focus:ring-purple-500 focus:border-purple-500"></textarea>
</div>
<div class="mb-4">
<div class="flex items-start">
<div class="flex items-center h-5">
<input id="newsletter" name="newsletter" type="checkbox" class="focus:ring-purple-500 h-4 w-4 text-purple-600 border-gray-300 rounded">
</div>
<div class="ml-3 text-sm">
<label for="newsletter" class="font-medium text-gray-700">Subscribe to our newsletter</label>
</div>
</div>
</div>
<div>
<button type="submit" class="w-full px-4 py-2 gradient-bg text-white rounded-md font-medium hover:opacity-90">Send Message</button>
</div>
</form>
</div>
</div>
</div>
</section>
<!-- Login Modal -->
<div id="loginModal" class="hidden fixed inset-0 bg-gray-600 bg-opacity-50 flex items-center justify-center z-50">
<div class="bg-white rounded-lg shadow-xl max-w-md w-full mx-4">
<div class="p-6">
<div class="flex justify-between items-center mb-4">
<h3 class="text-2xl font-bold text-gray-900">Login to Trommel</h3>
<button onclick="closeModal('loginModal')" class="text-gray-400 hover:text-gray-500">
<i class="fas fa-times"></i>
</button>
</div>
<form>
<div class="mb-4">
<label for="loginEmail" class="block text-sm font-medium text-gray-700 mb-1">Email Address</label>
<input type="email" id="loginEmail" class="w-full px-3 py-2 border border-gray-300 rounded-md shadow-sm focus:outline-none focus:ring-purple-500 focus:border-purple-500">
</div>
<div class="mb-4">
<label for="loginPassword" class="block text-sm font-medium text-gray-700 mb-1">Password</label>
<input type="password" id="loginPassword" class="w-full px-3 py-2 border border-gray-300 rounded-md shadow-sm focus:outline-none focus:ring-purple-500 focus:border-purple-500">
</div>
<div class="flex items-center justify-between mb-4">
<div class="flex items-center">
<input id="remember-me" name="remember-me" type="checkbox" class="h-4 w-4 text-purple-600 focus:ring-purple-500 border-gray-300 rounded">
<label for="remember-me" class="ml-2 block text-sm text-gray-700">Remember me</label>
</div>
<div class="text-sm">
<a href="#" class="font-medium text-purple-600 hover:text-purple-500">Forgot password?</a>
</div>
</div>
<button type="submit" class="w-full px-4 py-2 gradient-bg text-white rounded-md font-medium hover:opacity-90 mb-4">Sign in</button>
<div class="text-center text-sm text-gray-600">
Don't have an account? <a href="#" onclick="switchToRegister()" class="font-medium text-purple-600 hover:text-purple-500">Register now</a>
</div>
</form>
</div>
</div>
</div>
<!-- Register Modal -->
<div id="registerModal" class="hidden fixed inset-0 bg-gray-600 bg-opacity-50 flex items-center justify-center z-50">
<div class="bg-white rounded-lg shadow-xl max-w-md w-full mx-4">
<div class="p-6">
<div class="flex justify-between items-center mb-4">
<h3 class="text-2xl font-bold text-gray-900">Create an Account</h3>
<button onclick="closeModal('registerModal')" class="text-gray-400 hover:text-gray-500">
<i class="fas fa-times"></i>
</button>
</div>
<form>
<div class="grid grid-cols-1 md:grid-cols-2 gap-4 mb-4">
<div>
<label for="firstName" class="block text-sm font-medium text-gray-700 mb-1">First Name</label>
<input type="text" id="firstName" class="w-full px-3 py-2 border border-gray-300 rounded-md shadow-sm focus:outline-none focus:ring-purple-500 focus:border-purple-500">
</div>
<div>
<label for="lastName" class="block text-sm font-medium text-gray-700 mb-1">Last Name</label>
<input type="text" id="lastName" class="w-full px-3 py-2 border border-gray-300 rounded-md shadow-sm focus:outline-none focus:ring-purple-500 focus:border-purple-500">
</div>
</div>
<div class="mb-4">
<label for="registerEmail" class="block text-sm font-medium text-gray-700 mb-1">Email Address</label>
<input type="email" id="registerEmail" class="w-full px-3 py-2 border border-gray-300 rounded-md shadow-sm focus:outline-none focus:ring-purple-500 focus:border-purple-500">
</div>
<div class="mb-4">
<label for="registerPassword" class="block text-sm font-medium text-gray-700 mb-1">Password</label>
<input type="password" id="registerPassword" class="w-full px-3 py-2 border border-gray-300 rounded-md shadow-sm focus:outline-none focus:ring-purple-500 focus:border-purple-500">
<p class="mt-1 text-xs text-gray-500">Must be at least 8 characters with one number and one special character</p>
</div>
<div class="mb-4">
<label for="confirmPassword" class="block text-sm font-medium text-gray-700 mb-1">Confirm Password</label>
<input type="password" id="confirmPassword" class="w-full px-3 py-2 border border-gray-300 rounded-md shadow-sm focus:outline-none focus:ring-purple-500 focus:border-purple-500">
</div>
<div class="mb-4">
<div class="flex items-start">
<div class="flex items-center h-5">
<input id="terms" name="terms" type="checkbox" class="focus:ring-purple-500 h-4 w-4 text-purple-600 border-gray-300 rounded">
</div>
<div class="ml-3 text-sm">
<label for="terms" class="font-medium text-gray-700">I agree to the <a href="#" class="text-purple-600 hover:text-purple-500">Terms of Service</a> and <a href="#" class="text-purple-600 hover:text-purple-500">Privacy Policy</a></label>
</div>
</div>
</div>
<button type="submit" class="w-full px-4 py-2 gradient-bg text-white rounded-md font-medium hover:opacity-90 mb-4">Create Account</button>
<div class="text-center text-sm text-gray-600">
Already have an account? <a href="#" onclick="switchToLogin()" class="font-medium text-purple-600 hover:text-purple-500">Sign in</a>
</div>
</form>
</div>
</div>
</div>
<!-- Footer -->
<footer class="bg-gray-900 text-white pt-12 pb-8">
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
<div class="grid grid-cols-2 md:grid-cols-4 gap-8 mb-8">
<div>
<h3 class="text-lg font-medium mb-4">Marketplace</h3>
<ul class="space-y-2">
<li><a href="#" class="text-gray-400 hover:text-white">All Listings</a></li>
<li><a href="#" class="text-gray-400 hover:text-white">Popular Items</a></li>
<li><a href="#" class="text-gray-400 hover:text-white">New Arrivals</a></li>
<li><a href="#" class="text-gray-400 hover:text-white">Deals & Discounts</a></li>
</ul>
</div>
<div>
<h3 class="text-lg font-medium mb-4">Company</h3>
<ul class="space-y-2">
<li><a href="#" class="text-gray-400 hover:text-white">About Us</a></li>
<li><a href="#" class="text-gray-400 hover:text-white">Careers</a></li>
<li><a href="#" class="text-gray-400 hover:text-white">Blog</a></li>
<li><a href="#" class="text-gray-400 hover:text-white">Press</a></li>
</ul>
</div>
<div>
<h3 class="text-lg font-medium mb-4">Support</h3>
<ul class="space-y-2">
<li><a href="#" class="text-gray-400 hover:text-white">Help Center</a></li>
<li><a href="#" class="text-gray-400 hover:text-white">Safety Tips</a></li>
<li><a href="#" class="text-gray-400 hover:text-white">Community Guidelines</a></li>
<li><a href="#" class="text-gray-400 hover:text-white">Contact Us</a></li>
</ul>
</div>
<div>
<h3 class="text-lg font-medium mb-4">Legal</h3>
<ul class="space-y-2">
<li><a href="#" class="text-gray-400 hover:text-white">Terms of Service</a></li>
<li><a href="#" class="text-gray-400 hover:text-white">Privacy Policy</a></li>
<li><a href="#" class="text-gray-400 hover:text-white">Cookie Policy</a></li>
<li><a href="#" class="text-gray-400 hover:text-white">GDPR</a></li>
</ul>
</div>
</div>
<div class="border-t border-gray-800 pt-8">
<div class="md:flex md:items-center md:justify-between">
<div class="flex justify-center md:justify-start space-x-6 mb-6 md:mb-0">
<a href="#" class="text-gray-400 hover:text-white">
<i class="fab fa-facebook-f"></i>
</a>
<a href="#" class="text-gray-400 hover:text-white">
<i class="fab fa-twitter"></i>
</a>
<a href="#" class="text-gray-400 hover:text-white">
<i class="fab fa-instagram"></i>
</a>
<a href="#" class="text-gray-400 hover:text-white">
<i class="fab fa-pinterest"></i>
</a>
</div>
<div class="text-center md:text-right">
<p class="text-gray-400 text-sm">&copy; 2023 Trommel. All rights reserved.</p>
</div>
</div>
</div>
</div>
</footer>
<script>
// Mobile menu toggle
function toggleMobileMenu() {
const menu = document.getElementById('mobileMenu');
menu.classList.toggle('active');
}
// Lightbox functionality
function openLightbox(src) {
const lightbox = document.getElementById('lightbox');
const lightboxImg = document.getElementById('lightbox-img');
lightboxImg.src = src;
lightbox.style.display = 'flex';
document.body.style.overflow = 'hidden';
}
function closeLightbox() {
const lightbox = document.getElementById('lightbox');
lightbox.style.display = 'none';
document.body.style.overflow = 'auto';
}
// Modal functionality
function openModal(modalId) {
document.getElementById(modalId).classList.remove('hidden');
document.body.style.overflow = 'hidden';
}
function closeModal(modalId) {
document.getElementById(modalId).classList.add('hidden');
document.body.style.overflow = 'auto';
}
function switchToRegister() {
closeModal('loginModal');
openModal('registerModal');
}
function switchToLogin() {
closeModal('registerModal');
openModal('loginModal');
}
// Show alert notification
function showAlert() {
const alert = document.getElementById('alert');
alert.classList.remove('hidden');
setTimeout(() => {
alert.classList.add('hidden');
}, 3000);
}
// Event listeners for login/register buttons
document.getElementById('loginBtn').addEventListener('click', function(e) {
e.preventDefault();
openModal('loginModal');
});
document.getElementById('registerBtn').addEventListener('click', function(e) {
e.preventDefault();
openModal('registerModal');
});
document.getElementById('loginBtnMobile').addEventListener('click', function(e) {
e.preventDefault();
toggleMobileMenu();
openModal('loginModal');
});
document.getElementById('registerBtnMobile').addEventListener('click', function(e) {
e.preventDefault();
toggleMobileMenu();
openModal('registerModal');
});
// Mock form submission
document.querySelectorAll('form').forEach(form => {
form.addEventListener('submit', function(e) {
e.preventDefault();
showAlert();
if (this.parentElement.id === 'loginModal' || this.parentElement.parentElement.id === 'loginModal') {
closeModal('loginModal');
} else if (this.parentElement.id === 'registerModal' || this.parentElement.parentElement.id === 'registerModal') {
closeModal('registerModal');
}
});
});
// Close lightbox when clicking outside the image
document.getElementById('lightbox').addEventListener('click', function(e) {
if (e.target === this) {
closeLightbox();
}
});
</script>
<p style="border-radius: 8px; text-align: center; font-size: 12px; color: #fff; margin-top: 16px;position: fixed; left: 8px; bottom: 8px; z-index: 10; background: rgba(0, 0, 0, 0.8); padding: 4px 8px;">Made with <img src="https://enzostvs-deepsite.hf.space/logo.svg" alt="DeepSite Logo" style="width: 16px; height: 16px; vertical-align: middle;display:inline-block;margin-right:3px;filter:brightness(0) invert(1);"><a href="https://enzostvs-deepsite.hf.space" style="color: #fff;text-decoration: underline;" target="_blank" >DeepSite</a> - 🧬 <a href="https://enzostvs-deepsite.hf.space?remix=Batfly/gameforge" style="color: #fff;text-decoration: underline;" target="_blank" >Remix</a></p></body>
</html>