{"id":28255888,"url":"https://github.com/gerome-elassaad/software-evaluator","last_synced_at":"2026-01-25T12:03:23.924Z","repository":{"id":294042054,"uuid":"985811432","full_name":"Gerome-Elassaad/software-evaluator","owner":"Gerome-Elassaad","description":"Software evaluation tool designed to help software developers and founders make informed decisions when evaluating tools, services, and frameworks","archived":false,"fork":false,"pushed_at":"2025-10-03T13:25:11.000Z","size":141,"stargazers_count":3,"open_issues_count":0,"forks_count":2,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-10-03T15:28:08.108Z","etag":null,"topics":["ai-testing-tool","evaluator","software-evaluation","software-testing","test-automation"],"latest_commit_sha":null,"homepage":"","language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Gerome-Elassaad.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-05-18T15:21:49.000Z","updated_at":"2025-10-03T13:25:08.000Z","dependencies_parsed_at":"2025-05-18T16:59:23.876Z","dependency_job_id":null,"html_url":"https://github.com/Gerome-Elassaad/software-evaluator","commit_stats":null,"previous_names":["gerome-elassaad/software-evaluator"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Gerome-Elassaad/software-evaluator","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Gerome-Elassaad%2Fsoftware-evaluator","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Gerome-Elassaad%2Fsoftware-evaluator/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Gerome-Elassaad%2Fsoftware-evaluator/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Gerome-Elassaad%2Fsoftware-evaluator/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Gerome-Elassaad","download_url":"https://codeload.github.com/Gerome-Elassaad/software-evaluator/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Gerome-Elassaad%2Fsoftware-evaluator/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28752671,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-25T10:25:12.305Z","status":"ssl_error","status_checked_at":"2026-01-25T10:25:11.933Z","response_time":113,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai-testing-tool","evaluator","software-evaluation","software-testing","test-automation"],"created_at":"2025-05-19T22:14:57.118Z","updated_at":"2026-01-25T12:03:23.918Z","avatar_url":"https://github.com/Gerome-Elassaad.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Product Evaluator\r\n\r\n\u003cdiv align=\"center\"\u003e\r\n  \u003cimg src=\"https://via.placeholder.com/200x200?text=Product+Evaluator\" alt=\"Product Evaluator Logo\" width=\"200\"\u003e\r\n  \u003ch3\u003eAI-powered tool for evaluating software products and services\u003c/h3\u003e\r\n\u003c/div\u003e\r\n\r\n\u003cp align=\"center\"\u003e\r\n  \u003ca href=\"#features\"\u003eFeatures\u003c/a\u003e •\r\n  \u003ca href=\"#installation\"\u003eInstallation\u003c/a\u003e •\r\n  \u003ca href=\"#usage\"\u003eUsage\u003c/a\u003e •\r\n  \u003ca href=\"#ai-integration\"\u003eAI Integration\u003c/a\u003e •\r\n  \u003ca href=\"#architecture\"\u003eArchitecture\u003c/a\u003e •\r\n  \u003ca href=\"#api-reference\"\u003eAPI Reference\u003c/a\u003e •\r\n  \u003ca href=\"#contributing\"\u003eContributing\u003c/a\u003e •\r\n  \u003ca href=\"#license\"\u003eLicense\u003c/a\u003e\r\n\u003c/p\u003e\r\n\r\nProduct 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.\r\n\r\n## Features\r\n\r\n### User Management\r\n- 🔐 Secure user authentication and authorization\r\n- 👤 User profiles with activity tracking\r\n- 👑 Admin capabilities for user management\r\n\r\n### Product Management\r\n- 📊 Add and organize products by categories and vendors\r\n- 🔍 Advanced search and filtering capabilities\r\n- 🌐 Extract product information from websites automatically\r\n\r\n### Evaluation System\r\n- ⭐ Evaluate products using predefined or custom criteria\r\n- 📝 Add detailed notes and justifications for each criterion\r\n- 📈 Calculate weighted scores for comprehensive assessment\r\n\r\n### AI-Powered Features\r\n- 🤖 AI-assisted information gathering from product URLs\r\n- 🧠 AI-powered initial assessment against criteria\r\n- 📄 AI-generated evaluation summaries and recommendations\r\n\r\n### Interface\r\n- 💻 Responsive web interface for desktop and mobile\r\n- 📱 Intuitive user experience with modern design\r\n- 🔄 Real-time updates and notifications\r\n\r\n## Installation\r\n\r\n### Prerequisites\r\n- Python 3.9+\r\n- pip\r\n- Optional: Docker and Docker Compose\r\n\r\n### Standard Installation\r\n```bash\r\n# Clone the repository\r\ngit clone https://github.com/Gerome-Elassaad/software-evaluator.git\r\ncd software-evaluator\r\n\r\n# Create a virtual environment\r\npython -m venv venv\r\nsource venv/bin/activate  # On Windows: venv\\Scripts\\activate\r\n\r\n# Install dependencies\r\npip install -r requirements.txt\r\n\r\n# Set up environment\r\ncp .env.local .env\r\n# Edit .env with your API keys and settings\r\n\r\n# Initialize database and create admin user\r\npython scripts/setup.py --username admin --password your-secure-password --demo-data\r\n\r\n# Run the application\r\nuvicorn product_evaluator.main:app --reload\r\n```\r\n\r\n### Docker Installation\r\n```bash\r\n# Clone the repository\r\ngit clone https://github.com/yourusername/product-evaluator.git\r\ncd product-evaluator\r\n\r\n# Configure environment\r\ncp .env.local .env\r\n# Edit .env with your API keys and settings\r\n\r\n# Build and start containers\r\ndocker-compose up -d\r\n\r\n# Initialize database and create admin user\r\ndocker-compose exec app python scripts/setup.py --username admin --password your-secure-password --demo-data\r\n```\r\n\r\n## Usage\r\n\r\n### Web Interface\r\n1. Access the web application at http://localhost:8000\r\n2. Login with your credentials or the admin account\r\n3. Start adding products and creating evaluations\r\n\r\n### Creating Evaluations\r\n1. Navigate to the Products section and add a product\r\n2. Use the \"Extract from URL\" feature to automatically gather information\r\n3. Go to Evaluations and create a new evaluation for the product\r\n4. Enable AI assistance for initial assessment\r\n5. Review and adjust scores as needed\r\n6. Generate AI summary of your evaluation\r\n7. Publish or keep as draft\r\n\r\n### API Usage\r\nThe application provides a comprehensive REST API for integration with other tools:\r\n\r\n```python\r\nimport requests\r\n\r\n# Get access token\r\nresponse = requests.post(\r\n    \"http://localhost:8000/api/auth/token\",\r\n    data={\"username\": \"your_username\", \"password\": \"your_password\"}\r\n)\r\ntoken = response.json()[\"access_token\"]\r\n\r\n# Use token for authenticated requests\r\nheaders = {\"Authorization\": f\"Bearer {token}\"}\r\n\r\n# Create a product\r\nproduct_data = {\r\n    \"name\": \"Example Product\",\r\n    \"website_url\": \"https://example.com\",\r\n    \"extract_content\": True\r\n}\r\nresponse = requests.post(\r\n    \"http://localhost:8000/api/products\",\r\n    json=product_data,\r\n    headers=headers\r\n)\r\nproduct_id = response.json()[\"id\"]\r\n\r\n# Create an evaluation\r\nevaluation_data = {\r\n    \"title\": \"Example Evaluation\",\r\n    \"product_id\": product_id,\r\n    \"use_ai_analysis\": True\r\n}\r\nrequests.post(\r\n    \"http://localhost:8000/api/evaluations\",\r\n    json=evaluation_data,\r\n    headers=headers\r\n)\r\n```\r\n\r\n## AI Integration\r\n\r\nProduct Evaluator leverages AI for several key features:\r\n\r\n### Web Content Extraction\r\n- Automatically extracts relevant information from product websites\r\n- Cleans and organizes the extracted content for analysis\r\n- Identifies key product details like features, pricing, and technical specifications\r\n\r\n### Criteria Analysis\r\n- Analyzes product information against predefined evaluation criteria\r\n- Provides suggested scores based on the extracted content\r\n- Generates detailed assessments with strengths and weaknesses\r\n\r\n### Summary Generation\r\n- Creates comprehensive evaluation summaries\r\n- Highlights key findings across all criteria\r\n- Provides actionable recommendations based on the evaluation\r\n\r\n### AI Configuration\r\nThe application can be configured to use different AI providers:\r\n\r\n- **Google AI**: Set `GOOGLE_API_KEY` in your .env file\r\n- **OpenAI**: Set `OPENAI_API_KEY` in your .env file\r\n\r\n## Architecture\r\n\r\nProduct Evaluator follows a clean, modular architecture:\r\n\r\n```\r\nproduct_evaluator/\r\n├── api/                # API endpoints\r\n│   ├── middleware/     # Request middleware\r\n│   └── routes/         # API route definitions\r\n├── data/               # Data storage and knowledge base\r\n│   ├── embeddings/     # Vector embeddings storage\r\n│   └── knowledge_base/ # Structured knowledge for AI\r\n├── models/             # Database models\r\n│   ├── evaluation/     # Evaluation related models\r\n│   ├── product/        # Product related models\r\n│   └── user/           # User related models\r\n├── services/           # Business logic services\r\n│   ├── ai/             # AI-related services\r\n│   ├── auth/           # Authentication services\r\n│   └── extraction/     # Web content extraction\r\n├── static/             # Static files (CSS, JS)\r\n├── ui/                 # User interface\r\n│   └── templates/      # HTML templates\r\n├── tests/              # Test suite\r\n└── utils/              # Utility functions\r\n```\r\n\r\n### Technologies Used\r\n- **Backend**: Python with FastAPI\r\n- **Database**: SQLAlchemy ORM (SQLite for development, PostgreSQL for production)\r\n- **AI/NLP**: Google Generative AI, OpenAI (optional)\r\n- **Frontend**: HTML, CSS (TailwindCSS), JavaScript\r\n- **Authentication**: JWT-based token authentication\r\n- **Containerization**: Docker and Docker Compose\r\n\r\n## API Reference\r\n\r\n### Authentication Endpoints\r\n- `POST /api/auth/register` - Register a new user\r\n- `POST /api/auth/token` - Get JWT access token\r\n\r\n### Product Endpoints\r\n- `GET /api/products` - List all products\r\n- `POST /api/products` - Create a new product\r\n- `GET /api/products/{id}` - Get product details\r\n- `PUT /api/products/{id}` - Update a product\r\n- `DELETE /api/products/{id}` - Delete a product\r\n- `POST /api/products/extract-content` - Extract content from URL\r\n\r\n### Evaluation Endpoints\r\n- `GET /api/evaluations` - List all evaluations\r\n- `POST /api/evaluations` - Create a new evaluation\r\n- `GET /api/evaluations/{id}` - Get evaluation details\r\n- `PUT /api/evaluations/{id}` - Update an evaluation\r\n- `DELETE /api/evaluations/{id}` - Delete an evaluation\r\n- `POST /api/evaluations/{id}/publish` - Publish an evaluation\r\n- `POST /api/evaluations/{id}/unpublish` - Unpublish an evaluation\r\n\r\n### AI Endpoints\r\n- `POST /api/ai/analyze` - Analyze product against criteria\r\n- `POST /api/ai/summarize` - Generate evaluation summary\r\n\r\n### Criteria Endpoints\r\n- `GET /api/criteria` - List all criteria\r\n- `GET /api/criteria/{id}` - Get criterion details\r\n- `GET /api/criteria/categories` - List criterion categories\r\n\r\nFor complete API documentation, visit http://localhost:8000/docs when the application is running.\r\n\r\n## Contributing\r\n\r\nContributions are welcome! Please feel free to submit a Pull Request.\r\n\r\n1. Fork the repository\r\n2. Create your feature branch (`git checkout -b feature/amazing-feature`)\r\n3. Commit your changes (`git commit -m 'Add some amazing feature'`)\r\n4. Push to the branch (`git push origin feature/amazing-feature`)\r\n5. Open a Pull Request\r\n\r\n### Development Setup\r\n\r\n```bash\r\n# Install development dependencies\r\npip install -r requirements-dev.txt\r\n\r\n# Run tests\r\npytest\r\n\r\n# Run linters\r\nflake8\r\nblack .\r\nisort .\r\n```\r\n\r\n## License\r\n\r\nThis project is licensed under the MIT License - see the LICENSE file for details.\r\n\r\n## Acknowledgements\r\n\r\n- [FastAPI](https://fastapi.tiangolo.com/) - Web framework\r\n- [SQLAlchemy](https://www.sqlalchemy.org/) - ORM\r\n- [Google Generative AI](https://ai.google.dev/) - AI capabilities\r\n- [TailwindCSS](https://tailwindcss.com/) - CSS framework\r\n- [Font Awesome](https://fontawesome.com/) - Icons\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgerome-elassaad%2Fsoftware-evaluator","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgerome-elassaad%2Fsoftware-evaluator","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgerome-elassaad%2Fsoftware-evaluator/lists"}