# Product Finder Quiz - Flask Web Application

A Python Flask web application for product selection through an interactive quiz interface.

## Features

- Interactive quiz with button-based and form-based questions
- Dynamic conditional logic based on user responses
- Product recommendations with images
- Responsive design
- Memory storage for user answers

## Installation

### Prerequisites

- Python 3.8 or higher
- pip (Python package installer)

### Setup

1. **Install dependencies:**
   ```bash
   pip install -r requirements.txt
   ```

2. **Create environment file (optional):**
   ```bash
   copy .env.example .env
   ```
   Edit `.env` with your configuration.

3. **Run the application:**
   ```bash
   python app.py
   ```

4. **Access the application:**
   Open your browser and navigate to:
   - Main page: `http://localhost:8080/`
   - Quiz page: `http://localhost:8080/quiz`

## Project Structure

```
project/
├── app.py              # Main Flask application
├── config.py           # Configuration settings
├── wsgi.py            # WSGI entry point for production
├── requirements.txt    # Python dependencies
├── templates/         # HTML templates
│   └── index2.html    # Quiz page
├── css/               # Stylesheets
│   └── styles.css     # Main stylesheet
├── js/                # JavaScript files
│   └── script.js      # Quiz logic and data
└── images/            # Product images (optional)
```

## Deployment

### Using Gunicorn (Production)

1. **Install Gunicorn:**
   ```bash
   pip install gunicorn
   ```

2. **Run with Gunicorn:**
   ```bash
   gunicorn -w 4 -b 0.0.0.0:8080 wsgi:app
   ```

### Deployment on Web Panels

#### cPanel/Plesk
1. Upload all files to your hosting directory
2. Install Python dependencies via terminal or SSH
3. Configure the web server to use Python WSGI
4. Set the application entry point to `wsgi:app`

#### PythonAnywhere
1. Upload files or clone from repository
2. Create a new web app (Flask)
3. Set WSGI file path to `wsgi.py`
4. Install requirements in virtual environment
5. Reload the web app

#### Heroku
1. Create `Procfile`:
   ```
   web: gunicorn wsgi:app
   ```
2. Deploy using Git:
   ```bash
   git init
   git add .
   git commit -m "Initial commit"
   heroku create
   git push heroku main
   ```

#### Docker
1. Create `Dockerfile`:
   ```dockerfile
   FROM python:3.11-slim
   WORKDIR /app
   COPY requirements.txt .
   RUN pip install -r requirements.txt
   COPY . .
   CMD ["gunicorn", "-w", "4", "-b", "0.0.0.0:8080", "wsgi:app"]
   ```
2. Build and run:
   ```bash
   docker build -t product-finder .
   docker run -p 8080:8080 product-finder
   ```

## Configuration

Edit `config.py` to modify application settings:
- `DEBUG`: Enable/disable debug mode
- `SECRET_KEY`: Set a secure secret key for production
- Add database URLs, API keys, etc.

## API Endpoints

- `GET /` - Main landing page
- `GET /quiz` - Product finder quiz
- `POST /api/save-selection` - Save user selections (for future use)
- `GET /api/get-products` - Get product data (for future use)

## Customization

### Adding New Products
Edit `js/script.js` and add new product entries to the `questionData` object.

### Styling
Modify `css/styles.css` to change colors, layouts, and appearance.

### Questions and Logic
Update the quiz flow in `js/script.js` by modifying the question structure and conditional logic.

## Development

Run in development mode with auto-reload:
```bash
python app.py
```

The application will be available at `http://localhost:8080`

## Production Checklist

- [ ] Set `DEBUG = False` in config
- [ ] Use a strong `SECRET_KEY`
- [ ] Configure proper database (if needed)
- [ ] Set up SSL/HTTPS
- [ ] Configure proper logging
- [ ] Set up error monitoring
- [ ] Enable CORS if needed
- [ ] Configure environment variables
- [ ] Test all routes and functionality

## License

Proprietary - All rights reserved

## Support

For issues and questions, contact your development team.
