ci_cd_prophet / README.md
muddasser's picture
Update README with app metadata
65e88af unverified
---
title: Travel Prophet Forecaster
emoji: ✈️
colorFrom: blue
colorTo: green
sdk: streamlit
sdk_version: "1.32.0"
python_version: "3.10"
app_file: app.py
pinned: false
---
# ✈️ Travel Demand Forecaster — Prophet + Streamlit
A time series forecasting app for travel demand using Facebook Prophet, deployed via CI/CD to Hugging Face Spaces.
---
## 🚀 CI/CD Pipeline
```
Push code to GitHub
GitHub Actions triggers
🧪 Run all tests (CI)
✅ Tests pass?
🤗 Auto deploy to Hugging Face (CD)
🌐 App is live!
```
---
## 🛠️ Setup Instructions
### Step 1 — Fork or clone this repo
```bash
git clone https://github.com/YOUR_USERNAME/travel-prophet.git
cd travel-prophet
```
### Step 2 — Create Hugging Face Space
1. Go to https://huggingface.co/spaces
2. Click **Create new Space**
3. Choose **Streamlit** as SDK
4. Name it e.g. `travel-prophet-forecaster`
### Step 3 — Add HF Token to GitHub Secrets
1. Go to https://huggingface.co/settings/tokens
2. Create a new token with **write** access
3. Go to your GitHub repo → **Settings****Secrets and variables****Actions**
4. Click **New repository secret**
5. Name: `HF_TOKEN`, Value: (paste your token)
### Step 4 — Update deploy.yml
In `.github/workflows/deploy.yml`, replace:
```
YOUR_HF_USERNAME → your Hugging Face username
YOUR_SPACE_NAME → your Space name
```
### Step 5 — Push to GitHub
```bash
git add .
git commit -m "Initial commit"
git push origin main
```
### Step 6 — Watch it deploy! 🎉
Go to your GitHub repo → **Actions** tab to watch the pipeline run.
---
## 📁 Project Structure
```
travel-prophet/
├── app.py # Main Streamlit app
├── requirements.txt # Dependencies
├── tests/
│ └── test_app.py # All tests (CI runs these)
├── .github/
│ └── workflows/
│ └── deploy.yml # CI/CD pipeline definition
└── README.md
```
---
## 🧪 Run Tests Locally
```bash
pip install -r requirements.txt
pip install pytest
pytest tests/ -v
```
---
## 📊 Features
- Upload your own CSV travel data
- Sample data included for demo
- Adjustable forecast period (30–365 days)
- Yearly and weekly seasonality
- Confidence intervals
- Downloadable forecast CSV
- Interactive Plotly charts
---
## 🔄 How CI/CD Works
# Travel Prophet Forecaster
| Event | What Happens |
|-------|-------------|
| Push to `main` | Tests run → if pass → deploy to HF |
| Pull Request | Tests run only → no deployment |
| Tests fail | Pipeline stops → no deployment |
| Tests pass | Auto deploys to Hugging Face Spaces |