Ladies and gentlemen, feast your eyes on the most over-engineered bug-squashing simulator ever created by human hands. This project has more dependencies than a soap opera storyline and enough complexity to make a NASA engineer weep.
This is a "bug bounty hackathon" project that ironically has more bugs than it fixes. It's a game where you squash digital insects while the real bugs multiply exponentially in the codebase behind the scenes. Think whack-a-mole, but the moles are your fading hopes and dreams.
- ๐ Virtual Bug Extermination: Because squashing real bugs requires actual skill
- ๐งผ Bug Basher Arena Fix: The playfield now stretches to fill the window again so the critters actually show up
- ๐ Dashboard with Fancy Charts: D3.js charts now sport gradients, grids, and zoom
- ๐ Leaderboard System: Compete with yourself since you're probably the only user
- ๐จ Windows 95 UI: Powered by React95 components so every window, button, and menu looks like it came straight from 1995
- ๐งฑ Tailwind Detox: The entire interface now leans on React95 and styled-componentsโno utility classes in sight
- ๐ช Pixel-Perfect Window Controls: Title bars now rock the classic
_
,โก
, andX
glyphs straight out of Windows 95 - ๐ฑ๏ธ Authentic Desktop Shell: Draggable, resizable windows with minimize/maximize controls, a living taskbar, and a Start menu that launches every feature
- ๐๏ธ Zustand State Management: Because Redux wasn't complicated enough, we needed something "simpler"
- โก Blazing Fast Vite: The only thing fast about this project
- ๐ญ TypeScript: Added types everywhere except where they're actually needed
- ๐ฅ๏ธ Windows 95 Taskbar: Pixel-perfect Start button, beveled task list, and system tray clock straight from 1995
- ๐ Start Menu: Rebuilt with the teal sidebar, beveled casing, and Start button alignment from classic Windows 95 for quick navigation
- ๐๏ธ Desktop Shortcuts Everywhere: Every page now shows up on the desktop for quick double-click access
- ๐ Internet Explorer Shortcut: Launch a faux Windows 95 browser that beams you straight to techmap.dev without leaving the desktop nostalgia bubble
- ๐ Search & Filter: Hunt bugs and leaderboard entries like a pro
- โฐ PTO Rewards: Earn ridiculous amounts of time off for each bug you squash
- ๐งน Automatic Cleanup: Squashed bugs vanish on their own, only to respawn
- ๐ฎ Bug Forecast: Peer into tomorrow's infestation with predictive charts
- ๐งฎ Dashboard Helpers: Bounty totals and date formatting now live in a shared module
- ๐ซ Comical 404 Page: Getting lost has never been so entertaining
- ๐ฆ๏ธ Weather Forecast: Plan your bug hunts around the faux forecast
- ๐ Konami Code Dark Mode: Enter the secret code for a darker UI
- ๐ Real CVE Demo Data: Bug list now features recent vulnerabilities like PAN-OS File Peek (CVE-2025-0111).
- โ Coffee Overflow Bug: Demo data now includes a caffeinated crash
- ๐ฅ Fortune Cookie: Random words of wisdom on its own tab, now full width with subtle animations
- ๐คซ Quiet Mode: Ambient drones and bug-squash splats removed for a distraction-free experience, while the fortune cookie keeps chatting
- ๐งฉ Captcha Protection: Basic math challenge to keep bots at bay
- โ๏ธ Sign Up Form: Create your own bug-bashing persona
- ๐ Dependency Update: All packages updated to their latest versions
- ๐ Job Description Page: Read about the prestigious Bug Basher role
This project showcases the fine art of using 30 dependencies to accomplish what could be done with 3. We've got:
- React 19: For building a user interface that could've been static HTML
- TypeScript: Because JavaScript wasn't confusing enough
- D3.js: Nuclear-powered charting library for displaying 5 data points
- Zustand: State management for 3 variables that could've been
useState
- UUID: Industrial-strength ID generation for a client-side game
- Lucide Icons: 1000+ icons imported to use exactly 7
- React95: Authentic Windows 95 components without hand-rolled clones
git clone <this-repo>
cd bug-bounty-hackathon
npm install
npm run dev
Common commands:
npm run build # Create production build
npm test # Run tests
npm run lint # Lint code
npm run format # Format code
CI runs npm run lint:ci
so warnings won't crash the workflow.
npm test
uses Node's builtโin node:test
runner. The command runs Node with
coverage enabled:
node --experimental-transform-types \
--loader ./png-loader.js \
--experimental-test-coverage \
--test-coverage-include=src/components/** \
--test-coverage-include=src/routes/** \
--test
Coverage is limited to files in src/components
and src/routes
. Any .ts
,
.tsx
, .js
, or .jsx
file executed from those folders will appear in the
coverage summary. Results are saved to coverage.txt
and the Test workflow
uploads them as an artifact and comments a short summary on pull requests.
The test suite now includes coverage for every page and component. Coverage results are uploaded as an artifact in the Test workflow. The workflow also comments a short coverage summary on pull requests.
Prerequisites:
- Node.js 18+ (because we're cutting edge like that)
- 16GB of RAM (for the node_modules folder)
- A therapist on speed dial
- Low expectations
Installation Ritual:
# Clone this monument to over-engineering
git clone <this-repo>
cd bug-bounty-hackathon
# Install dependencies (grab a coffee, maybe two)
npm install
# Start the development server
npm run dev
# Watch in horror as your CPU fan spins up
Available Incantations:
npm run dev # Start development (prepare for frustration)
npm run build # Create production build (good luck)
npm run preview # Preview build (spoiler: it's broken)
npm run lint # Find 47 linting errors you'll ignore
npm test # Run the single test that actually works
npm run format # Rearrange deck chairs on the Titanic
src/
โโโ assets/ # 12 bug PNGs that total 2MB
โโโ components/ # 15 components that could be 3
โโโ lib/ # One utility function that could be inline
โโโ mock/ # Fake data more realistic than our deadlines
โโโ routes/ # 5 pages for a single-page concept
โโโ store.ts # Global state for local variables
โโโ types/ # TypeScript definitions for obvious things
โโโ utils/ # Utilities that are less useful than comments
โโโ vite-env.d.ts # Types for things that don't need types
See docs/NAMING_CONVENTIONS.md for the complete guide.
- Folders: lower-case names, hyphenated when needed.
- Component files:
PascalCase.tsx
. - Utilities: lower-case with optional hyphens, e.g.,
utils.ts
. - Test files: same base name plus
.test.ts
. - Components: export default components with names matching their file.
- Variables/functions: camelCase.
- Constants:
UPPER_SNAKE_CASE
. - Types/interfaces: PascalCase.
๐ Bug Component Showcase:
BugArea.tsx
: Where bugs live rent-freeBugCard.tsx
: Instagram for insectsBugCrawler.tsx
: AI pathfinding for 2D spritesBugCrawler.tsx
now updates positions using frame delta for smoother motionbug-priority-ml.ts
: Logistic regression that pretends to rank urgencyAimCursor.tsx
: Mouse cursor replacement nobody asked forBugTrendsChart.tsx
: Gradient-filled line chart with zoomable timelinesTaskbar.tsx
: Windows 95 clock for peak nostalgiaStartMenu.tsx
: Clickable start button menuDesktop.tsx
&WindowManagerContext.tsx
: Full Win95 window manager with icons, z-order, and taskbar integrationNotFound.tsx
: A 404 page with jokes for when routing fails
๐ Dashboard Extravaganza:
- Real-time metrics for imaginary users
- Charts that update faster than your actual productivity
- Progress bars that go backwards
- Search field and priority filters so you can pretend to triage
๐ Leaderboard Excellence:
- Ranks users who don't exist
- Score persistence not yet implemented
- Displays achievements for playing alone
- Searchable table to find your imaginary rivals
- Helper functions exported for easier testing
- Pages wrapped in
React.memo
for smoother rendering
- Initial bundle size: Heavier than your student loan debt
- Time to interactive: Longer than your attention span
- Lighthouse score: We don't talk about the Lighthouse score
- Memory usage: Chrome tab killer
This project is perfect as-is. Adding more code would be like putting a hat on a hat on a hat. However, if you insist on making it worse:
- Fork the repo
- Add more dependencies
- Create unnecessary abstractions
- Submit a PR with 200+ lines to change a single boolean
- Watch the maintainers cry
This project is licensed under the "Use At Your Own Risk" license. Side effects may include:
- Spontaneous questioning of life choices
- Sudden urge to learn backend development
- Chronic dependency addiction
- Existential dread about modern web development
This project proves that with enough determination, caffeine, and a complete disregard for best practices, you can turn a simple idea into a beautiful, complex nightmare. It's not the hero we needed, but it's the hero we deserved.
Built with โค๏ธ, poor decisions, and way too much free time.
"Why use one tool when you can use twenty?" - The Dev Team, probably