Initial
This commit is contained in:
@@ -0,0 +1,171 @@
|
||||
# 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.
|
||||
Reference in New Issue
Block a user