Zoho Catalyst Deployment Guide — GridMind AI
HackSphere 3.0 at BITS Hyderabad
Project: GridMind AI — Smart Energy Microgrid & Demand Forecasting Engine
Tagline: "Predict Demand. Balance Power. Prevent Overloads."
1. Project Directory Structure for Zoho Catalyst
├── catalyst.json # Catalyst project definition (Slate client + AppSail)
├── catalyst/
│ ├── backend/
│ │ ├── main.py # FastAPI AppSail backend entry point
│ │ ├── requirements.txt # Python dependencies for AppSail
│ │ └── predict.py # QuickML inference adapter
│ └── README.md # Deployment instructions (this file)
├── dist/ # Compiled React client assets for Catalyst Slate
├── predict.py # Root evaluation script for test_eval.py contract
├── test_eval.py # Official evaluation runner
├── train_telemetry.csv # QuickML training dataset (weather features + ground truth target)
├── sample_test_input.csv # 24h+ test telemetry inputs
├── package.json
└── server.ts # Full-stack Node/Express dev & testing server
2. Zoho Catalyst QuickML Training & Endpoint Publishing
To connect the forecasting pipeline to your custom-trained machine learning model:
Sign in to Zoho Catalyst Console: Navigate to https://catalyst.zoho.com and create or select your project (
HackSphere-GridMind).Open QuickML:
- In the left sidebar, click AI Services > QuickML.
- Click Create Pipeline > Select Tabular Regression.
Upload Training Data:
- Upload the included
train_telemetry.csv. - Set
target_demand_kwas the Target Column. - Set
timestampas datetime/time-series feature or extract hour. - Set
ambient_temp_c,humidity_pct, andsolar_irradiance_wm2as numerical features.
- Upload the included
Train & Evaluate:
- QuickML automatically tests models (Random Forest Regressor, Gradient Boosting, XGBoost, Linear Regression).
- Review RMSE and $R^2$ metrics on the validation split.
Publish Model & Copy REST API Endpoint:
- Click Deploy / Publish Pipeline.
- Copy the published Inference Endpoint URL (e.g.
https://quickml.zoho.com/api/v1/projects/.../predict). - Copy the Authorization Token (or Catalyst Project Auth Header).
3. Environment Variables Configuration
Create a .env file in the project root or configure via Catalyst AppSail Console:
# Published Zoho Catalyst QuickML Endpoint URL
QUICKML_ENDPOINT_URL="https://quickml.zoho.com/api/v1/projects/YOUR_PROJECT_ID/predict"
# Optional Auth Token for Catalyst Service
QUICKML_AUTH_TOKEN="YOUR_CATALYST_AUTH_TOKEN"
# Strict mode: set to true to enforce QuickML API only (fail on error rather than baseline fallback)
STRICT_MODE="false"
# Application URL
APP_URL="https://gridmind-app.catalystserverless.com"
4. Frontend Build Instructions (Catalyst Slate)
# 1. Install dependencies
npm install
# 2. Build production assets into /dist
npm run build
The output directory dist/ contains the static SPA bundle configured in catalyst.json:
{
"client": {
"source": "dist"
}
}
5. Catalyst Deployment Instructions (CLI)
# 1. Install Catalyst CLI globally if not already installed
npm install -g zcatalyst-cli
# 2. Login to Zoho Catalyst
catalyst login
# 3. Associate with your project
catalyst init
# 4. Deploy all services (Slate client + AppSail backend)
catalyst deploy
Once deployment finishes, Catalyst prints the live public web application URL:
Client URL: https://<project-domain>.catalystserverless.com/app/index.html
6. Official Pre-Submission Checklist
Before final submission to the HackSphere 3.0 portal:
[x] predict.py root execution:
python predict.py --input sample_test_input.csv --output predictions.csvVerified: exactly 1000 prediction rows produced matching input timestamps.
[x] test_eval.py self-test check:
python test_eval.pyVerified: returns
SUCCESS.[x] Switching Controller Logic:
- Rule A: predicted load > 160 kW -> Renewable Storage Mode
- Rule B: timestamp hour 18:00–22:00 inclusive -> Renewable Storage Mode
- Rule C: otherwise -> Main Grid Mode
- Rule D: predicted load >= 200 kW -> Critical Overload Alert
- Verified via 9 unit tests in
tests/test_switching_controller.py.
[x] Battery State of Charge:
- Physically clamped between 0.0% and 100.0%.
- Verified with boundary test cases.
[x] Security:
- No API keys or auth tokens hardcoded in client source files.
- QuickML credentials passed via server-side proxy / environment variables.
7. Troubleshooting
| Issue | Resolution |
|---|---|
| QuickML API returns HTTP 401 / 403 | Verify that QUICKML_AUTH_TOKEN is set with valid Bearer or CATALYST-AUTH headers. |
| Missing predictions in CSV | Ensure input CSV contains non-empty timestamps and weather features matching schema. |
| Slate UI route not loading API | Ensure Slate proxies /api/* to the AppSail service URL. |