Welcome to Batch 5 of the CampusMart Bug Bounty Program! This batch focuses on Reliability, Polish & SEO, helping you master performance optimization, accessibility standards, security hardening, and final user experience touches.
- About Batch 5
- Prerequisites
- Getting Started
- Bug Overview
- Bug Fixing Workflow
- Testing & Verification
- Submission Guidelines
- Resources
Focus Area: Reliability, Polish, SEO & Security
Total Bugs: 15 issues
Difficulty: Intermediate to Advanced
This batch contains bugs related to:
- Performance - Core Web Vitals (FCP), lazy loading, and rendering optimization
- SEO & Meta Tags - Social previews, Open Graph tags, and indexing
- Accessibility (a11y) - Screen reader support, semantic HTML, and keyboard navigation
- Security - XSS prevention and input sanitization
- User Experience - Micro-interactions (toasts, menus), layout stability, and visual hierarchy
Before starting Batch 5, ensure you have:
- ✅ Completed previous batches (or are comfortable with the codebase)
- ✅ Node.js (v18+) and npm installed
- ✅ MongoDB running (local or Atlas)
- ✅ Basic understanding of:
- Next.js App Router & Metadata API
- Web Performance (Lighthouse/Core Web Vitals)
- Web Accessibility Guidelines (WCAG)
- React Hooks (
useEffect,useState)
# Navigate to project directory
cd Bug-Bounty
# Install dependencies
npm install
# Run the development server
npm run devBUGS.md- Complete list of all 15 bugs with detailed reproduction steps.BUG_FIX_GUIDE.md- Technical hints and solution guides (use if stuck).
- Recommended: Start with Medium Priority UI bugs to get familiar with the code.
- Advanced: Tackle the High Priority Security and Performance bugs first if you have experience.
- Bug #9: [Security] Sanitize user input in "Description" field (Critical XSS Vulnerability)
- Bug #1: [SEO] Add dynamic Open Graph meta tags for Product pages
- Bug #2: [Performance] Reduce First Contentful Paint (FCP) - Fix eager loading
- Bug #3: [A11y] Fix Accessibility: Missing
alttags on images - Bug #13: [Link Rot] Fix broken links in "Terms of Service" page
- Bug #8: [Hydration] Fix "Hydration Mismatch" errors in console
- Bug #5: [UX] Mobile Menu toggle does not close when clicking outside
- Bug #7: [UX] Implement "Toast" notifications globally (replace
alert()) - Bug #10: [UI] Footer overlaps content on short pages
- Bug #4: [UX] Add "Skeleton Loaders" on Dashboard (Fix layout shift)
- Bug #6: [Refactor] Replace hardcoded strings with i18n keys
- Bug #14: [PWA] Add favicon and app manifest
- Bug #11: [UX] Add a "Back to Top" button on long pages
- Bug #12: [Design] Improve typography hierarchy on Landing page
- Bug #15: [Chore] Run linter (ESLint) and fix style issues
Open BUGS.md. Each bug includes:
- Category & Severity
- Description & Expected Behavior
- Files involved
- Impact Analysis
- Follow the "Steps to Reproduce" exactly.
- Observe the issue in your local environment.
- Use Chrome DevTools (Console, Network, Elements) to inspect.
Create a new branch for your fix:
git checkout -b fix/batch5-bug-<number>-<description>
# Example: git checkout -b fix/batch5-bug-9-xss-fixMake your changes, save, and verify.
- ✅ Bug no longer occurs.
- ✅ No console errors (especially for Bug #8).
- ✅ Performance score improved (for Bug #2).
- ✅ Security exploit fails (for Bug #9).
git add .
git commit -m "Fix Batch 5 Bug #<number>: <Description>"- Device Testing: Check on Mobile (Responsive mode) for Menu (#5) and PWA (#14) bugs.
- Browser Testing: Verify Layout (#10) and Hydration (#8) across Chrome/Firefox.
- Audit Tools:
- Run Lighthouse for Performance (#2) and SEO (#1).
- Use Wave or Axe DevTools for Accessibility (#3).
- XSS (#9): Try injecting
<script>alert('xss')</script>in the description and ensure it renders as text or is stripped. - SEO (#1): Use a tool like
metatags.ioor inspect<head>to seeog:image. - Links (#13): Click every single link in the Footer and Terms page.
Create a Pull Request with:
- Title: Batch 5 - Fix Bug #:
- Description:
- Bug Fixed: (e.g., Bug #9 XSS Validity)
- Solution: Brief technical explanation (e.g., "Used
dompurifyto sanitize input"). - Evidence: Screenshots of the fix or Lighthouse scores.
- Documentation:
- Tools:
- Security First: Always sanitize user input. Never trust data from the client.
- Performance: Images are the biggest drag on FCP. Load them lazily unless they are above the fold.
- Clean Code: Use constants for strings (#6) and keep components small.
- Mobile First: Always test the mobile menu and layout on small screens.
You've successfully completed Batch 5 when:
- ✅ All 15 bugs are resolved.
- ✅ Lighthouse Performance score is green (>90).
- ✅ No "hydration mismatch" warnings in the console.
- ✅ The app is installable (PWA).
Good luck with Batch 5! Let's make this app production-ready! 🚀✨
Last Updated: January 2026
Version: 1.0.0
Batch: 5 (Reliability & Polish)