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/Gerome-Elassaad/software-evaluator.git cd software-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_KEYin your .env file - OpenAI: Set
OPENAI_API_KEYin 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