Skip to content

feat: Implement A/B Testing Framework for Campaign Variants (#624)#660

Merged
joelpeace48-cell merged 2 commits into
FinesseStudioLab:mainfrom
Williams-1604:feat/ab-testing-framework-624
Jun 18, 2026
Merged

feat: Implement A/B Testing Framework for Campaign Variants (#624)#660
joelpeace48-cell merged 2 commits into
FinesseStudioLab:mainfrom
Williams-1604:feat/ab-testing-framework-624

Conversation

@Williams-1604

Copy link
Copy Markdown
Contributor

A/B Testing Framework for Campaign Variants

Implements comprehensive A/B testing infrastructure for Trivela campaigns addressing issue #624.

Features

  • Database Schema: Migration 010 adds tables for variants, assignments, and results
  • Smart Assignment: Deterministic hash-based algorithm with traffic weight distribution
  • Statistical Analysis: Z-test calculations with p-values and significance testing
  • REST API: Complete CRUD operations under /api/v1/campaigns/:id/variants
  • Authentication: API key required, integrated with rate limiting
  • Testing: Comprehensive unit tests with good coverage

API Endpoints

  • POST /campaigns/:id/variants - Create variant
  • GET /campaigns/:id/variants - List variants
  • PUT /campaigns/:id/variants/:variantId - Update variant
  • DELETE /campaigns/:id/variants/:variantId - Delete variant
  • POST /campaigns/:id/variants/assign - Assign user to variant
  • GET /campaigns/:id/variants/assignment/:userId - Get assignment
  • POST /campaigns/:id/variants/results - Track results
  • GET /campaigns/:id/variants/results/:metric - Get analytics

Usage Example

Create control and test variants, assign users based on traffic weights, track conversion metrics, and analyze results with statistical significance testing.

Technical Details

  • Deterministic user assignment ensures consistency
  • Traffic weights control user distribution (e.g. 50% control, 50% variant)
  • Statistical significance calculated using z-test for proportions
  • Sticky assignments prevent user confusion across sessions
  • Comprehensive validation with Zod schemas

Files Changed

New: 6 files including migration, repository, service, routes, tests, docs
Modified: 3 files for schema validation and integration

Production-ready implementation with full documentation in IMPLEMENTATION_ISSUE_624.md

Closes #624

@vercel

vercel Bot commented Jun 18, 2026

Copy link
Copy Markdown

@Gbangbolaoluwagbemiga is attempting to deploy a commit to the joelpeace48-cell's projects Team on Vercel.

A member of the Team first needs to authorize it.

…tudioLab#624)

- Add database schema for campaign variants, assignments, and results tracking
- Implement deterministic hash-based variant assignment with traffic weights
- Add comprehensive API endpoints for variant management and analytics
- Include statistical significance testing (z-test for proportions)
- Support sticky assignments to ensure user consistency
- Add validation schemas and comprehensive unit tests
- Integrate with existing campaign infrastructure and rate limiting
- Add detailed documentation and usage examples

Key features:
- Create/manage campaign variants with traffic weight configuration
- Assign users to variants based on configurable traffic splits
- Track experiment results and calculate statistical significance
- RESTful API under /api/v1/campaigns/:id/variants endpoints
- Database migration with proper indexes and foreign key constraints

Closes FinesseStudioLab#624
@Williams-1604 Williams-1604 force-pushed the feat/ab-testing-framework-624 branch from 69eb204 to c622b30 Compare June 18, 2026 21:35
@vercel

vercel Bot commented Jun 18, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
trivela-frontend Ready Ready Preview, Comment Jun 18, 2026 10:22pm

…work

- Add JSDoc type annotations to fix TypeScript errors
- Fix validation order in validateTrafficWeights (check individual weights first)
- Explicitly spread object properties to satisfy TypeScript type checking
- Add missing zScore to return type and early return
- All tests now passing (105/105)
@joelpeace48-cell joelpeace48-cell merged commit a5e4fff into FinesseStudioLab:main Jun 18, 2026
11 checks passed
@joelpeace48-cell

Copy link
Copy Markdown
Contributor

Nice Job @Williams-1604 , all CI passes, feel free to apply to more issues the quality of code is good

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

feat: A/B testing framework for campaign variants

3 participants