# AfgCars - Modern Automotive Marketplace

AfgCars is a robust, visually stunning automotive marketplace platform designed for the Afghan car market. It features a modern "glassmorphism" design, a powerful admin panel, and seamless car listing management for both individual sellers and administrators.

## 🚀 Quick Start (How to Run)

### 1. Database Setup
The application requires a MySQL/MariaDB database.

**Option A: Import SQL File (Recommended)**
1. Create a database named `app_38703` (or the name specified in `db/config.php`).
2. Import the `database.sql` file located in the `db/` directory:
   ```bash
   mysql -u your_username -p app_38703 < db/database.sql
   ```

**Option B: Run Setup Script**
Alternatively, you can run the PHP setup script which creates the tables automatically:
```bash
php db/setup.php
```

### 2. Configuration
Ensure your database credentials in `db/config.php` are correct:
```php
define('DB_HOST', '127.0.0.1');
define('DB_NAME', 'app_38703');
define('DB_USER', 'your_user');
define('DB_PASS', 'your_password');
```

### 3. Launch
Open your web browser and navigate to the project root (e.g., `http://localhost/`).

---

## 🚀 Key Features
- **Modern UI/UX**: Clean, youthful, and inviting design with glassmorphism effects.
- **Admin Dashboard**: Full control over users, car listings, and customer messages.
- **User Dashboard**: Personal area for users to manage their own car listings.
- **Car Marketplace**: Advanced search and filtering for cars across various cities in Afghanistan.
- **Responsive Design**: Fully functional on mobile, tablet, and desktop devices.
- **Secure Authentication**: Robust registration and login system with role-based access control.

## 🛠️ Technology Stack
- **Backend**: PHP 8.x
- **Database**: MariaDB/MySQL
- **Frontend**: HTML5, CSS3 (Custom Glassmorphism Styles), JavaScript (Vanilla)
- **Email**: Integrated PHPMailer service

## 👤 Default Admin Account
Use these credentials to access the administrative panel:
- **Email**: `admin@gmail.com`
- **Password**: `12345678`
- **Role**: `admin`

## 📊 Entity Relationship Diagram (ERD)

```mermaid
erDiagram
    USERS ||--o{ CARS : "posts"
    USERS ||--o{ REVIEWS : "writes"
    USERS ||--o{ PURCHASES : "makes"
    CARS ||--o{ CAR_IMAGES : "has"
    CARS ||--o{ REVIEWS : "receives"
    CARS ||--o{ PURCHASES : "is_part_of"

    USERS {
        int id PK
        string name
        string email UK
        string password
        enum role "guest, user, admin"
        enum status "active, inactive"
        timestamp created_at
    }

    CARS {
        int id PK
        int user_id FK
        string brand
        string model
        int year
        decimal price
        string city
        text description
        enum status "pending, approved, rejected, sold"
        boolean is_hot_deal
        timestamp created_at
    }

    CAR_IMAGES {
        int id PK
        int car_id FK
        string image_path
        boolean is_main
    }

    REVIEWS {
        int id PK
        int car_id FK
        int user_id FK
        int rating
        text comment
        enum status "pending, approved"
        timestamp created_at
    }

    PURCHASES {
        int id PK
        int car_id FK
        int user_id FK
        string buyer_name
        string buyer_email
        string buyer_phone
        enum status "pending, completed, cancelled"
        timestamp created_at
    }

    CONTACT_MESSAGES {
        int id PK
        string name
        string email
        string subject
        text message
        enum status "unread, read, answered"
        timestamp created_at
    }
```

## 📁 Project Structure
- `index.php`: Landing page and marketplace hero.
- `cars.php`: Searchable list of all vehicles.
- `car_detail.php`: Detailed view of a single car with photo gallery.
- `admin_dashboard.php`: Entry point for administrative management.
- `dashboard.php`: User-specific panel for listing management.
- `db/`: Database configuration, setup scripts, and `database.sql` export.
- `assets/`: CSS, JS, and image assets.
- `includes/`: Reusable header and footer components.
- `mail/`: Built-in email service components.

## 📝 License
This project is built for educational and demonstration purposes.