Skip to content

Typefacers/bug

Repository files navigation

๐Ÿž Bug Bounty Hackathon: Where Dreams Go to Debug

Version Build Status Code Quality License

Vite React D3.js Zustand TypeScript

ESLint Node.js Prettier

Bundle Size Dependencies Technical Debt Bugs Fixed Dev Dependencies Coffee Required

Meme Status Windows 95 Nostalgia Deployed on Netlify


๐ŸŽญ Welcome to the Greatest Comedy in Software Development

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.

๐Ÿคก What Is This Magnificent Disaster?

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.

๐ŸŽช Features That Will Blow Your Mind (And Your Bundle Size)

  • ๐Ÿ› 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 _, โ–ก, and X 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

๐ŸŽช The Technology Circus

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

๐Ÿš€ Quick Start

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.

๐Ÿงช Testing (Hold the Jest)

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.

๐ŸŽญ Getting Started (Abandon Hope, All Ye Who Enter Here)

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

๐ŸŽจ Architecture (A Beautiful Disaster)

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

Naming Conventions

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.

๐ŸŽช The Comedy Special Features

๐Ÿ› Bug Component Showcase:

  • BugArea.tsx: Where bugs live rent-free
  • BugCard.tsx: Instagram for insects
  • BugCrawler.tsx: AI pathfinding for 2D sprites
  • BugCrawler.tsx now updates positions using frame delta for smoother motion
  • bug-priority-ml.ts: Logistic regression that pretends to rank urgency
  • AimCursor.tsx: Mouse cursor replacement nobody asked for
  • BugTrendsChart.tsx: Gradient-filled line chart with zoomable timelines
  • Taskbar.tsx: Windows 95 clock for peak nostalgia
  • StartMenu.tsx: Clickable start button menu
  • Desktop.tsx & WindowManagerContext.tsx: Full Win95 window manager with icons, z-order, and taskbar integration
  • NotFound.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

๐ŸŽญ Performance Notes

  • 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

๐Ÿคน Contributing (Please Don't)

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:

  1. Fork the repo
  2. Add more dependencies
  3. Create unnecessary abstractions
  4. Submit a PR with 200+ lines to change a single boolean
  5. Watch the maintainers cry

๐ŸŽช License (Buyer Beware)

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

๐ŸŽญ Final Words

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

About

Squash bugs as you fix issues. Track progress and claim bounties.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 6