{"id":30284930,"url":"https://github.com/byteb8/ml-ete","last_synced_at":"2026-05-17T11:32:37.780Z","repository":{"id":209847246,"uuid":"725075554","full_name":"byteB8/ML-ETE","owner":"byteB8","description":"A generic practice to build and deploy an end to end python web app on AWS, Azure w/o docker image.","archived":false,"fork":false,"pushed_at":"2024-04-03T04:12:03.000Z","size":441,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-08-16T19:38:42.249Z","etag":null,"topics":["aws","azure-webapp","end-to-end","machine-learning","python-webapp"],"latest_commit_sha":null,"homepage":"https://mathscoreprediction.azurewebsites.net/","language":"Python","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/byteB8.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}},"created_at":"2023-11-29T11:42:23.000Z","updated_at":"2024-04-03T04:12:07.000Z","dependencies_parsed_at":"2024-01-06T08:24:34.357Z","dependency_job_id":"8b9692c8-949a-453c-9032-d3dcd67df60c","html_url":"https://github.com/byteB8/ML-ETE","commit_stats":null,"previous_names":["kumaarbalbir/ml-ete","byteb8/ml-ete"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/byteB8/ML-ETE","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/byteB8%2FML-ETE","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/byteB8%2FML-ETE/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/byteB8%2FML-ETE/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/byteB8%2FML-ETE/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/byteB8","download_url":"https://codeload.github.com/byteB8/ML-ETE/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/byteB8%2FML-ETE/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33136721,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-17T09:28:26.183Z","status":"ssl_error","status_checked_at":"2026-05-17T09:27:52.702Z","response_time":107,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6: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":["aws","azure-webapp","end-to-end","machine-learning","python-webapp"],"created_at":"2025-08-16T19:38:37.170Z","updated_at":"2026-05-17T11:32:37.765Z","avatar_url":"https://github.com/byteB8.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Overview \nThis repository contains code for an end-to-end machine learning web application developed in Python. The application is about prediction of math score of a student based on certain attributes like Gender, Race/Ethnicity, Writing score, Reading score, etc. The application does not focus on the quality of model and dataset rather a good focus on making a generic template for end to end application.\n\n- **Github Actions**: Platform and set of tools provided by Github, that allows you to automate various tasks such as CI/CD pipelines, in response to events that occur in your repository.\n- **Github Workflow**: A GitHub Workflow is an automated procedure defined using GitHub Actions. It consists of one or more jobs, each containing a series of steps. Workflows are written in `YAML` and describe how GitHub Actions will be used to perform a specific task or series of tasks in response to a specific event.\n- **Github Runner**: It is execution environment where github workflows run. When you create a workflow using GitHub Actions, these workflows require a runtime environment to execute the defined steps and tasks. The GitHub-provided infrastructure might not cover all scenarios or might not be available in all regions. This is where GitHub Runners come into play.\n- **Continuos Integration (CI)**: This involves tasks such as building your code, running tests, and performing static code analysis whenever new code is pushed to the repository.\n- **Continuous Deployment (CD)**: This part involves deploying your application to your hosting platform (Azure, AWS, etc.) after the CI checks have passed. This might include steps like building a Docker image, pushing it to a container registry, and deploying it to your hosting service.\n- **CI/CD pipeline**: Setting up a CI/CD pipeline using GitHub Actions involves creating a workflow file (typically named `main.yml` or similar) in your repository's `.github/workflows` directory. This workflow file defines the sequence of steps that GitHub Actions will execute when triggered by an event, such as a new commit being pushed to the repository.\n\n## Got confused among github actions, github workflows and github runner?\nHere is how they are connected:\n- When a specific event (such as a push, pull request, etc.) occurs in your GitHub repository, GitHub Actions looks for the workflows defined in `.github/workflows`.\n- Once triggered, GitHub Actions selects an available runner (either a GitHub-hosted runner or a self-hosted runner) to execute the workflow.\n- The runner then downloads the necessary code and executes the jobs and steps defined in the workflow.\n- Within each job, the runner runs the actions specified in the workflow file, executing the tasks required for the CI/CD pipeline or other automation tasks.\n- As actions within the workflow are completed, the runner reports the status and results back to GitHub.\n# Features \n- Machine Learning algorithms: `Random Forest`, `Decision tree`, `Gradient Boosting`, `Linear Regression`, `XGBRegressor`, `CatBoosting Regressor`,`AdaBoost Regressor`\n- Deployment Platforms:\n    - **Azure**\n        - Container Registry\n        - Azure web app\n    - **AWS**\n      - Elastic Container Registry\n      - Elastic Cloud Compute (EC2)\n- Customization:\n    - To check data congestion: `python src/components/data_ingestion.py`\n    - To check data transformation: `src/components/data_transformation.py`\n    - To check model trainer: `src/components/model_trainer.py`\n    - To check utils functions: `src/utils.py`\n    - To check custom exception: `src/exception.py`\n    - To check logging: `src/logger.py`\n    - To check pipeline: `src/pipeline/` (Best practise is to define ingestion, transformation, training, prediction all in `pipeline` directory).\n    - To check setup file: `./setup.py`\n    - To check main file: `./app.py`\n    - To check dockerfile: `./Dockerfile`\n    - To check aws workflow: `./.github/workflows/main.yml`\n    - To check azure workflow: `./.github/workflows/main_mathscoreprediction.yml`\n\n# How to reproduce code and environment locally?\n1. Clone the repository:\n   ```bash\n   git clone https://github.com/kumaarbalbir/ML-ETE.git\n   cd ML-ETE\n2. Create and activate conda virtual environment:\n   ```bash\n   conda create --name venv python=3.8\n   conda activate venv\n3. Install dependencies:\n   ```bash\n   pip install -r requirements.txt\n4. Run the application:\n   ```bash\n   python app.py\n### Additional Notes: \n- Ensure you have Python 3.8 installed.\n- Modify the virtual environment name (`venv`) according to your preferences.\n\n# Dockerizing the Application\n1. Install the docker on your system and Open `Docker Desktop`.\n2. Run the following command from your terminal or command prompt:\n   ```bash\n   $ docker images\n   NOTE: If it produces output something like, congrats, you are good to go :\n   REPOSITORY      TAG       IMAGE ID       CREATED      SIZE\n   mathscore-app   latest    1f07bbe6c0e8   2 days ago   3.01GB\n\n3. Build the docker image:\n   ```bash\n   docker build -t \u003cyour-image-name\u003e\n4. Run the docker container:\n   ```bash\n   $ docker run -p 5000:5000 \u003cyour-image-name\u003e\n   Adjust the port mapping (-p host_port:container_port) if you want your application (app.py) to run on different port.\n5. Access the application:\n   Once the container is running, access the application in your browser or through an HTTP request at `http://localhost:5000` (or the specified port).\n6. Do inference:\n   Move to `http://localhost:5000/predictdata` to check if your model predicts for the given data.\n7. Stop the container:\n   ```bash\n   docker stop \u003cyour-image-name\u003e\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbyteb8%2Fml-ete","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbyteb8%2Fml-ete","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbyteb8%2Fml-ete/lists"}