EventCHI is a full-stack event management platform handling ticketing, vendor marketplaces, point-of-sale payments (including NFC wearable bands), and real-time analytics. The backend is a NestJS monorepo with a Kafka worker for async event processing, PostgreSQL via Prisma, Redis for caching and pub/sub, and integrations with Stripe, Xendit, and Hyperswitch for multi-provider payment processing. An AI/RAG microservice built in Python/FastAPI handles automated product generation and multilingual content, powered by Weaviate vector DB and Azure OpenAI. The system serves web (React PWA + admin backstage), mobile (React Native), and POS clients through a KrakenD API gateway.
Screenshots
System Architecture
Service or component
Connection
Data flow
Hover or tap any node for technical detail.
Key Contributions
AI product generation engine
Show details
Hide
Python/FastAPI service integrating Weaviate vector DB for document retrieval, OpenRouter and Azure OpenAI for LLM inference, SerpAPI + FAL for image search and generation. Auto-generates product listings and translates changelogs across 8 languages.
Multi-channel notification infrastructure
Show details
Hide
Designed Push-to-SMS fallback with failed-message recovery. SmartNotificationUtil with Firebase push provider (18 unit tests), Dead Letter Queue service, Redis pub/sub publishWithRetry, 35 integration tests on WebSocket service.
POS payment backend
Show details
Hide
Built NFC wearable and door-sale ticket checkout with multi-provider support — Hyperswitch/Xendit/Stripe integrations, eligibility filtering, transparent pricing breakdowns, Decimal(16,8) migration across 12 token fields in PostgreSQL/Prisma.
Real-time WebSocket infrastructure
Show details
Hide
Unified sendToUser method for Crew/Event/Token/Vendor domains, pod-aware broadcast, authentication close codes, 35 integration tests, fixed production-blocking connection-lifecycle bugs on React Native client.
Swarm is an AI-powered learning platform for children, combining a real-time 3D avatar driven by Azure OpenAI's Realtime API over WebRTC with an adaptive learning engine that models student mastery using Bayesian Knowledge Tracing. The backend is a NestJS service with PostgreSQL spanning 77 Prisma models across 15+ schemas, handling multi-tenant organization management, gamification (XP, badges, leaderboards), and COPPA-compliant child data isolation. A hybrid QA agent system using FastAPI and Pydantic A2A agents generates 1,000+ localized test items per second across 15+ locales, replacing pure-LLM generation with a 500x speedup.
Screenshots
System Architecture
Service or component
Connection
Data flow
Hover or tap any node for technical detail.
Key Contributions
Hybrid QA agent system
Show details
Hide
FastAPI + Pydantic A2A agents (ScenarioExecutor, Performance, Security, Cultural) using Faker/Mimesis libraries. 1,000+ items/sec across 15+ locales. 500x speedup vs pure LLM, 95% cost reduction.
Adaptive learning engine
Show details
Hide
Bayesian Knowledge Tracing with TF-IDF topic extraction, pL0/pT/pG/pS parameters, 10-level progression system. Persisted via SQLite for COPPA compliance across 22 subjects, 113 topics.
Multi-schema backend architecture
Show details
Hide
77 Prisma models across 15+ schemas: swarm-agent, swarm-kids-content, swarm-kids-gamification, swarm-organization, swarm-rbac. Soft deletes, audit trails, composite indices, PromptVersion / CourseVersion / LessonVersion for A/B testing and rollback.
3D avatar with real-time voice
Show details
Hide
React Three Fiber + Rapier physics, WebRTC for low-latency audio, viseme-based lip-sync, morph-target facial expressions. 1,740+ commits through v0.2.0.
Tech Stack
Backend
NestJSTypeScriptFastAPIPython
Database
PostgreSQLPrisma (77 models)SQLiteSupabase
AI / ML
Azure OpenAI RealtimeBayesian KTPydantic A2A
3D / Realtime
Three.jsReact Three FiberRapierWebRTC
Frontend
Next.js 15React 19Tailwind
Metrics
77 Prisma models
15+ schemas
1,740+ commits
1,000+ items/sec
500x QA speedup
22 subjects · 113 topics
Itinerary Hub
Frontend & AI Engineer (team of 3) · 3rd Place · UID × AtoX Bali AI Hackathon · Jun 2026
Itinerary Hub began as WanderWise, our three-person entry to the UID × AtoX Bali AI Hackathon (June 2026) — a 6-hour build that took 3rd place, then evolved into this production showcase. I owned the frontend and the AI chat pipeline. The React 19 + Vite PWA scores cities on a 3-band safety contract (safe / warning / danger), renders animated safety rings and Leaflet maps, installs to a home screen, and works offline via Workbox. The AI chat plans itineraries through a Vercel serverless function that reads a catalog abstraction (committed JSON snapshot by default, live Firestore opt-in), filters out dangerous destinations before the LLM sees them, and validates every response against the catalog before it reaches the UI. A Python ingestion pipeline scrapes and scores threat data into Firestore.
Live Demo
This is the real deployed app running live in the frame — the same build you can install to a home screen.
What to try
01Tap a city cardThe safety ring animates its 3-band score; threat tiles break down Crime, Disasters, Technical, and Health.
02Open the Alerts tabLive-style alerts simulated from warning and danger bands in the catalog.
03Ask the chat for "beach vibes in Bali"Safety-filtered recommendations from the catalog; confirm to get a full 3-day plan.
04Toggle the map view on HomeLeaflet + OpenStreetMap tiles, no API key required.
React 19 + Vite + Tailwind 4 frontend: animated SafetyRing score visualization, react-leaflet + OpenStreetMap maps with no API key, install prompt with iOS/iPadOS handling, Workbox offline fallback, 32 Vitest tests.
AI itinerary chat pipeline
Show details
Hide
Vercel serverless /api/chat: catalog fetch → safety filter (danger excluded, warning flagged) → deterministic recommend/plan gate → OpenRouter Gemini 2.5 Flash → catalog-validated ChatResponse. Unknown destination IDs are dropped, so the bot can only recommend real, safe places. Bring-your-own-key header with capped server fallback.
Zero-dependency catalog abstraction
Show details
Hide
CatalogSource interface: committed JSON snapshot by default (clone-and-run with no Firebase credentials), Firestore REST opt-in via a DATA_SOURCE env switch, and a gen:catalog script that snapshots live data.
3-band safety contract
Show details
Hide
Unified safe / warning / danger thresholds (≥75 / ≥45) across the UI, the chat safety filter, and the Python seeders — 4 threat categories over 45 threat records for 9 Bali cities.
A recommendation engine that helps researchers discover relevant scientific papers from a corpus of 16,000 arXiv documents. The system uses text embeddings generated from paper abstracts and introductions, served through a FastAPI backend with real-time inference. The full data pipeline handles collection from the arXiv API, cleaning, pre-processing, and embedding generation. Evaluation using NDCG, MAP, MRR, and Precision metrics demonstrated that introduction-section text without pre-processing yielded the highest retrieval performance (NDCG: 0.7590).
Screenshots
System Architecture
Service or component
Connection
Data flow
Hover or tap any node for technical detail.
Key Contributions
REST API for model serving
Show details
Hide
FastAPI service handling data pre-processing and embedding generation on-the-fly for incoming queries with real-time inference.
Complete data pipeline
Show details
Hide
16,000 documents from arXiv API → cleaning → pre-processing → text embedding generation for similarity analysis.
Rigorous evaluation framework
Show details
Hide
Compared preprocessing strategies with NDCG, MAP, MRR, and Precision metrics. Introduction section without preprocessing achieved NDCG: 0.7590, outperforming abstract-only and preprocessed variants.