Back to Work
Case Study

Atharva
University Mumbai

A complete mobile platform and custom CMS that put a 10,000-student university back in control of its own app.

1K+
Active Users
67%
Push Open Rate
MINUTES
Content Update Time
The Problem

Every Update Needed a Developer

Atharva University already had a mobile app. But every meaningful change — a new event, an updated notice, a fresh photo — required the marketing team to email their developer, wait for a build, and hope the update went live before the event became irrelevant.

Events were promoted after they had already happened. Results went up days late. The university had no real control over the app that represented it. The bottleneck was not the technology — it was the workflow behind it.

QenixLabs was brought in to remove the bottleneck — permanently.

What We Built

A Three-Part System

01

AUM Mobile App

React Native + Expo SDK 52. Dynamic content rendering, offline support, and native performance.

02

Custom CMS

Next.js 15 + shadcn/ui. A polished admin panel where Atharva's team controls every byte of content.

03

NestJS Backend

Split-surface API with JWT guards, Redis caching, BullMQ queues, and signed AWS assets.

Part 1 — Mobile

AUM App

Built on React Native with Expo SDK 52. A custom three-tab experience with a fluid Reanimated sliding indicator and Expo Router's typed file-based routing. Every screen renders from a dynamic content engine — no hardcoded layouts.

Push Notifications

Expo-powered alerts with deep-link routing straight to relevant screens.

Offline Resilience

React Query caching and Redux Toolkit persistence keep content visible on weak networks.

High-Performance Media

expo-image with memory + disk cache, expo-video with PiP, and signed CloudFront URLs.

Native Maps

Campus locations rendered with Google's satellite provider.

Markdown-Rich Content

Custom Markdown renderer for news, notices, and announcements without HTML.

Feedback Collection

CMS-configured surveys rendered as native screens, responses streamed to the backend.

AUM Mobile App screenshot
College Directory
Part 2 — CMS

The Bottleneck Disappears

Built on Next.js 15 with React 19, TypeScript, and shadcn/ui. Styled in the university's maroon palette with Inter and Libre Baskerville typography. Two roles — admin and editor — keep permissions clean.

College Management

Create, edit, upload banners, logos, carousel images. Toggle visibility per college.

Hierarchical Content

Tabs -> Sections -> Blocks. Drag-and-drop reordering with @hello-pangea/dnd.

Newsroom

Full Markdown editor with cover images and scheduling for articles.

Notices

Time-bound announcements with optional deep-link targets.

Results & Journeys

Exam results, alumni stories, and highlights with structured data.

Feedback Forms

Build custom questions, read responses inside the same panel.

Push Dispatch

Compose, target, and dispatch notifications via BullMQ with retry logic.

Device Preview

See changes on a real device frame before publishing.

Part 3 — Backend

A Clean Two-Surface API

NestJS 10 with a deliberately split surface. Public endpoints for the app. JWT-guarded endpoints for the CMS. Everything else runs behind the scenes.

/v1/public/*
Anonymous, read-only, consumed by the mobile app
/v1/cms/*
JWT-guarded, role-aware, every write operation
MongoDB Atlas
15+ schemas, soft deletes
Redis Cloud
Public read cache
BullMQ
Notification & image queues
AWS S3 + CloudFront
24h RSA-signed URLs
Helmet
Class Validator
Joi Env
Pino Logging
Sharp WebP
Signed URLs
How It Works

Editor to App in One Refresh

Editor
Atharva Team
CMS
Next.js 15
NestJS API
v1/public + v1/cms
AUM Mobile
Expo + RN
Student
Pull-to-Refresh
MongoDB
Content tree — 15+ schemas
Redis
Public read cache
BullMQ
Notifications + image jobs
AWS S3 + CloudFront
Signed media URLs
End-to-end latency = the time it takes a student to pull-to-refresh
The Result

Atharva Owns Its App Again

What used to take a back-and-forth with a developer — and often missed its window entirely — now happens in the time it takes to type a notice and click Publish.

Events go up before they happen. Results go up the day they're declared. New colleges, courses, and highlights are a CMS task, not a development task.

QenixLabs's role shifted from gatekeeper to partner: we maintain and evolve the platform, but the day-to-day life of the app belongs to Atharva. That is the bottleneck we removed.

Gallery

Screenshots

Atharva screenshot 1
1 / 4
Next Step

Have a Platform
to Rebuild?

We design systems that remove bottlenecks and put teams back in control.

Discuss Your Project