The following points are distilled from my experience in attending hackathons so far. I hope this will be useful to those who are new to the format.
- What are some real problems you'd like to solve? For example, maybe transportation isn't as good in some parts. Or maybe the roads are not as predictable.
- Who are your target community? Assuming you're making software projects, there are people who you should be keeping in mind when designing.
- Context? When and where do you see people using this?
- Expertise? What kind of domain knowledge do you need? Can you get buy-ins from potential stakeholders? What about technical background?
- Brainstorm wide and as much as you can. Many teams will arrive at the same idea initially, but with enough iterations and external input, you'll come up with unique needs and solutions.
- Focus on one function and implement it really well. The rest can be placeholders, and doesn't have to work with real world data. The important part here is to demonstrate the potential, and polishing takes a long time. So focus on one function.