Customer behavior tracking system for SCADA marketing website
- Python 43.9%
- JavaScript 29.8%
- TypeScript 14.4%
- HTML 8.2%
- CSS 3%
- Other 0.6%
| .opencode | ||
| backend | ||
| docs | ||
| email-templates | ||
| frontend | ||
| tracking | ||
| .env.example | ||
| .gitignore | ||
| .repomixignore | ||
| AGENTS.md | ||
| CLAUDE.md | ||
| docker-compose.yml | ||
| pack-for-prod.ps1 | ||
| README.md | ||
| release-manifest.json | ||
Behavior Analytics Service for SCADA
Customer behavior tracking system for SCADA marketing website. Captures page views, clicks, downloads, form submissions. Displays in admin dashboard.
Stack
- Backend: Node.js + Express + TypeScript + Prisma ORM
- Database: MySQL
- Frontend: React + Vite + TypeScript
- Tracking: Vanilla JS embeddable snippet
Setup
Prerequisites
- Node.js 18+
- MySQL 8.0+ (or Docker:
docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root -e MYSQL_DATABASE=behavior_analytics mysql:8)
1. Environment
cp .env.example backend/.env
# Edit backend/.env with your MySQL credentials
2. Backend
cd backend
npm install
npx prisma migrate dev --name init
npx prisma generate
npm run dev
Server starts at http://localhost:3001
3. Frontend
cd frontend
npm install
npm run dev
Dashboard at http://localhost:5173
4. Tracking Script
Add to your website before </body>:
<script src="http://localhost:3001/tracker.js" data-api-url="http://localhost:3001"></script>
API Endpoints
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/health | Health check |
| POST | /api/events | Record behavior event |
| GET | /api/events | List events (paginated) |
| GET | /api/reports/summary | Aggregate stats |
| GET | /api/reports/customers | Customer list with event counts |
Project Structure
├── backend/ # Express + Prisma API
├── frontend/ # React + Vite dashboard
├── tracking/ # Embeddable tracking script
└── .env.example # Environment template