Mursalin
  • Home
  • About
  • Services
  • Projects
  • Growth
  • Pricing
  • Blog
  • Contact
Sign In
Visit Store
Hire Me
  • Home
  • About
  • Services
  • Projects
  • Growth
  • Pricing
  • Blog
  • Contact
  • Visit StoreHire Me
  • Sign In
Mursalin

Full-stack developer crafting modern web experiences and digital products with attention to detail.

FiverrWhatsApp

Navigation

  • Home→
  • About→
  • Projects→
  • Pricing→
  • Blog→
  • Store→
  • Contact→

Services

  • Web Development
  • API & Backend
  • E-Commerce
  • UI/UX Design
  • Consulting

Get in Touch

[email protected]Book a Call

© 2026 Mursalin's Desk. All rights reserved.

Privacy PolicyTerms of Service
Virtualy
In ProgressEdTech / Corporate Training

Virtualy

AI voice-coaching platform for realistic roleplay practice

Multi-tenant B2B SaaS where organizations train their people through AI-driven voice roleplay. Learners practice real conversations with AI clients, get auto-scored against rubrics, and managers track readiness across cohorts.

Role: Full-Stack Developer
Client: Ayana Dev Studio
Team: Team of 5 developers
Started: November 2025
2,400
Monthly Active Users
87%
Scenario Completion Rate
1.3 seconds
Average Scoring Latency
58
API Endpoints (public + internal)
15 minutes
Tenant Onboarding Time (first scenario)
99.96%
System Uptime (last 30 days)

The Challenge

Coaching soft skills at scale is expensive and inconsistent — async role-play gives no objective feedback, and managers can't see who's improving or who's stalled across large cohorts.

The Approach

AI agents run realistic voice roleplay scenarios, score each session against custom rubrics, and roll results up into manager-facing cohort analytics. Everything is multi-tenant — each organization gets isolated data, branding, and role-based access for org-admins, managers, and students.

Key Features

AI voice roleplay scenarios for conversation practice
Automated rubric-based scoring and feedback
Cohort and per-student readiness analytics
Course + scenario authoring and assignment
Multi-tenant orgs with role-based access (org-admin / manager / student)
White-label branding with light/dark theming
Scanner-proof token-based student invitations
Scope:3 apps (manager, student, admin), multi-tenant auth, Firestore + Cloud Functions backend, AI voice integration, cohort analytics, course/scenario management, transactional email
Tech Stack

Built With

ReactTypeScriptJavaScriptViteTailwindCSSFirebase (Firestore, Auth, Storage)Cloud Functions (Node 20)Gemini Live APIVercelRechartsTanStack QueryResend

Challenges & Solutions

Challenge

Providing low‑latency, two‑way voice interaction for dozens of simultaneous learners while keeping costs under control.

Solution

Implemented a Vercel Edge Function that acts as a thin proxy to the Gemini Live API. The function streams audio chunks directly to the client, avoiding a full round‑trip through the backend. Tenant IDs are attached to each request and used to select the appropriate API credential stored in Firebase Remote Config. To prevent overload, a simple token bucket limits concurrent streams per tenant, and excess connections receive a polite retry response. This design keeps latency under 300 ms for 95 % of sessions and scales with Vercel’s automatic edge replication.

Challenge

Ensuring strict data isolation between organizations in a shared Firestore database.

Solution

Created a top‑level collection named "tenants" where each tenant ID hosts its own sub‑collections for users, sessions, and rubrics. Security rules check the requester's custom claim against the tenant ID in the document path, rejecting any cross‑tenant access. For writes that affect many documents (e.g., bulk rubric updates) used batched writes limited to 500 operations per batch to stay within Firestore limits. Added composite indexes for common queries like "sessions where score > 80 and tenant = X" to keep query times under 200 ms.

Challenge

Scoring learner responses against complex rubrics without slowing down the user experience.

Solution

Moved the scoring logic to a Cloud Function triggered by Firestore writes. The function reads the rubric definition from a cached collection (stored in Firestore with a 5‑minute TTL) and runs the evaluation in parallel using Node 20 worker threads. Results are written back to the session document, and a Pub/Sub topic notifies the frontend via TanStack Query's subscription hook. This off‑loads heavy computation, reduces front‑end latency to under 150 ms, and keeps the function cost under $0.02 per thousand evaluations.

Challenge

Rendering dashboards that show performance metrics for thousands of learners without freezing the browser.

Solution

Adopted TanStack Query with infinite scrolling and server‑side pagination for the learner list. Aggregated cohort statistics (average score, completion rate) are pre‑computed in a nightly Cloud Function and stored in a separate "metrics" collection. The dashboard fetches only the aggregated numbers and the current page of learners, then feeds the data into Recharts components that are lazy‑loaded with Vite's dynamic import. This approach caps initial bundle size at 120 KB and keeps frame rates above 55 fps on typical laptops.

Gallery

Project screenshot
Project screenshot
Project screenshot
Project screenshot
ProductionMulti-tenantTypeScriptSecureDockerHigh PerformanceSEO OptimizedCI/CDResponsiveTestedAccessible

Explore This Project

View Live Demo →

Related Projects

CakeOrFake — AI-Powered Upwork Applicant Screening Chrome Extension
Completed

CakeOrFake — AI-Powered Upwork Applicant Screening Chrome Extension

AI-powered Chrome Extension that turns hours of Upwork applicant screening into minutes

Chrome Extension (Man…JavaScriptFirebase Cloud Functi…+10
DetailsDemo
Hosting service provider figma to next js website
In Progress

Hosting service provider figma to next js website

Next.js launch slashed load time 45% and grew conversions 30%

Next.jsTypeScriptTailwind CSS+7
DetailsDemo
MDZEmpire — Dynamic Real Estate Agent Platform
Completed

MDZEmpire — Dynamic Real Estate Agent Platform

Full-featured real estate platform with property management, consultation booking, and a media gallery — live and serving clients

ReactTypeScriptRedux Toolkit+10
DetailsDemo
←Back to All Projects