Features β’ Installation β’ Usage β’ AI Integration β’ Architecture β’ API Reference β’ Contributing β’ License
Product Evaluator is a comprehensive tool designed to help software developers and founders make informed decisions when evaluating tools, services, and frameworks. It leverages AI to streamline the evaluation process and provide deeper insights.
- π Secure user authentication and authorization
- π€ User profiles with activity tracking
- π Admin capabilities for user management
- π Add and organize products by categories and vendors
- π Advanced search and filtering capabilities
- π Extract product information from websites automatically
- β Evaluate products using predefined or custom criteria
- π Add detailed notes and justifications for each criterion
- π Calculate weighted scores for comprehensive assessment
- π€ AI-assisted information gathering from product URLs
- π§ AI-powered initial assessment against criteria
- π AI-generated evaluation summaries and recommendations
- π» Responsive web interface for desktop and mobile
- π± Intuitive user experience with modern design
- π Real-time updates and notifications
- Python 3.9+
- pip
- Optional: Docker and Docker Compose
# Clone the repository
git clone https://github.com/yourusername/product-evaluator.git
cd product-evaluator
# Create a virtual environment
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
# Install dependencies
pip install -r requirements.txt
# Set up environment
cp .env.local .env
# Edit .env with your API keys and settings
# Initialize database and create admin user
python scripts/setup.py --username admin --password your-secure-password --demo-data
# Run the application
uvicorn product_evaluator.main:app --reload
# Clone the repository
git clone https://github.com/yourusername/product-evaluator.git
cd product-evaluator
# Configure environment
cp .env.local .env
# Edit .env with your API keys and settings
# Build and start containers
docker-compose up -d
# Initialize database and create admin user
docker-compose exec app python scripts/setup.py --username admin --password your-secure-password --demo-data
- Access the web application at http://localhost:8000
- Login with your credentials or the admin account
- Start adding products and creating evaluations
- Navigate to the Products section and add a product
- Use the "Extract from URL" feature to automatically gather information
- Go to Evaluations and create a new evaluation for the product
- Enable AI assistance for initial assessment
- Review and adjust scores as needed
- Generate AI summary of your evaluation
- Publish or keep as draft
The application provides a comprehensive REST API for integration with other tools:
import requests
# Get access token
response = requests.post(
"http://localhost:8000/api/auth/token",
data={"username": "your_username", "password": "your_password"}
)
token = response.json()["access_token"]
# Use token for authenticated requests
headers = {"Authorization": f"Bearer {token}"}
# Create a product
product_data = {
"name": "Example Product",
"website_url": "https://example.com",
"extract_content": True
}
response = requests.post(
"http://localhost:8000/api/products",
json=product_data,
headers=headers
)
product_id = response.json()["id"]
# Create an evaluation
evaluation_data = {
"title": "Example Evaluation",
"product_id": product_id,
"use_ai_analysis": True
}
requests.post(
"http://localhost:8000/api/evaluations",
json=evaluation_data,
headers=headers
)
Product Evaluator leverages AI for several key features:
- Automatically extracts relevant information from product websites
- Cleans and organizes the extracted content for analysis
- Identifies key product details like features, pricing, and technical specifications
- Analyzes product information against predefined evaluation criteria
- Provides suggested scores based on the extracted content
- Generates detailed assessments with strengths and weaknesses
- Creates comprehensive evaluation summaries
- Highlights key findings across all criteria
- Provides actionable recommendations based on the evaluation
The application can be configured to use different AI providers:
- Google AI: Set
GOOGLE_API_KEY
in your .env file - OpenAI: Set
OPENAI_API_KEY
in your .env file
Product Evaluator follows a clean, modular architecture:
product_evaluator/
βββ api/ # API endpoints
β βββ middleware/ # Request middleware
β βββ routes/ # API route definitions
βββ data/ # Data storage and knowledge base
β βββ embeddings/ # Vector embeddings storage
β βββ knowledge_base/ # Structured knowledge for AI
βββ models/ # Database models
β βββ evaluation/ # Evaluation related models
β βββ product/ # Product related models
β βββ user/ # User related models
βββ services/ # Business logic services
β βββ ai/ # AI-related services
β βββ auth/ # Authentication services
β βββ extraction/ # Web content extraction
βββ static/ # Static files (CSS, JS)
βββ ui/ # User interface
β βββ templates/ # HTML templates
βββ tests/ # Test suite
βββ utils/ # Utility functions
- Backend: Python with FastAPI
- Database: SQLAlchemy ORM (SQLite for development, PostgreSQL for production)
- AI/NLP: Google Generative AI, OpenAI (optional)
- Frontend: HTML, CSS (TailwindCSS), JavaScript
- Authentication: JWT-based token authentication
- Containerization: Docker and Docker Compose
POST /api/auth/register
- Register a new userPOST /api/auth/token
- Get JWT access token
GET /api/products
- List all productsPOST /api/products
- Create a new productGET /api/products/{id}
- Get product detailsPUT /api/products/{id}
- Update a productDELETE /api/products/{id}
- Delete a productPOST /api/products/extract-content
- Extract content from URL
GET /api/evaluations
- List all evaluationsPOST /api/evaluations
- Create a new evaluationGET /api/evaluations/{id}
- Get evaluation detailsPUT /api/evaluations/{id}
- Update an evaluationDELETE /api/evaluations/{id}
- Delete an evaluationPOST /api/evaluations/{id}/publish
- Publish an evaluationPOST /api/evaluations/{id}/unpublish
- Unpublish an evaluation
POST /api/ai/analyze
- Analyze product against criteriaPOST /api/ai/summarize
- Generate evaluation summary
GET /api/criteria
- List all criteriaGET /api/criteria/{id}
- Get criterion detailsGET /api/criteria/categories
- List criterion categories
For complete API documentation, visit http://localhost:8000/docs when the application is running.
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add some amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
# Install development dependencies
pip install -r requirements-dev.txt
# Run tests
pytest
# Run linters
flake8
black .
isort .
This project is licensed under the MIT License - see the LICENSE file for details.
- FastAPI - Web framework
- SQLAlchemy - ORM
- Google Generative AI - AI capabilities
- TailwindCSS - CSS framework
- Font Awesome - Icons