--- title: Tech Stack Advisor emoji: ๐Ÿง  colorFrom: indigo colorTo: pink sdk: docker app_file: app.py pinned: false license: apache-2.0 duplicable: true --- # ๐Ÿง  Tech Stack Advisor โ€“ ML App (with Docker & Hugging Face Deployment) **Tech Stack Advisor** is a hands-on machine learning project designed to teach you how to build, containerize, and deploy an ML-powered web application using Docker and Hugging Face Spaces. > ๐ŸŽฏ This project is part of the **"Artificial Intelligence and Machine Learning (AI/ML) with Docker"** course from **School of DevOps**. --- ## ๐Ÿš€ What You'll Learn - Build and train a simple ML model using `scikit-learn` - Create a UI using `Gradio` - Containerize your app using a Dockerfile - Push your Docker image to Docker Hub - Deploy the Dockerized app on Hugging Face Spaces (free tier) --- ## ๐Ÿ“ Project Structure ``` tech-stack-advisor/ โ”œโ”€โ”€ app.py # Gradio web app โ”œโ”€โ”€ train.py # Script to train and save ML model โ”œโ”€โ”€ requirements.txt # Python dependencies โ”œโ”€โ”€ Dockerfile # Docker build file (added during the lab) โ”œโ”€โ”€ model.pkl # Trained ML model (generated after training) โ”œโ”€โ”€ encoders.pkl # Encoders for categorical inputs (generated after training) โ”œโ”€โ”€ LICENSE # Apache 2.0 license โ””โ”€โ”€ README.md # This guide ```` --- ## ๐Ÿง  Step 1: Setup and Train Your ML Model 1. **Clone the repository** ```bash git clone https://github.com//tech-stack-advisor.git cd tech-stack-advisor ```` 2. **Install dependencies** (Optional: Use a virtual environment) ```bash pip install -r requirements.txt ``` 3. **Train the model** ```bash python train.py ``` This creates: * `model.pkl`: the trained ML model * `encoders.pkl`: label encoders for input/output features --- ## ๐Ÿ–ฅ๏ธ Step 2: Run the App Locally (Without Docker) ```bash python app.py ``` Visit the app in your browser at: ``` http://localhost:7860 ``` --- ## ๐Ÿณ Step 3: Add Docker Support Create a file named `Dockerfile` in the root of the project: ```dockerfile FROM python:3.11-slim WORKDIR /app COPY requirements.txt . RUN pip install --no-cache-dir -r requirements.txt COPY . . EXPOSE 7860 CMD ["python", "app.py"] ``` --- ## ๐Ÿ”ง Step 4: Build and Run the Docker Container 1. **Build the image** ```bash docker build -t tech-stack-advisor . ``` 2. **Run the container** ```bash docker run -p 7860:7860 tech-stack-advisor ``` Visit: `http://localhost:7860` --- ## โ˜๏ธ Step 5: Publish to Docker Hub 1. **Login to Docker Hub** ```bash docker login ``` 2. **Tag the image** ```bash docker tag tech-stack-advisor /tech-stack-advisor:latest ``` 3. **Push it** ```bash docker push /tech-stack-advisor:latest ``` --- ## ๐ŸŒ Step 6: Deploy to Hugging Face Spaces 1. Go to [huggingface.co/spaces](https://huggingface.co/spaces) 2. Click **Create New Space** 3. Select: * **SDK**: Docker * **Repository**: Link to your GitHub repo with the Dockerfile 4. Hugging Face will auto-build and deploy your container. --- ## ๐Ÿงช Test Your Skills * Can you swap the model in `train.py` for a `LogisticRegression` model? * Can you add logging to show which inputs were passed? * Try changing the Gradio layout or theme! --- ## ๐Ÿงพ License This project is licensed under the **Apache License 2.0**. See the [LICENSE](./LICENSE) file for details. --- ## ๐Ÿ™Œ Credits Created by \[Gourav Shah](https://www.linkedin.com/in/gouravshah) as part of the **AI/ML with Docker** course at **School of DevOps**. --- > ๐Ÿ›  Happy shipping, DevOps and MLOps builders!