Skip to content

huzhe01/adproto

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

14 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

GrowEngine ๐Ÿš€

License Build Status Python React

ไธญๆ–‡ๆ–‡ๆกฃ

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.

โœจ Features

๐Ÿข Core Platform

  • ๐Ÿ“Š 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.

๐ŸŽฏ Hybrid Recommendation System (New)

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.

๐Ÿ— Architecture

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
Loading

๐Ÿ“ Project Structure

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

๐Ÿš€ Getting Started

Prerequisites

  • Node.js 18+
  • Python 3.10+
  • Docker (Optional, for full stack deployment)

๐Ÿ’ป Local Development

1. Core Platform (Management)

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 8000

Frontend:

cd frontend
npm install
npm run dev
# Access at http://localhost:5173

2. Recommendation System Module

RecSys Backend:

cd ad_rec_backend
# Ensure dependencies are installed (or reuse backend venv if compatible)
uvicorn api:app --reload --port 8001

RecSys Frontend:

cd ad_rec_frontend
npm install
npm run dev
# Access at http://localhost:3000 (check console for actual port)

๐Ÿณ Docker Deployment

Run the entire suite with one command:

docker-compose up -d --build

This will start:

  • Core Backend
  • Core Frontend
  • (Configuration dependent) RecSys services

๐Ÿ“ก API Documentation

Service Base URL Documentation
Core API http://localhost:8000 /docs
RecSys API http://localhost:8001 /docs

Key RecSys Endpoints

  • 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.

๐Ÿ“ˆ Star History

Star History Chart

๐Ÿค Contributing

We welcome contributions!

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

๐Ÿ“„ License

Distributed under the MIT License. See LICENSE for more information.

About

A full-stack prototype ad-system for demo show

Resources

License

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors