{"id":31203176,"url":"https://github.com/passadis/ml-car-estimator","last_synced_at":"2026-05-13T23:31:34.069Z","repository":{"id":315132198,"uuid":"1058244325","full_name":"passadis/ml-car-estimator","owner":"passadis","description":"Machine Learning powered WebApp that estimates used car pricing","archived":false,"fork":false,"pushed_at":"2026-04-16T01:01:54.000Z","size":18448,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-04-16T03:04:04.789Z","etag":null,"topics":["automl","azure","azuremlstudio","webapp"],"latest_commit_sha":null,"homepage":"https://www.cloudblogger.eu/post/powerful-ml-demo","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/passadis.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-09-16T20:28:37.000Z","updated_at":"2026-04-16T01:01:53.000Z","dependencies_parsed_at":"2025-09-16T23:19:47.667Z","dependency_job_id":"f365af56-57ca-462b-82cb-78f353782a8b","html_url":"https://github.com/passadis/ml-car-estimator","commit_stats":null,"previous_names":["passadis/ml-car-estimator"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/passadis/ml-car-estimator","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/passadis%2Fml-car-estimator","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/passadis%2Fml-car-estimator/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/passadis%2Fml-car-estimator/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/passadis%2Fml-car-estimator/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/passadis","download_url":"https://codeload.github.com/passadis/ml-car-estimator/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/passadis%2Fml-car-estimator/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33004122,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-13T13:14:54.681Z","status":"ssl_error","status_checked_at":"2026-05-13T13:14:51.610Z","response_time":115,"last_error":"SSL_read: 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":["automl","azure","azuremlstudio","webapp"],"created_at":"2025-09-20T15:01:43.213Z","updated_at":"2026-05-13T23:31:34.058Z","avatar_url":"https://github.com/passadis.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://skillicons.dev\"\u003e\n    \u003cimg src=\"https://skillicons.dev/icons?i=azure,nextjs,typescript,react,npm,cosmos\" /\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n\u003ch1 align=\"center\"\u003eAI-Powered Car Price Estimation with Azure AutoML\u003c/h1\u003e\n\n## Introduction\n\nThis project showcases a modern car valuation system that leverages Azure AutoML, Next.js, and Azure Cosmos DB to create an intelligent car price estimation platform. The application allows users to upload car images, input vehicle details, and receive AI-powered price estimates while maintaining a comprehensive gallery of saved valuations with planned AI-generated summaries for each vehicle.\n\n## Technologies Used\n\n- **Frontend**: Next.js 15 with React 19 and TypeScript\n- **Styling**: Tailwind CSS for modern responsive design\n- **Backend**: Next.js API routes with Azure integrations\n- **Machine Learning**: Azure AutoML for price prediction models\n- **Database**: Azure Cosmos DB for storing car valuations\n- **Storage**: Azure Blob Storage for car images\n- **AI Features**: Azure Machine Learning endpoints for price estimation\n- **Planned Enhancement**: AI-generated car summaries and market insights\n\n## Features\n\n- **Car Image Upload**: Secure image upload to Azure Blob Storage\n- **Price Estimation**: Real-time car price prediction using Azure AutoML\n- **Comprehensive Input**: Support for multiple car attributes (brand, model, year, mileage, engine specs, fuel type, transmission)\n- **Valuation Gallery**: Browse and view all previously estimated cars\n- **Modern UI**: Responsive design with modal dialogs and loading states\n- **Data Persistence**: All estimates saved to Azure Cosmos DB\n- **Planned**: AI-generated summaries for each car's market position and insights\n\n## Architecture\n\nThe system consists of three main components:\n\n1. **Next.js Frontend**\n   - Modern React-based UI with TypeScript\n   - Real-time form validation and file upload\n   - Interactive gallery for viewing saved estimates\n   - Modal system for enhanced user experience\n\n2. **Azure AutoML Integration**\n   - Machine learning model deployment on Azure\n   - RESTful API endpoints for price prediction\n   - Real-time inference with model versioning\n   - Comprehensive logging and error handling\n\n3. **Azure Cloud Storage**\n   - **Cosmos DB**: NoSQL database for car valuation records\n   - **Blob Storage**: Secure image storage with public access\n   - **ML Endpoints**: Hosted AutoML models for predictions\n\n## Project Structure\n\n```\ncar-pricer/\n├── src/\n│   └── app/\n│       ├── page.tsx              # Main estimation form\n│       ├── cars/\n│       │   └── page.tsx          # Gallery of saved estimates\n│       ├── api/\n│       │   ├── estimate/\n│       │   │   └── route.ts      # ML prediction \u0026 data saving\n│       │   └── cars/\n│       │       └── route.ts      # Fetch saved estimates\n│       └── components/\n│           └── Modal.tsx         # Reusable modal component\n├── package.json\n└── README.md\n```\n\n## Setup and Deployment\n\n### Prerequisites\n- Azure subscription with the following services:\n  - Azure Machine Learning workspace\n  - Azure Cosmos DB account\n  - Azure Blob Storage account\n- Node.js 18+ and npm/yarn\n- Car dataset for training AutoML models\n\n### Azure Services Configuration\n\n#### 1. Azure AutoML Model\n- Train a regression model using your car dataset\n- Deploy the model to a real-time endpoint\n- Note the endpoint URL and API key\n\n#### 2. Azure Cosmos DB\n- Create a database and container\n- Configure appropriate partition key and indexing\n\n#### 3. Azure Blob Storage\n- Create a container for car images\n- Configure public read access for image URLs\n\n### Environment Variables\n\nCreate a `.env.local` file in the car-pricer directory:\n\n```env\n# Azure Machine Learning\nAI_ENDPOINT_URL=https://your-ml-endpoint.azureml.net/score\nAZURE_ML_API_KEY=your_ml_api_key\n\n# Azure Cosmos DB\nAZURE_COSMOS_CONNECTION_STRING=your_cosmos_connection_string\nAZURE_COSMOS_DATABASE_NAME=your_database_name\nAZURE_COSMOS_CONTAINER_NAME=your_container_name\n\n# Azure Blob Storage\nAZURE_STORAGE_CONNECTION_STRING=your_storage_connection_string\nAZURE_STORAGE_BLOB_CONTAINER_NAME=your_blob_container_name\n```\n\n### Installation and Running\n\n1. **Install Dependencies**\n   ```bash\n   cd car-pricer\n   npm install\n   ```\n\n2. **Run Development Server**\n   ```bash\n   npm run dev\n   ```\n\n3. **Build for Production**\n   ```bash\n   npm run build\n   npm start\n   ```\n\n## API Endpoints\n\n### POST `/api/estimate`\nProcesses car estimation requests with image upload and vehicle details.\n\n**Request**: FormData with:\n- `file-upload`: Car image file\n- `brand`, `model`, `year`, `mileage`: Basic car info\n- `enpower`, `envolume`, `fuel_type`, `transmission`: Engine specs\n\n**Response**: \n```json\n{\n  \"message\": \"Estimation successful!\",\n  \"data\": {\n    \"id\": \"uuid\",\n    \"brand\": \"Toyota\",\n    \"model\": \"Camry\",\n    \"estimatedPrice\": 25000,\n    \"imageUrl\": \"https://...\",\n    \"createdAt\": \"2024-01-01T00:00:00Z\"\n  }\n}\n```\n\n### GET `/api/cars`\nRetrieves all saved car valuations from Cosmos DB.\n\n**Response**:\n```json\n{\n  \"items\": [\n    {\n      \"id\": \"uuid\",\n      \"brand\": \"Toyota\",\n      \"model\": \"Camry\",\n      \"year\": 2020,\n      \"mileage\": 50000,\n      \"estimatedPrice\": 25000,\n      \"imageUrl\": \"https://...\",\n      \"createdAt\": \"2024-01-01T00:00:00Z\"\n    }\n  ]\n}\n```\n\n## Data Flow\n\n1. **User Input**: User uploads car image and fills out vehicle details\n2. **Image Processing**: Image uploaded to Azure Blob Storage\n3. **ML Prediction**: Vehicle data sent to Azure AutoML endpoint\n4. **Data Storage**: Results saved to Cosmos DB with image URL\n5. **Gallery Display**: Users can browse all saved estimates\n6. **Future Enhancement**: AI summaries generated for each car\n\n## Planned Features\n\n- **AI Car Summaries**: Generate market insights and vehicle analysis using Azure OpenAI\n- **Advanced Filters**: Filter gallery by price range, brand, year, etc.\n- **Price History**: Track price trends for similar vehicles\n- **Export Functionality**: Download estimates as PDF reports\n- **Comparison Tool**: Side-by-side car comparisons\n\n## Performance Considerations\n\n- **Caching**: Implement Redis for frequently accessed data\n- **Image Optimization**: Compress images before upload\n- **ML Optimization**: Batch predictions for multiple cars\n- **Database Indexing**: Optimize Cosmos DB queries with proper indexing\n\n## Contributing\n\nContributions are welcome! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.\n\n### Development Guidelines\n1. Follow TypeScript best practices\n2. Maintain consistent code formatting with Prettier\n3. Add proper error handling for all Azure service calls\n4. Update documentation for new features\n\n## License\n\nThis project is licensed under the MIT License - see the LICENSE file for details.\n\n## Acknowledgments\n\n- Thanks to the Azure AutoML team for the powerful machine learning platform\n- Azure Cosmos DB team for the scalable NoSQL database solution\n- Next.js team for the excellent React framework\n- Azure Blob Storage for reliable image hosting\n\n## Support\n\nFor issues and questions:\n1. Check existing GitHub issues\n2. Create a new issue with detailed information\n3. Include relevant logs and error messages\n\n---\n\n\n\u003cimg width=\"1233\" height=\"936\" alt=\"azaml\" src=\"https://github.com/user-attachments/assets/67df0497-cd44-44b8-a3eb-f9bb5055fb8a\" /\u003e\n\n\n**Built with ❤️ using Azure Cloud Services and Next.js**\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpassadis%2Fml-car-estimator","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpassadis%2Fml-car-estimator","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpassadis%2Fml-car-estimator/lists"}