Skip to content

logeshkannan19/PERSONAX

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

5 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

PERSONAX β€” AI Personalization Engine

Version License

πŸš€ Live Demo: https://personax-demo-31q20kq5f-logeshkannan19s-projects.vercel.app

PERSONAX is an AI-powered personalization engine that helps businesses dynamically customize user experiences across websites, apps, and digital products.

🎯 Features

  • User Behavior Tracking - Track clicks, scrolls, time spent, navigation paths
  • User Profile Engine - Build dynamic profiles with interests, behavior patterns, engagement scores
  • AI Personalization - Content & product recommendations using collaborative filtering + AI
  • Real-Time Decision Engine - Show personalized CTAs, modify UI dynamically
  • Admin Dashboard - Analytics, segment management, rule builder
  • JavaScript SDK - Easy integration with any website
  • Auto Segmentation - AI-powered user clustering (New, Active, High-Value, At-Risk)

πŸ—οΈ Architecture

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                        Frontend                             β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”   β”‚
β”‚  β”‚ Landing β”‚  β”‚Dashboardβ”‚  β”‚ Analyticsβ”‚  β”‚ Login/Auth  β”‚   β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜   β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                              β”‚
                              β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                        Backend API                           β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”      β”‚
β”‚  β”‚  Auth   β”‚ β”‚ Events  β”‚ β”‚Users    β”‚ β”‚Recommendationsβ”‚      β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜      β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”      β”‚
β”‚  β”‚Segments  β”‚ β”‚ Rules   β”‚ β”‚Analyticsβ”‚ β”‚   Webhooks   β”‚      β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜      β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                              β”‚
          β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
          β–Ό                   β–Ό                   β–Ό
    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”       β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”       β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
    β”‚ PostgreSQLβ”‚       β”‚   Redis   β”‚       β”‚  OpenAI   β”‚
    β”‚  (Data)   β”‚       β”‚ (Cache)   β”‚       β”‚   (AI)    β”‚
    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜       β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜       β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

πŸš€ Quick Start

Prerequisites

  • Node.js 20+
  • PostgreSQL 15+
  • Redis 7+

1. Clone & Install

# Backend
cd backend
npm install
cp .env.example .env
# Edit .env with your settings

# Frontend
cd ../frontend
npm install

2. Database Setup

cd backend
npx prisma generate
npx prisma db push
# Optional: npx prisma db seed

3. Run Development

# Terminal 1 - Backend
cd backend
npm run dev

# Terminal 2 - Frontend
cd frontend
npm run dev

4. Using Docker

cd docker
docker-compose up --build

πŸ“‘ API Endpoints

Authentication

  • POST /api/auth/register - Create organization + admin user
  • POST /api/auth/login - Login
  • GET /api/auth/me - Get current user

Events (SDK)

  • POST /sdk/v1/track - Track user event
  • POST /sdk/v1/track/batch - Batch track events
  • GET /api/events/session/:id - Get session events

Users

  • GET /api/users - List users
  • POST /api/users - Create user

Profiles

  • GET /api/profiles - List user profiles
  • GET /api/profiles/:id - Get profile details
  • PUT /api/profiles/:id - Update profile

Websites

  • GET /api/websites - List websites
  • POST /api/websites - Create website
  • GET /api/websites/:id/stats - Get website stats

Recommendations

  • GET /api/recommendations/:profileId - Get recommendations
  • POST /api/recommendations/:id/click - Track click
  • POST /api/recommendations/:id/convert - Track conversion

Analytics

  • GET /api/analytics/overview - Dashboard overview
  • GET /api/analytics/realtime - Real-time visitors
  • GET /api/analytics/segments - Segment distribution
  • GET /api/analytics/content - Top content

Segments

  • GET /api/segments - List segments
  • POST /api/segments/auto-generate - Auto-generate segments

Rules

  • GET /api/rules - List personalization rules
  • POST /api/rules - Create rule
  • PATCH /api/rules/:id/toggle - Toggle rule

πŸ”Œ SDK Usage

<!-- Add to your website -->
<script>
  window.personaxConfig = {
    apiKey: 'pk_your_api_key',
    websiteId: 'your_website_id',
    track: ['clicks', 'scroll', 'time', 'forms'],
    debug: true
  };
</script>
<script src="https://cdn.personax.ai/personax.js"></script>

<!-- Or use npm -->
<!-- npm install @personax/sdk -->
import Personax from '@personax/sdk';

const personax = new Personax({
  apiKey: 'pk_xxx',
  websiteId: 'xxx',
  track: ['clicks', 'scroll']
});

// Track custom event
personax.track('purchase', { amount: 99, plan: 'pro' });

// Identify logged-in user
personax.identify('user_123', { email: 'user@example.com', plan: 'enterprise' });

πŸ› οΈ Tech Stack

  • Frontend: Next.js 14, Tailwind CSS, ShadCN UI, Recharts
  • Backend: Node.js, Express, Prisma, Socket.IO
  • Database: PostgreSQL, Redis
  • AI: OpenAI GPT-4, Embeddings
  • Deployment: Docker, AWS/Vercel/Railway

πŸ“ Project Structure

personax/
β”œβ”€β”€ backend/
β”‚   β”œβ”€β”€ src/
β”‚   β”‚   β”œβ”€β”€ auth/           # Authentication
β”‚   β”‚   β”œβ”€β”€ users/          # User management
β”‚   β”‚   β”œβ”€β”€ events/         # Event tracking
β”‚   β”‚   β”œβ”€β”€ recommendations/# AI recommendations
β”‚   β”‚   β”œβ”€β”€ analytics/      # Analytics
β”‚   β”‚   β”œβ”€β”€ segments/      # User segmentation
β”‚   β”‚   β”œβ”€β”€ rules/          # Personalization rules
β”‚   β”‚   β”œβ”€β”€ common/         # Shared utilities
β”‚   β”‚   └── index.ts        # Entry point
β”‚   β”œβ”€β”€ prisma/
β”‚   β”‚   └── schema.prisma   # Database schema
β”‚   └── package.json
β”œβ”€β”€ frontend/
β”‚   β”œβ”€β”€ src/
β”‚   β”‚   β”œβ”€β”€ app/            # Next.js pages
β”‚   β”‚   β”œβ”€β”€ components/     # UI components
β”‚   β”‚   └── lib/            # Utilities
β”‚   └── package.json
β”œβ”€β”€ sdk/
β”‚   └── javascript/         # Client SDK
β”œβ”€β”€ docker/
β”‚   └── docker-compose.yml  # Docker setup
└── docs/
    └── README.md           # This file

πŸ” Environment Variables

# Backend (.env)
DATABASE_URL=postgresql://postgres:postgres@localhost:5432/personax
REDIS_URL=redis://localhost:6379
JWT_SECRET=your-secret-key
OPENAI_API_KEY=sk-xxx

# Frontend (.env.local)
NEXT_PUBLIC_API_URL=http://localhost:3001

πŸ“Š Data Models

User Profile

  • anonymousId - Unique visitor ID
  • interests - Array of interest tags
  • engagementScore - 0-100 score
  • visitCount - Total visits
  • totalDuration - Total time on site
  • lastActiveAt - Last activity timestamp

Event Types

  • PAGE_VIEW - Page visits
  • CLICK - Button/link clicks
  • SCROLL - Scroll depth
  • TIME_ON_PAGE - Time tracking
  • FORM_SUBMIT - Form submissions
  • PURCHASE - Conversions
  • SIGNUP / LOGIN - Authentication

Segments

  • NEW - ≀2 visits
  • ACTIVE - 20-60 engagement score
  • HIGH_VALUE - β‰₯60 engagement score
  • AT_RISK - Inactive 7-14 days
  • DORMANT - Inactive >14 days

πŸ§ͺ Testing

# Backend tests
cd backend
npm test

# With coverage
npm test -- --coverage

πŸ“ License

MIT License - see LICENSE file for details.

πŸ‘ Acknowledgments

  • Built with Next.js, Express, Prisma
  • UI powered by ShadCN/Tailwind
  • Charts by Recharts

PERSONAX β€” Transform anonymous visitors into engaged users with AI-powered personalization.

About

AI-powered personalization engine that tracks user behavior and dynamically customizes content, recommendations, and UI in real-time using machine learning.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors