Victor Jeman Academy
Hackathon Prep8 min

Plan and Build

Plan a hackathon project, carry one idea through goal, features, concepts, and a small build order.

What You'll Learn

  • Understand why a quick plan beats jumping straight into code
  • Use the four planning passes: goal, features, concepts you know, build order
  • Break a project into small steps that each ship in 15 to 30 minutes

From Idea to Code

The pattern that breaks teams the most shows up at almost every hackathon. Someone has a great idea, opens an empty file, and starts typing def main(): two minutes in. By hour three, the file is 400 lines, nobody remembers what the project was supposed to do, and one teammate is quietly rewriting everything in a branch nobody pulled.

Picture a team building a small quiz app. They jump straight in, write a menu, scoring, and a leaderboard, all in one file, all at once. By hour eleven the scoring is reading from the wrong dictionary key and the leaderboard never shows anything, so they demo a static slide instead. It happens more often than you'd think.

So the rule is simple: don't jump straight into code. Plan first, even if it is a 5-minute scribble on paper.

Planning Steps

Now, planning sounds boring when you're hyped about the idea. But it earns its place: a plan is the cheapest way to find out an idea is too big before you waste an afternoon on it.

We'll carry one project through all four steps so you can see the same idea travel: Quiz Master, a terminal quiz with categories and a high-score file. Same project, four passes.

1. Define the Goal

One sentence. No more.

Quiz Master is a terminal quiz with three categories where the player answers ten questions and the top five scores get saved.

If you can't write that sentence, you don't have a project yet, you have a vibe. Sit with it five more minutes.

2. List the Main Features

Quiz Master, expanded:

  • Pick a category from a menu (Geography, Code Trivia, Movies)
  • Ten questions per round, one at a time
  • Score increments on correct answers
  • Show the score at the end
  • Save the top five scores to a file and show them at startup

That's it. Five features. Notice what is not on the list: difficulty levels, timer per question, multiplayer. Those are the things you add in hour ten if you have time. Right now, they are distractions.

3. Identify What You Learned

Map each feature to a Python concept you already know. For Quiz Master:

FeaturePython concept
Category menuList of strings, input(), if/elif
Questions per roundList of dictionaries (question, answer)
Score trackingInteger variable, increment in a loop
End-of-round displayprint() with an f-string
Top-five scoresSorted list, file read/write

If a row in this table makes you go "wait, how do you write to a file again?", that's the row you re-read the lesson on before the hackathon starts. Not after.

4. Break it Into Small Steps

Same project, smallest possible steps. Each step is something you can finish and run.

  1. Hardcode three questions in a list and print them one by one
  2. Read the player's answer with input() and compare
  3. Add a score counter that goes up on correct answers
  4. Wrap the round in a function play_round(category)
  5. Add the category menu before the round
  6. Add the second and third category
  7. Save the final score to scores.txt
  8. Read scores.txt at startup and print the top five

Eight steps. Each one ships in 15 to 30 minutes. After step 3 you already have a thing that works. That's the whole point. If hour ten goes sideways you demo step 5, not nothing.

Hackathon Tips

Skip the generic list. Here are three moves that matter most, weighted by how often they save the demo.

Ship the ugliest version first, then never break it. Get to a runnable script by hour two, even if it answers one hardcoded question. Commit it. From that moment, every change you make has to keep the script runnable. The teams that lose the demo are the ones that started a "big refactor" at hour nine.

At hour eight, freeze the feature list. Whatever isn't started, isn't shipping. (The classic mistake is a "nice little animation" added at hour ten that breaks the terminal on the judges' machine.) Spend the rest of the time on the demo script, the README, and the one bug you've been ignoring since hour four.

Ask for help before you're stuck, not after. If something has cost you 20 minutes with no progress, that's the signal. Walk to a mentor, paste the error, say "I tried X and Y". You get unstuck in five minutes instead of one hour. Nobody at a hackathon is judging you for asking, they're judging the team that refused to.

Project Examples

A few starting points if Quiz Master doesn't grab you. The first three are the safest picks, because they all fit the same shape: list of items, a loop, a file at the end.

  • Quiz Master: question-and-answer game with categories. The default pick because it exercises every concept from the course.
  • Digital Agenda: contacts with names and phone numbers, saved to a file. Boring on the surface, surprisingly satisfying to demo.
  • Guess the Word: a Wordle-style terminal game. The win condition is a single string compare and that makes the rest of the design easy to reason about.
  • Text Adventure Game: branching story with input(). Fun, but the branching gets out of hand fast. Cap yourself at three rooms.
  • Grade Calculator: averages and stats. Smallest scope on this list. Good if you want to spend more time on the demo polish than the logic.

Ready to Test Yourself?

Try the Final Challenge before the hackathon. It is a half-built Python program with the pieces missing in the same spots people skip when they plan badly: the file write, the menu loop, the score reset between rounds. If you can fill those in cold, the hackathon will feel a lot less scary.

When you ship something, even a tiny terminal toy, put the repo on GitHub and share it in the course channel. Seeing your own project run is the thing that makes it stick.

Test Your Knowledge

Check how well you understood the lesson with these 5 questions.

Question 1 of 5

What is the first step in planning a project?