Inspiration
I keep losing time on hackathon rules pages. Age limits, team size, repo rules and the deadline in some other timezone are all buried in paragraphs. I wanted a checklist instead.
What it does
Paste a rules URL or the raw rules text. RuleCheck pulls out eligibility (age, student status, country, team size, solo), the ship list (video length, repo, license, deployed link), whether existing code is allowed, and the deadline converted to IST with a countdown. Enter your age, country and student status and it gives a pass or fail. The profile stays in your browser, no account.
How we built it
Next.js, React, Tailwind and shadcn/ui, with Vitest for tests. A rules engine does the reading. If you set an API key for any OpenAI-compatible endpoint, a model sits in front of it, and if that call fails the rules engine result still shows. The deadline math runs in the repo, not in the model.
Challenges
Rules pages are messy, so I pinned the parsing in the rules engine and let the model only add to it. Timezones were the other pain. The tests cover cases like 26 Oct 2026, 5:00 PM EDT turning into 27 Oct 2026, 2:30 AM IST. I also had to block private URLs and strip HTML before parsing.
Accomplishments that we're proud of
It works with no API key at all, so the demo never depends on a model being up. Tests cover deadline conversion, both sample rule sets, profile pass and fail, the no-key path, model merge and fallback, and the private URL block.
What we learned
Keep the deterministic parts deterministic. Letting the model assist instead of decide made the app more reliable and easier to test.
What's next
Handle more rules page layouts, add more profile fields like prize eligibility by region, and save a list of checked hackathons locally.
Built With
- nextjs
- openai-api
- react
- shadcn-ui
- tailwindcss
- typescript
- vercel
- vitest
Log in or sign up for Devpost to join the conversation.