Inspiration

Every campus has a constant stream of tiny, low-stakes drama happening in the background.

Dietrick's line is out the door again. The bus app says the bus is "2 minutes away" for the third time. Newman Library's fourth floor becomes a battlefield during finals week. Deet's is somehow closed exactly when everyone wants coffee.

It's the kind of information you only know if you're actually on campus — and it's rarely reported anywhere.

We wanted to change that.

Traditional campus dashboards are great at telling you what is happening, but they aren't particularly entertaining. Tabloid columnists, on the other hand, have spent decades turning completely mundane events into stories by giving them characters, rivalries, personalities, and running jokes.

So we asked:

What if Virginia Tech's live campus data had its own gossip columnist?

That idea became Campus Confidential — an AI-powered campus gossip platform that takes real-time Virginia Tech data and transforms it into entertaining, interactive "breaking news."

The data is real.
The drama is AI-generated.
The personalities are fictional.
And now, you can talk to the gossip columnist directly.


What it does

Campus Confidential is an AI gossip columnist for Virginia Tech that turns live campus conditions into an automatically updating tabloid-style news feed.

The application continuously polls real public campus data from multiple sources, including:

  • Virginia Tech dining hall hours
  • Live Blacksburg Transit bus positions
  • National Weather Service conditions
  • Newman Library study room availability

When something meaningfully changes, that information is passed to Google's Gemini API along with a cast of fictional campus personalities.

Each location or service has its own character, personality, relationships, grudges, and catchphrases. Characters include places such as Dietrick, Owens, Hokie Grill, Deet's, DX, and others.

Gemini then turns the underlying data into a short tabloid-style headline and story.

For example, instead of presenting raw information like:

"Bus Route X is delayed."

Campus Confidential can turn the event into something more like:

BUS ROUTE X ARRIVES 12 MINUTES LATE — CLAIMS IT 'NEEDED SPACE'

The AI also receives a rolling window of previous headlines, allowing it to reference earlier events and create continuity between stories.

This means the feed isn't just a collection of unrelated AI-generated jokes. Over time, it develops its own little universe of recurring characters, rivalries, and campus "lore."


The Tip Line

We wanted Campus Confidential to be more than something students simply read.

So we built The Tip Line — an interactive AI campus insider that lets students ask questions about what is happening around campus right now.

Instead of scrolling through the feed and looking for information, students can simply ask.

The Tip Line currently supports questions such as:

  • "What study rooms are open?"
  • "What's open to eat?"
  • "How are the buses?"
  • "What's the weather?"

The Tip Line connects directly to the same live data sources powering Campus Confidential.

For example, when a student asks:

"Open study rooms?"

the system can retrieve the current library availability and respond with both the factual information and the personality of the Campus Confidential gossip columnist.

Instead of simply returning:

Room 418A is available.

the Tip Line can turn that information into:

"Drop everything, drama lovers, because Room 418A is currently sitting all alone and desperate for your attention."

This gives students a natural way to interact with the same real-time campus data that powers the main news feed.

From dashboard to conversation

The Tip Line represents an important part of our vision for Campus Confidential:

Don't make students learn how to use another campus dashboard. Let them just ask.

The underlying system still retrieves structured, real-world data, but Gemini transforms that information into a conversational response while maintaining the personality and tone of Campus Confidential.

The result is a combination of:

Real-time data + AI reasoning + conversational interface + campus personality.


How we built it

Backend

The backend is built with Node.js and Express.

A node-cron scheduler runs every three minutes and checks each of our live data sources. The system compares the newest data against previously stored snapshots before deciding whether an event is actually worth reporting.

This was important because continuously generating AI content would quickly produce repetitive and meaningless stories.

The same backend also exposes endpoints used by The Tip Line, allowing the conversational interface to query current campus information.

Data sources

We connected Campus Confidential to four different real-world data sources:

  • National Weather Service API for current weather conditions
  • Virginia Tech dining data for dining hall hours and availability
  • Blacksburg Transit live data for bus positions
  • Virginia Tech Library data for Newman study room availability

Two of these sources presented an interesting challenge: they did not expose a straightforward, documented API.

We discovered the Virginia Tech dining data by inspecting network requests through Chrome DevTools and identifying the JSON endpoint being used by the existing website.

We used a similar process to understand the live data powering Blacksburg Transit's public bus map.

Rather than scraping rendered webpages, we were able to work with the underlying requests that the public-facing applications themselves were making.

Database

We use MongoDB Atlas for persistence.

The database stores:

  • Raw data snapshots
  • Historical changes
  • Generated headlines
  • Previous stories used for narrative continuity

Keeping the raw snapshots was particularly useful because it allowed us to reason about changes over time, rather than only looking at the current state.

AI layer

Google's Gemini API powers both the gossip columnist and The Tip Line.

The AI receives several pieces of context:

  1. The newly detected campus event or user question
  2. The relevant campus character/persona
  3. Personality traits and relationships
  4. Examples of the desired writing style
  5. A rolling window of recent headlines
  6. Relevant real-time campus data

For the news feed, Gemini turns detected changes into tabloid-style stories.

For The Tip Line, Gemini uses the user's question to determine which campus information is relevant, retrieves the corresponding live data, and presents the result in the voice of the Campus Confidential universe.

This allows the same AI system to support both automated storytelling and interactive conversations.

Frontend

The frontend uses plain:

  • HTML
  • CSS
  • JavaScript

We intentionally kept the frontend lightweight instead of introducing a large framework.

The main feed polls our API every 15 seconds and updates when new stories become available.

The Tip Line is presented as a conversational interface, with quick-action buttons for common questions such as study rooms, dining, buses, and weather.

This makes it possible for students to get useful information immediately without navigating through multiple campus websites.

Deployment

The application is deployed using Render.

One interesting deployment challenge was that our background poller and web server run inside the same application process.

Render's free tier can spin down inactive services, which would also stop our background polling.

To keep the application alive and allow the poller to continue running, we added an external cron-based keep-alive ping.


The biggest technical challenge: deciding what is actually news

One of the first versions of Campus Confidential had a major problem.

Every three minutes, it generated a new story.

Even when absolutely nothing interesting had happened.

A bus could remain at the same location and capacity for 15 minutes, and we would get three different headlines about it.

That isn't breaking news.

It's spam.

We solved this by building a signature-based deduplication system.

For each data source, we create a representation of the meaningful state of the data and compare it against the previous snapshot.

Gemini is only called when the underlying information has changed enough to justify a new story.

This dramatically improved the quality of the feed and also reduced unnecessary API usage.

The result is a simple rule:

No change, no headline.


Another challenge: turning messy data into characters

Real-world APIs don't always give you data in the form you want.

For example, the Virginia Tech dining data gives us an aggregate list of campus dining locations rather than a neat, individual data stream for every fictional character we wanted to create.

Instead of treating this as a limitation, we built a system that rotates through relevant open dining locations during polling cycles and maps each location to its own persona.

That allows the AI layer to work with structured information while still giving each location its own identity.

This separation between real data and fictional narrative became an important architectural principle:

The data determines what happened.
The AI determines how the story is told.

The same principle applies to The Tip Line:

The live campus data determines the answer.
The AI determines how the answer is delivered.


Building continuity into AI-generated stories

Another challenge was making the AI feel like a recurring columnist rather than a random headline generator.

A single AI-generated joke is easy.

Getting an AI to maintain a consistent cast of characters and reference previous events is much harder.

We addressed this using a combination of:

  • Persona definitions
  • Character relationships
  • Few-shot examples
  • Structured prompts
  • Recent headline history

The AI receives previous stories as context, allowing it to make callbacks to earlier events.

Over time, this creates recurring storylines — a bus route can have a rivalry with another route, a dining hall can complain about another location, and a library floor can develop its own reputation.

The goal wasn't simply to generate funny text.

It was to make the campus feel like it had its own fictional tabloid universe.

The Tip Line extends this idea from passive storytelling to active conversation.

Students aren't just reading what the gossip columnist has to say — they can now ask the columnist questions directly.


Operational challenges

Building the project during a hackathon also introduced some very real production problems.

At one point, we realized that API credentials had been exposed during development.

Instead of ignoring the issue, we immediately rotated the credentials and moved the deployment to use environment variables and Render's Environment Group system.

We also discovered that our particular deployment setup did not support the automatic deployment workflow we initially expected, so we had to adapt our deployment process and manually redeploy after configuration changes.

That experience reinforced something that is easy to overlook during a hackathon:

Getting a project to work locally is only half the problem. Getting it to stay working in production is a completely different challenge.


Architecture

At a high level, Campus Confidential follows this pipeline:

Live Campus Data

→ Poll every 3 minutes

→ Compare against previous snapshot

→ Detect meaningful change

→ Identify relevant campus character

→ Send event + persona + story history to Gemini

→ Generate headline and story

→ Store in MongoDB

→ Serve through Express API

→ Frontend refreshes automatically

For The Tip Line, the flow becomes:

Student Question

→ Identify requested campus information

→ Fetch relevant live data

→ Provide data + persona context to Gemini

→ Generate conversational response

→ Return answer to student

This allows both experiences to share the same underlying real-time data infrastructure.


Accomplishments we're proud of

We're especially proud that the project is built around real, live data rather than mocked events.

Every story begins with something that is actually happening on or around the Virginia Tech campus.

We also managed to combine four very different types of data — transportation, dining, weather, and library availability — into one coherent experience.

Beyond the automated feed, we built The Tip Line to make that same information directly accessible through conversation.

A student doesn't need to know which website contains library availability, where to find the bus map, or which dining page lists hours.

They can simply ask:

"What's open?"

or

"How are the buses?"

and get an answer through the Campus Confidential interface.

Most importantly, we took the project from an empty repository to a publicly deployed, continuously updating application during a single hackathon.

The result feels less like a traditional data dashboard and more like a living campus publication that you can actually talk to.


What we learned

Reverse-engineering real-world APIs

Not every useful API is documented.

We learned how to use browser developer tools, inspect network requests, identify underlying JSON endpoints, and understand the requests powering public-facing applications.

Prompt engineering is more than asking for good writing

We learned that consistent AI personalities require much more than a single system prompt.

Persona definitions, few-shot examples, structured context, character relationships, and previous outputs all contribute to creating a consistent voice.

State matters

AI-generated content becomes much more interesting when the model has memory of what happened previously.

Passing recent headlines into the generation process allowed us to create callbacks and recurring storylines instead of isolated jokes.

AI interfaces should still be grounded in real data

The Tip Line taught us that an AI interface becomes much more useful when it is connected to reliable, current information.

Instead of asking Gemini to guess whether a study room is available or whether a dining hall is open, we give it the actual live data and let the AI focus on communicating the answer.

Production is part of the project

Deployment introduced problems that never appeared locally: sleeping services, environment variables, background workers, deployment behavior, and credential management.

Getting the application running in production taught us just as much as building the application itself.

Credential hygiene matters

We learned firsthand why secrets should never live in source code or exposed configuration, and how important it is to rotate credentials immediately if they may have been compromised.


What's next for Campus Confidential?

There are a lot of directions we could take the project.

More campus data

We want to connect additional sources such as:

  • Dining wait times
  • Parking availability
  • Gym occupancy
  • Campus events
  • More transit information
  • Additional library data

This would give the AI a much larger picture of what is happening across campus.

A smarter Tip Line

We want The Tip Line to eventually handle more complex questions that combine multiple live data sources.

For example:

"Where can I study right now, and what's the closest place to get coffee?"

or:

"Is it worth taking the bus to campus right now?"

The goal is to turn The Tip Line into a true conversational interface for campus information while keeping its distinctive gossip-column personality.

Semester-long storylines

Right now, the AI has a rolling window of recent stories.

The next step would be persistent character memory that lasts throughout an entire semester.

Characters could remember major events, develop longer-running rivalries, form alliances, and reference stories from weeks earlier.

Breaking-news notifications

Instead of requiring users to open the website, genuinely significant events could trigger push notifications.

The goal would be to make notifications selective enough that receiving one actually feels like breaking news.

Campus social buzz

We are also interested in carefully incorporating public campus social signals.

This would need to be designed with privacy and safety in mind, but could allow Campus Confidential to understand not only what is happening physically around campus, but also what students are talking about.

A larger campus universe

Ultimately, we'd love to expand Campus Confidential beyond a single feed and turn it into a persistent, AI-generated campus publication — complete with:

  • Recurring characters
  • Evolving storylines
  • Interactive conversations
  • Live campus information
  • Searchable archives
  • Push notifications
  • Semester-long campus lore

The Tip Line would become the conversational front door to that universe.


Why Campus Confidential?

Most applications built around live campus data try to answer:

"What's happening right now?"

Campus Confidential asks a slightly different question:

"What's happening right now, and what would the campus gossip columnist say about it?"

And with The Tip Line, students can take it one step further:

"Hey, gossip columnist — what's happening right now?"

Underneath the jokes is a real-time data pipeline, change detection system, database, AI generation layer, persona engine, conversational interface, and production deployment.

We built something that takes boring, structured information and turns it into something students might actually want to check — and now, something they can actually talk to.

The campus is already full of drama. We just gave it a newspaper, a gossip columnist, and a tip line.

Built With

Share this project:

Updates

Submission history