Inspiration

We wanted to turn the chaotic, funny, and surprisingly competitive world of university life into a game. Professors, course debates, Piazza posts, campus rumors, and class performance all felt like a perfect source for a playful battle system. The idea came from imagining a campus where each professor is a character, each course has its own personality, and students can recruit, battle, and strategize around academic identity.

Professor GO combines that fantasy with a more practical hackathon goal: build a full MVP that feels like a game, but is grounded in a believable student experience.

What it does

Professor GO is a campus-themed game prototype where players can:

  • create an account and log in
  • earn and spend tokens
  • recruit professors through a gacha-style system
  • view professor stats and rarity
  • answer coding questions to earn more tokens
  • build a roster and imagine future battle scenarios
  • explore a prototype experience that blends academics, gamification, and campus culture

The app also supports key systems such as:

  • player accounts and authenticated sessions
  • persistent local SQLite storage
  • token-based rewards
  • professor roster generation
  • question generation with Gemini API
  • future-ready hooks for battles, trading, and campus events

How we built it

We built the project as a Vite-powered frontend and a TypeScript backend API.

  • Frontend: React + Vite
  • Backend: Node.js + TypeScript + Express
  • Database: SQLite
  • Authentication: Better Auth
  • AI question generation: Gemini API
  • Styling: custom UI with a playful campus / battle-card aesthetic

The system is structured around a clear ownership model:

  • players have accounts and token balances
  • professors are stored in a shared pool
  • inventory tracks each player’s collected professors
  • token rewards and question answers are validated on the server

This keeps the project flexible enough to grow into more complex gameplay later.

Challenges we ran into

One of the biggest challenges was designing a system that felt like a real game without overbuilding too early. We had to balance:

  • a believable professor roster and gacha model
  • secure authentication with persistent sessions
  • token systems and reward logic
  • question generation that could work with or without AI
  • making the app feel cohesive while still keeping a clear MVP scope

We also had to keep the architecture manageable while avoiding the trap of building too much unproven logic at once.

Accomplishments that we're proud of

We’re especially proud of building a working prototype that includes:

  • functioning account creation and login
  • persistent user state
  • token economy and rewards flow
  • professor pool and inventory logic
  • coding question generation
  • a runnable Vite + backend setup
  • a clean project structure for future expansion

The app already feels like a game foundation rather than just a mockup, and that makes it easy to keep expanding.

What we learned

We learned that a strong MVP is about choosing the right layers to build first. Instead of jumping straight into a full battle system or a large multiplayer feature set, we focused on the foundational pieces:

  • game identity
  • account flow
  • backend logic
  • reward loop
  • player progression

This gave us a much clearer sense of how the rest of the game could be layered on top.

We also learned how valuable it is to combine a proper game loop with a strong thematic concept. Academic life, campus culture, and professor archetypes are inherently fun to turn into game mechanics.

What's next for Professor GO

Our next steps are to expand the prototype into a more complete gameplay loop:

  • real professor battle arena
  • level progression and stat rerolls
  • rare encounter events
  • campus map scenes with professor movement
  • betting and prediction-style mini-games
  • trading/exchange system between players
  • richer story and lore progression
  • more polished art direction and character presentation
Share this project:

Updates

Submission history