{"id":15141768,"url":"https://github.com/md-emon-hasan/ml-project-iris-classifier-using-docker-and-github-action-with-deployment","last_synced_at":"2026-03-07T07:34:15.877Z","repository":{"id":255081763,"uuid":"848482898","full_name":"Md-Emon-Hasan/ML-Project-Iris-Classifier-using-Docker-and-GitHub-Action-with-Deployment","owner":"Md-Emon-Hasan","description":"🌸 End-to-end deployment with Docker and automatic deployment via GitHub Actions using Flask, Docker, and GitHub Actions for CI/CD. ","archived":false,"fork":false,"pushed_at":"2024-08-28T11:19:27.000Z","size":6513,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-05T17:44:22.299Z","etag":null,"topics":["ci-cd","cicd","data-science","docker","docker-image","github-action","render"],"latest_commit_sha":null,"homepage":"https://iris-classifier-using-docker-and-github.onrender.com","language":"CSS","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/Md-Emon-Hasan.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","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}},"created_at":"2024-08-27T20:59:41.000Z","updated_at":"2024-08-28T11:52:54.000Z","dependencies_parsed_at":"2024-09-21T14:02:39.359Z","dependency_job_id":"d53b4390-2820-48ee-acc0-ad5eed5ef76e","html_url":"https://github.com/Md-Emon-Hasan/ML-Project-Iris-Classifier-using-Docker-and-GitHub-Action-with-Deployment","commit_stats":null,"previous_names":["md-emon-hasan/iris-classifier-using-docker-and-github-action-with-deployment"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Md-Emon-Hasan/ML-Project-Iris-Classifier-using-Docker-and-GitHub-Action-with-Deployment","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Md-Emon-Hasan%2FML-Project-Iris-Classifier-using-Docker-and-GitHub-Action-with-Deployment","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Md-Emon-Hasan%2FML-Project-Iris-Classifier-using-Docker-and-GitHub-Action-with-Deployment/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Md-Emon-Hasan%2FML-Project-Iris-Classifier-using-Docker-and-GitHub-Action-with-Deployment/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Md-Emon-Hasan%2FML-Project-Iris-Classifier-using-Docker-and-GitHub-Action-with-Deployment/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Md-Emon-Hasan","download_url":"https://codeload.github.com/Md-Emon-Hasan/ML-Project-Iris-Classifier-using-Docker-and-GitHub-Action-with-Deployment/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Md-Emon-Hasan%2FML-Project-Iris-Classifier-using-Docker-and-GitHub-Action-with-Deployment/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":271495556,"owners_count":24769613,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-21T02:00:08.990Z","response_time":74,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["ci-cd","cicd","data-science","docker","docker-image","github-action","render"],"created_at":"2024-09-26T09:01:50.811Z","updated_at":"2026-03-07T07:34:10.850Z","avatar_url":"https://github.com/Md-Emon-Hasan.png","language":"CSS","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🌸 Iris Flower Classification System\n\nWelcome to the **Iris Flower Classification System** repository! This project leverages machine learning to classify Iris flowers into different species based on their features. It incorporates Docker for containerization, GitHub Actions for CI/CD, and deployment on Render for live hosting.\n\n![355822492-aa068ef3-dfd8-4406-a39a-7646c3aba7af](https://github.com/user-attachments/assets/c44208f7-044a-4164-995e-1e853e885941)\n\n## 📋 Contents\n\n- [Introduction](#introduction)\n- [Topics Covered](#topics-covered)\n- [Getting Started](#getting-started)\n- [Live Demo](#live-demo)\n- [Docker and CI/CD](#docker-and-ci-cd)\n- [Deploy on Render](#deploy-on-render)\n- [Best Practices](#best-practices)\n- [FAQ](#faq)\n- [Troubleshooting](#troubleshooting)\n- [Contributing](#contributing)\n- [Additional Resources](#additional-resources)\n- [Challenges Faced](#challenges-faced)\n- [Lessons Learned](#lessons-learned)\n- [Why I Created This Repository](#why-i-created-this-repository)\n- [License](#license)\n- [Contact](#contact)\n\n---\n\n## 📖 Introduction\n\nThis repository showcases a machine learning project aimed at classifying Iris flowers into different species. The project leverages Docker for containerization, GitHub Actions for CI/CD, and is deployed on Render for live demonstration.\n\n---\n\n## 🔍 Topics Covered\n\n- **Machine Learning Models:** Training models to classify Iris flower species.\n- **Data Preprocessing:** Techniques for cleaning and preparing the Iris dataset.\n- **Model Evaluation:** Assessing the performance of the classification model.\n- **Deployment:** Implementing the model as a web service using Flask.\n- **Docker:** Containerizing the application for consistent deployment across environments.\n- **CI/CD:** Automating tests and deployments with GitHub Actions.\n- **Render:** Deploying the application on Render for live access.\n\n---\n\n## 🚀 Getting Started\n\nTo get started with this project, follow these steps:\n\n1. **Clone the repository:**\n\n   ```bash\n   git clone https://github.com/Md-Emon-Hasan/Iris-Classifier-using-Flask-with-Docker-GitHub-Action.git\n   ```\n\n2. **Navigate to the project directory:**\n\n   ```bash\n   cd Iris-Classifier-using-Flask-with-Docker-GitHub-Action\n   ```\n\n3. **Create a virtual environment and activate it:**\n\n   ```bash\n   python -m venv venv\n   source venv/bin/activate  # On Windows use `venv\\Scripts\\activate`\n   ```\n\n4. **Install the dependencies:**\n\n   ```bash\n   pip install -r requirements.txt\n   ```\n\n5. **Run the application:**\n\n   ```bash\n   python app.py\n   ```\n\n6. **Open your browser and visit:**\n\n   ```\n   http://127.0.0.1:5000/\n   ```\n\n---\n\n## 🎉 Live Demo\n\nCheck out the live version of the Iris Flower Classification app [here](https://iris-classifier-using-docker-and-github.onrender.com).\n\n---\n\n## 🐳 Docker and CI/CD\n\n### Docker\n\nThis project is containerized using Docker to ensure that the environment is consistent across different systems.\n\n1. **Build the Docker image:**\n\n   ```bash\n   docker build -t iris-classifier .\n   ```\n\n2. **Run the Docker container:**\n\n   ```bash\n   docker run -p 5000:5000 iris-classifier\n   ```\n\n3. **Visit the application:**\n\n   ```\n   http://127.0.0.1:5000/\n   ```\n\n### CI/CD with GitHub Actions\n\nThis project uses GitHub Actions for continuous integration and deployment. Each commit triggers the following workflow:\n\n- **Linting and Testing:** Automatically runs linting and tests to ensure code quality.\n- **Build and Deploy:** Builds the Docker image and deploys the application to a cloud platform (e.g., Render, Heroku).\n\nYou can find the CI/CD workflow file in `.github/workflows/ci-cd.yml`.\n\n---\n\n## 🌐 Deploy on Render\n\nTo deploy this application on Render, follow these steps:\n\n1. **Sign up for Render:** Visit [Render](https://render.com) and sign up for an account.\n\n2. **Create a new Web Service:** \n   - Select \"New Web Service\" from your Render dashboard.\n   - Connect your GitHub repository.\n   - Select your desired branch (e.g., `main`) and set up the build and runtime settings.\n\n3. **Deploy:** Render will automatically build and deploy your application. Once the deployment is successful, your application will be live.\n\n4. **Access your live app:** Your application will be accessible via a Render-generated URL.\n\n---\n\n## 🌟 Best Practices\n\nRecommendations for maintaining and improving this project:\n\n- **Model Updating:** Continuously retrain the model with new data to improve accuracy.\n- **Container Security:** Ensure the Docker container is secure and free from vulnerabilities.\n- **Error Handling:** Implement comprehensive error handling in both the app and the CI/CD pipeline.\n- **Documentation:** Keep the documentation up-to-date with the latest changes and improvements.\n\n---\n\n## ❓ FAQ\n\n**Q: What is the purpose of this project?**\nA: This project classifies Iris flowers into different species based on their features, demonstrating the use of machine learning, Docker, and CI/CD practices.\n\n**Q: How can I contribute to this repository?**\nA: Refer to the [Contributing](#contributing) section for details on how to contribute.\n\n**Q: Can I deploy this app on cloud platforms?**\nA: Yes, you can deploy the Dockerized app on platforms such as Heroku, Render, or AWS.\n\n---\n\n## 🛠️ Troubleshooting\n\nCommon issues and solutions:\n\n- **Issue: Docker Container Not Running**\n  *Solution:* Ensure that Docker is properly installed and the image was built successfully.\n\n- **Issue: CI/CD Pipeline Failing**\n  *Solution:* Check the GitHub Actions logs for errors and ensure all tests pass locally before committing.\n\n- **Issue: Model Accuracy Low**\n  *Solution:* Verify that the training data is preprocessed correctly and consider tuning the hyperparameters of the model.\n\n---\n\n## 🤝 Contributing\n\nContributions are welcome! Here's how you can contribute:\n\n1. **Fork the repository.**\n2. **Create a new branch:**\n\n   ```bash\n   git checkout -b feature/new-feature\n   ```\n\n3. **Make your changes:**\n\n   - Add features, fix bugs, or improve documentation.\n\n4. **Commit your changes:**\n\n   ```bash\n   git commit -am 'Add a new feature or update'\n   ```\n\n5. **Push to the branch:**\n\n   ```bash\n   git push origin feature/new-feature\n   ```\n\n6. **Submit a pull request.**\n\n---\n\n## 📚 Additional Resources\n\nExplore these resources for more insights into Docker, CI/CD, and machine learning:\n\n- **Docker Official Documentation:** [docs.docker.com](https://docs.docker.com/)\n- **GitHub Actions Documentation:** [docs.github.com](https://docs.github.com/en/actions)\n- **Render Documentation:** [render.com/docs](https://render.com/docs)\n- **Machine Learning Tutorials:** [Kaggle](https://www.kaggle.com/learn/overview)\n\n---\n\n## 💪 Challenges Faced\n\nSome challenges during development:\n\n- Setting up Docker for seamless deployment across environments.\n- Configuring the CI/CD pipeline to automate the testing and deployment process.\n- Ensuring the model performs well with a limited dataset.\n\n---\n\n## 📚 Lessons Learned\n\nKey takeaways from this project:\n\n- Hands-on experience with Docker for containerizing machine learning applications.\n- Setting up CI/CD pipelines for automated testing and deployment.\n- Importance of continuous model improvement and deployment best practices.\n\n---\n\n## 🌟 Why I Created This Repository\n\nThis repository was created to demonstrate the end-to-end process of developing, containerizing, and deploying a machine learning model for classifying Iris flowers, with a focus on using Docker and CI/CD best practices.\n\n---\n\n## 📝 License\n\nThis repository is licensed under the [MIT License](https://opensource.org/licenses/MIT). See the [LICENSE](LICENSE) file for more details.\n\n---\n\n## 📬 Contact\n\n- **Email:** [iconicemon01@gmail.com](mailto:iconicemon01@gmail.com)\n- **WhatsApp:** [+8801834363533](https://wa.me/8801834363533)\n- **GitHub:** [Md-Emon-Hasan](https://github.com/Md-Emon-Hasan)\n- **LinkedIn:** [Md Emon Hasan](https://www.linkedin.com/in/md-emon-hasan)\n- **Facebook:** [Md Emon Hasan](https://www.facebook.com/mdemon.hasan2001/)\n\n---\n\nFeel free to adjust and expand this template based on the specifics of your project and requirements.\n\n---\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmd-emon-hasan%2Fml-project-iris-classifier-using-docker-and-github-action-with-deployment","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmd-emon-hasan%2Fml-project-iris-classifier-using-docker-and-github-action-with-deployment","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmd-emon-hasan%2Fml-project-iris-classifier-using-docker-and-github-action-with-deployment/lists"}