# One app for daily campus life

OneIITP · Product Lead and Designer

Jun 2024 - Present

OneIITP is the official app for students at IIT Patna. It handles the everyday things: bus timings, the QR gate pass, attendance, and a growing set of campus utilities.

I've worked on it since June 2024, first as lead designer and maintainer, now as product lead. I ran usability testing with 200+ students, and over two years I've owned 21 releases for more than 1,000 monthly users, and it holds a 4.8 rating on the Play Store.

## A few moments a day

A campus app competes with the class group chat and with asking a friend. Neither costs anything to open. So the app has to be quicker than asking, for something you need today, or nobody opens it twice.

That's why I think of OneIITP as a few daily moments rather than a list of features. Each one happens to almost every student on most days, usually in a hurry.

**The day OneIITP is built around**

## Installed, then ignored

When I took it over, the first version was live on both stores and students still weren't using it. So before writing a single requirement, we sat down with the student developer who had maintained it and asked why, again and again, until the answers stopped being symptoms.

**One complaint, followed down to its cause**

The same chain ran under the timetable, which students had to type in class by class, and under the gate pass, which nagged for a QR code on every open.

The interview gave us four root causes: a shaky core (crashes, lag and an update prompt for updates that didn't exist), data nobody could trust, too much manual work, and no clear reason to open the app over ERP or WhatsApp.

None of those is fixed by a new feature. So the second version aimed for a minimum viable experience instead of a minimum viable product: fix what was already there until it was fast and dependable, then add to it.

**What "dependable" had to mean, as targets**

| | |
|---|---|
| Crash-free sessions | over 99.7% |
| New users back in week 1 | over 50% |
| Back in week 4 | over 30% |

_Cold start had to land under 1.5 seconds on the slowest tenth of phones, and the store rating had to stay above 4.3._

_Source: the OneIITP PRD, v2.1_

## One number for "useful"

Downloads and opens were the wrong thing to count, because the app was already being opened and closed. The north star in the PRD counts weekly active utility users: people who open the app and finish at least one real task in a week.

**What counts as a real task**

Weekly active utility users

- **Timetable**viewed, pulled from ERP

- **Bus**checked, with a fresh timestamp

- **Report**a bug or a harassment report sent

- **Utilities**lost and found, buy and sell, cab share

The target was to double it within six months of the stable release. It's a harder number to move than daily opens, and that's the reason to pick it. A student who opens the app and leaves without finishing anything doesn't count.

## Trust before precision

Everyone wanted live GPS on the buses. It needed hardware on every bus, a deal with the transport office and someone to run it, so we moved it down to a could-have. What students were actually missing was a timetable they could believe.

So the bus timings moved into one Airtable base that STC and the transport office can edit, the app reads from it, and every schedule shows when it was last updated. A timing that says how old it is earns more trust than a live dot that is sometimes wrong. The requirement's own test was that complaints about wrong bus times drop by more than 90%.

## The gate and the queue

The queues came from the two flows everyone goes through every day: the gate pass and attendance. I mapped both step by step, found where people were waiting on each other, and redesigned around that, which took the wait from about 10 minutes to under 3.

**Waiting in the campus queue, in minutes**

| | |
|---|---|
| Before | about 10 |
| After | under 3 |

The gate pass moved into your profile, where tapping it opens the code big and bright for the scanner. Onboarding asks for the QR once, and the reminder that used to appear on every single open is gone. It now shows up only where it matters, when you go to use the pass.

Attendance used to be a roll call. In a 300-student lecture, that took about 15 minutes. Now a class QR marks you present, and you can still change any session by hand, for a leave the scan couldn't know about.

**What a roll call costs**

At about 3 seconds a name, the cost grows with the class, and every student in the room pays it.

## Where each tile sits

The home grid looks like a list of shortcuts, but where each tile sits is a product decision. Tap any tile to see why it's there.

**The home grid, tile by tile**

## Safety, one thumb away

The second version added a way to report harassment: a short form that goes only to the designated authority, with a toggle to stay anonymous and a helpline button beside it. The emergency tile works in two ways.

**One button, two speeds**

We flagged that a double tap can go off by accident, and noted a long press as the safer option to test.

Features like these need sign-off from people outside the team: the Dean of Student Affairs for the reporting workflow, security for the emergency number, and the IT department for ERP access. The PRD names who drives, who approves and who is consulted for each, so nothing waits on a question nobody owns.

## Shipping it without breaking it

Twenty-one releases is twenty-one chances to break attendance halfway through a semester. So nothing goes to everyone at once.

**How a release reaches every student**

New integrations ship behind feature flags, so a bad one can be switched off without a new build.

The app runs on React Native. Student teams turn over every year, which is the biggest risk in the whole project, so the PRD asks for things that are boring on purpose: documentation, code reviews, CI, and a codebase that a second-year can pick up within a week or so.

**From the PRD: the wireframes behind the second version**

The home grid, ordered on purpose. Attendance sits top centre, emergency top right where a right thumb lands, and the three new utilities fill the second row.

Bus timings from one Airtable base, with a "Last Updated" stamp, instead of a hardcoded timetable.

Attendance today and as proposed: a QR scan marks you present, and you can still override it.

The gate pass moves into your profile, big and bright, with a toggle for notifications.

Onboarding that shows its progress and asks for the gate pass QR once, instead of on every open.

Library: books issued, fines and due dates.

Report Harassment, with an anonymity toggle and a helpline one tap away.

The emergency button. One tap opens the safety screen; a double tap dials campus security.

The PRD runs to 51 pages, written by four of us. Tap any screen to see it full size.

## Next bets

The app already knows the bus timetable, each student's attendance and the events calendar. I'd put a small assistant on top that answers what students actually ask, like "when's the next bus" or "how many classes can I still miss". It would answer from the app's own data, and say so when the data doesn't have the answer. An assistant that makes up a bus time is worse than none.

I'd test it the way we tested judges at [IBY](../writing/llm-judges.md): collect a few hundred real questions, write the right answers by hand, and don't ship until it gets them right.

The other is for professors. Attendance data can already show odd patterns, like one phone marking two students present. A quiet flag after class would do more against proxies than any rule in the app.

[Play Store](https://play.google.com/store/apps/details?id=com.oneiitp.app) [PRD](https://drive.google.com/file/d/1gwHZCH8SHgCfA1EQ3wI4nkXzI2_pRN5H/view?usp=sharing) [Figma](https://www.figma.com/design/oLE8u5upgTi2IzDYelvk6y/OneStop-IITP--Copy-?node-id=1-6&t=CDrNXEk6yhqjGp5V-1) [Wireframes](https://whimsical.com/all-wireframes-combined-3oqjrr8tzuLW8RtNY3gQ8D)
