GrowEngine is a comprehensive advertising automation platform evolved to include a Hybrid Recommendation System. It combines a robust ad campaign management dashboard with an experimental, high-performance recommendation engine integrated from SparrowRecSys.
- ๐ Real-time Dashboard: Monitor Spend, GMV, ROI, and core metrics instantly.
- ๐ Campaign Management: Full lifecycle management for ad plans (Create, Edit, Pause/Resume).
- ๐ค Smart Diagnosis: AI-driven optimization suggestions for ad performance.
- ๐ฎ Bidding Simulation: Simulate bidding strategies based on OnlineLp algorithms.
Integrated directly with SparrowRecSys, offering a "Hybrid Mode" architecture:
- Python Backend: Handles Data Management, Feature Engineering, and Click Collection.
- Model Inference: Supports Java RecSysServer or TensorFlow Serving for NeuralCF, DeepFM, and DIN models.
- Interactive UI: Dedicated React frontend for visualizing recommendations and tracking user interactions.
GrowEngine now operates on a modular architecture:
graph TD
User["User/Visitor"]
subgraph "Ad Management"
AdminUI["Admin Dashboard"]
CoreAPI["Core API (8000)"]
end
subgraph "Recommendation Engine"
RecUI["RecSys UI"]
RecAPI["RecSys API (8001)"]
JavaServ["Java RecSysServer (6010)"]
end
User --> AdminUI
User --> RecUI
AdminUI --> CoreAPI
RecUI --> RecAPI
RecAPI --> JavaServ
RecAPI -- "Click Logs" --> Data[("CSV/Clicks")]
Data -- "Training" --> Train[Model Pipeline]
Train --> JavaServ
ProtoAd/
โโโ frontend/ # Admin Dashboard (React + Vite + TailwindCSS)
โโโ backend/ # Core Ad Management API (FastAPI)
โโโ ad_rec_frontend/ # Recommendation System Showcase UI (React)
โโโ ad_rec_backend/ # RecSys API, Click Collection & Data Mgr
โโโ SparrowRecSys/ # Original Java Recommendation Engine Source
โโโ web_visualization/ # Helper visualizations
โโโ scripts/ # DevOps and utility scripts
โโโ docker-compose.yml # Full stack orchestration- Node.js 18+
- Python 3.10+
- Docker (Optional, for full stack deployment)
Backend:
cd backend
python -m venv venv
source venv/bin/activate
pip install -r requirements.txt
python generate_mock_data.py
uvicorn api:app --reload --port 8000Frontend:
cd frontend
npm install
npm run dev
# Access at http://localhost:5173RecSys Backend:
cd ad_rec_backend
# Ensure dependencies are installed (or reuse backend venv if compatible)
uvicorn api:app --reload --port 8001RecSys Frontend:
cd ad_rec_frontend
npm install
npm run dev
# Access at http://localhost:3000 (check console for actual port)Run the entire suite with one command:
docker-compose up -d --buildThis will start:
- Core Backend
- Core Frontend
- (Configuration dependent) RecSys services
| Service | Base URL | Documentation |
|---|---|---|
| Core API | http://localhost:8000 |
/docs |
| RecSys API | http://localhost:8001 |
/docs |
GET /api/rec/ads: Get personalized ad recommendations.GET /api/rec/similar: Get similar items (Item2Vec).POST /api/rec/click: Log user interaction events.POST /api/rec/train: Trigger model retraining pipeline.
We welcome contributions!
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature) - Commit your Changes (
git commit -m 'Add some AmazingFeature') - Push to the Branch (
git push origin feature/AmazingFeature) - Open a Pull Request
Distributed under the MIT License. See LICENSE for more information.