VC.
ProjectsAboutContact

Varun Cumbamangalam.

Senior IoT and Edge AI Engineer, AI Product Manager at OraLens Healthcare

ProjectsAboutContactPrivacy

© 2026 Varun Cumbamangalam. Built with Next.js and Tailwind CSS.

// React - direct-to-S3 presigned URL upload (no file bytes touch app server) async function uploadCaseAsset(file: File, caseId: string): Promise<string> { const { uploadUrl, objectKey } = await api.post('/cases/presign', { caseId, fileName: file.name, contentType: file.type, }); await fetch(uploadUrl, { method: 'PUT', body: file, headers: { 'Content-Type': file.type }, }); return objectKey; // stored in case registry, retrieved via CloudFront }
All Projects
LuxySmile Oral Care - Product Website & Dashboard logo
FrontendBackend

LuxySmile Oral Care - Product Website & Dashboard

B2B wellness programs with AI diagnostics and a live product website.

Explore interactive demoLuxySmile Website
B0B + B2C

Dual Market

GA0

Analytics Instrumented

S0-Backed

Asset Storage

Tech Stack

React 18ViteTypeScriptAWS S3TailwindFramer Motion

The problem

LuxySmile needed a single website that could convince two very different buyers: school principals looking at dental wellness programs for students, and corporate HR managers evaluating team health packages. At the same time, dental staff needed an internal tool to manage patient cases - without IT infrastructure to handle large image files.

The challenge

LuxySmile Oral Care needed two things simultaneously: a premium-feeling public-facing website that would convert school administrators and corporate HR managers into B2B partners, and an internal dashboard that let dental teams manage smile design cases without routing large image files through an application server. The public site had to communicate both "luxury" and clinical credibility while keeping load times fast for a mobile-first Indian audience.

Architecture & System Design

LuxySmile Oral Care - Product Website & Dashboard system architecture

Public marketing website targets schools and corporate wellness programs. Internal dashboard enables clinic staff to manage patient cases and treatment records. File uploads bypass application server (presigned URLs to cloud storage) for scalability. Analytics integration tracks visitor behavior and B2B conversion funnel. CSV bulk import supports onboarding existing patient data.

Full system schematic available upon request

The public product website (luxysmile.com) is a React 18 + Vite SPA with Google Analytics 4 instrumentation, React Router, and Lucide React icons. Custom CSS with brand tokens (--luxyellow, --luxgreen) provides the premium gold-and-forest-green visual identity. The internal dashboard is a separate React 18 + Vite + TypeScript SPA. File uploads use the presigned S3 URL pattern - the client requests a temporary upload URL from the backend and pushes directly to S3, keeping the app server stateless. A PapaParse-powered CSV import lets teams bulk-onboard cases from existing spreadsheets.

Code Walkthrough

3-step walk-through of the production implementation. File paths and intent appear above each block.

  1. 01

    Step 1 of 3

    Backend presign endpoint

    luxysmile-api/src/routes/cases.ts

    The app server never handles file bytes. When the client asks to upload, we authenticate, generate a short-lived S3 presigned URL scoped to a single object key, and hand it back. The actual PUT never touches our server.

    typescript
    router.post('/cases/presign', requireAuth, async (req, res) => {
        const { caseId, fileName, contentType } = presignSchema.parse(req.body);
    
        // Guard: user must own the case
        const owned = await db.case.findFirst({
            where: { id: caseId, ownerId: req.user.id },
            select: { id: true },
        });
        if (!owned) return res.status(404).json({ error: 'case not found' });
    
        const objectKey = `cases/${caseId}/${randomUUID()}/${safe(fileName)}`;
    
        const uploadUrl = await getSignedUrl(
            s3,
            new PutObjectCommand({
                Bucket: process.env.S3_BUCKET,
                Key: objectKey,
                ContentType: contentType,
            }),
            { expiresIn: 60 }, // 1-minute window
        );
    
        res.json({ uploadUrl, objectKey });
    });
    Takeaway

    Short TTL + per-request key prevents URL reuse. The server's only job is authorisation, not data transport.

  2. 02

    Step 2 of 3

    Direct-to-S3 client upload

    luxysmile-dashboard/src/features/cases/hooks/useUpload.ts

    The browser fetches the presigned URL, then PUTs the file straight to S3. No proxying, no multipart forms in our codebase, no memory pressure on the app server regardless of file size.

    typescript
    async function uploadCaseAsset(file: File, caseId: string): Promise<string> {
        const { uploadUrl, objectKey } = await api.post('/cases/presign', {
            caseId,
            fileName: file.name,
            contentType: file.type,
        });
    
        await fetch(uploadUrl, {
            method: 'PUT',
            body: file,
            headers: { 'Content-Type': file.type },
        });
    
        return objectKey; // stored in case registry, retrieved via CloudFront
    }
    Takeaway

    Two network calls, zero server-side file buffering. The app scales horizontally without thinking about upload bandwidth.

  3. 03

    Step 3 of 3

    CSV bulk import with streaming validation

    luxysmile-dashboard/src/features/cases/bulk/importCsv.ts

    Dental teams onboard pilot cohorts from existing spreadsheets. PapaParse streams rows so a 5,000-row sheet doesn't block the UI, and each row is validated against a Zod schema before it touches the API.

    typescript
    export function importCasesFromCsv(
        file: File,
        onProgress: (n: number) => void,
    ): Promise<ImportResult> {
        return new Promise((resolve) => {
            const valid: CaseRow[] = [];
            const errors: ImportError[] = [];
            let seen = 0;
    
            Papa.parse<RawCaseRow>(file, {
                header: true,
                skipEmptyLines: true,
                worker: true,
                step: (row) => {
                    seen++;
                    const parsed = CaseRowSchema.safeParse(row.data);
                    if (parsed.success) valid.push(parsed.data);
                    else errors.push({ line: seen, issues: parsed.error.issues });
                    if (seen % 50 === 0) onProgress(seen);
                },
                complete: () => resolve({ valid, errors, total: seen }),
            });
        });
    }
    Takeaway

    Streaming + Web Worker = a 5k-row import feels instant. Zod catches bad rows per-line so the whole batch never fails on a single typo.

Results

luxysmile.com is live, serving as the primary GTM surface for LuxySmile Oral Care's school and corporate wellness programs. The site includes a full B2B inquiry flow, School Health Award positioning, and an AI kiosk (OraScan Pro) upsell. The internal dashboard handles case file management for pilot dental practices with direct-to-S3 uploads eliminating server-side file handling bottlenecks.

Explore the product system

This case study covers the main product surfaces. Use the buttons to move between the dashboard, app, website, and brand work.

Open Operations dashboard

Product surfaces

LuxySmile Website
Operations dashboard

Explore case management and programme operations.

Live Demos

LuxySmile Website

https://luxysmile.com/

OraLens Healthcare Pvt. Ltd.

More from OraLens Healthcare Pvt. Ltd.

OraScan - Oral Disease Detection

End-to-end ownership

An oral disease classifier built with a custom EfficientNet-B0 model trained on 78,000+ dental images. It reaches 94.7% accuracy across 11 disease categories and runs through ONNX on kiosk hardware.

PythonPyTorchONNX

OraScan - AI Oral Screening Platform

Product Owner

Product definition and ownership for OraScan, an oral disease classifier designed for dental kiosks. Set per-class accuracy targets, defined the dataset strategy for 78K+ images, and specified the kiosk hardware integration.

PRD AuthoringDataset StrategyModel Evaluation Criteria

OraScan H - Halitosis IoT Device

End-to-end ownership

Full-stack IoT device for halitosis (bad breath) detection: a Raspberry Pi Zero 2W with H2S gas sensors communicates via BLE to a Flutter mobile app, with on-device TFLite AI classification and PHP backend.

PythonFlutterRaspberry Pi

OraScan H - Connected Halitosis Device

Product Owner

Product ownership of OraScan H, a consumer IoT halitosis detector built with a Raspberry Pi Zero 2W, H2S gas sensors, and a Flutter mobile app. Defined the BLE pairing flow and sprint milestones through 92% software completion.

PRD AuthoringHardware Requirements SpecBLE UX Definition

ArogyaLens - Unified Health Platform

End-to-end ownership

A multilingual healthcare platform connecting patient records, doctor workflows, hospital operations, appointments, pharmacy, labs, telemedicine, and oral-health screening.

Node.jsNext.jsFlutter

ArogyaLens - Unified Health Platform

Product Owner

Product ownership for a health platform spanning 15+ modules, 13 languages, telemedicine, and oral-health screening. Authored the PRD, SRS, and technology specification.

PRD AuthoringSRS DocumentationClinical Workflow Mapping

LuxySmile - Oral Care Brand & Operations

Product Owner

Product and go-to-market ownership for LuxySmile Oral Care - OraLens Healthcare's B2B wellness brand. Defined the dual B2B/B2C positioning strategy, school and corporate wellness program inquiry flow, and the AI kiosk upsell path on a premium product website.

PRD AuthoringB2B GTM StrategyBrand Positioning

Interested in this work?

I can walk through the architecture and code during an interview.

Get in Touch All Projects