All projects

MindForge

Pitch an idea at a coding event and get a scored evaluation from Gemini almost at once, with a live leaderboard.

Kind
Web app
Year
2025
Recognition
90+ concurrent users · At an RVCE coding event
Built with
  • React
  • Vite
  • Tailwind CSS
  • FastAPI
  • Gemini 2.5 Flash
  • Firebase
  • 2 more

The question

How do you give a hundred people honest feedback on an idea in the time it takes to pitch it?

MindForge marks each pitch against the same rubric within seconds, and turns the marks into a leaderboard the room can watch.

Why it exists

At RVCE coding events, ideas arrive in bursts and scoring each by hand is slow. MindForge scores a pitch against a five-part rubric with Gemini and shows a live leaderboard.

How it works

From a pitch to a leaderboard

  1. 1

    Pitch

    A signed-in participant submits an idea of 50 to 2000 characters.

  2. 2

    Queue

    The pitch is queued and the form shows progress by polling for the result.

  3. 3

    Scoring

    Gemini scores five parts of the rubric, and the server clamps each score to 0 to 100 and adds them up.

  4. 4

    Publish

    The name, branch and score go on the public leaderboard, and the feedback goes to the participant.

Decisions

  • A submission is never lost

    If the model has no key, returns nothing or returns something unreadable, a fallback evaluation based on the pitch’s length and keywords is saved and labelled as a fallback.

  • The prompt is the rubric

    It states hard caps, for instance a pitch with no concrete prototype steps cannot score above 49 for relevance, so scoring stays consistent across hundreds of pitches.

  • The model’s answer is never taken as-is

    The scores are clamped to 0 to 100, unknown keys are dropped and the total is computed on the server.

  • Two kinds of record

    The public leaderboard entry holds only a name, branch and score, and the full evaluation lives in the participant’s own document.

Trade-offs and limits

  • Model calls run one at a time behind a lock, because the client library sets its key globally, and the queue lives in a single process.

Built with

Frameworks and libraries

  • React
  • Vite
  • Tailwind CSS
  • FastAPI

Data and storage

  • Firebase

AI and models

  • Gemini 2.5 Flash

Infrastructure and services

  • Vercel
  • Render