A web application for discovering and supporting local businesses in your community. Built for the FBLA 2025-2026 Coding & Programming competition.
- ✅ Sort businesses by category - Filter businesses by Food, Retail, or Services
- ✅ Leave reviews or ratings - Submit reviews with 1-5 star ratings
- ✅ Sort businesses by reviews or ratings - Multiple sorting options available
- ✅ Save/bookmark favorite businesses - Add businesses to favorites list
- ✅ Display special deals or coupons - View active deals for each business
- ✅ Bot verification - Math verification prevents automated submissions
- Interactive Help Menu - Searchable Q&A with feature explanations and keyboard shortcuts
- Report generation with filtering and export (TXT/CSV)
- Responsive design for mobile and desktop
- Accessibility features (keyboard navigation, ARIA labels, screen reader support)
- Offline functionality (works without internet)
- Data persistence using localStorage
- Frontend: React.js with TypeScript
- Styling: CSS Modules
- Build Tool: Vite
- Routing: React Router
- Data Storage: localStorage (standalone, no backend required)
- Node.js (v16 or higher)
- npm or yarn
- Install dependencies:
npm install- Start the development server:
npm run dev- Open your browser to
http://localhost:5173
npm run buildThe built files will be in the dist directory.
business-boost/
├── public/
│ └── seed-data.json # Initial business data
├── src/
│ ├── components/ # React components
│ │ ├── BusinessCard.tsx
│ │ ├── BusinessDetail.tsx
│ │ ├── ReviewForm.tsx
│ │ ├── ReviewList.tsx
│ │ ├── DealCard.tsx
│ │ ├── CategoryFilter.tsx
│ │ ├── SortControls.tsx
│ │ ├── FavoritesButton.tsx
│ │ ├── VerificationModal.tsx
│ │ ├── Navigation.tsx
│ │ ├── Header.tsx
│ │ └── HelpMenu.tsx
│ ├── pages/ # Page components
│ │ ├── HomePage.tsx
│ │ ├── BusinessDetailPage.tsx
│ │ ├── FavoritesPage.tsx
│ │ └── ReportsPage.tsx
│ ├── services/ # Business logic
│ │ ├── storageService.ts
│ │ ├── businessService.ts
│ │ └── reportService.ts
│ ├── utils/ # Utility functions
│ │ ├── validation.ts
│ │ ├── verification.ts
│ │ └── constants.ts
│ ├── types/ # TypeScript types
│ │ └── index.ts
│ ├── styles/ # CSS modules
│ │ └── App.module.css
│ ├── App.tsx
│ └── main.tsx
└── package.json
- Navigate to the home page to see all businesses
- Use category filters (Food, Retail, Services) to filter results
- Use the sort dropdown to sort by rating, reviews, or name
- Click on any business card to view full details
- See business information, active deals, and reviews
- Add the business to your favorites
- Navigate to a business detail page
- Fill out the review form with:
- Your name
- Star rating (1-5)
- Review comment (minimum 10 characters)
- Click "Submit Review"
- Complete the math verification to prevent bots
- Your review will be saved and displayed
- Click the "Add to Favorites" button on any business detail page
- View all favorites on the Favorites page
- Remove favorites by clicking the button again
- Navigate to the Reports page
- Select optional category filter
- Choose sort option
- Click "Generate Report" to preview
- Export as TXT or CSV file
- Click the help icon (?) in the header to open the interactive help menu
- Search for topics or browse by category
- View keyboard shortcuts for efficient navigation
- Expand Q&A sections to learn about specific features
- Well-commented code throughout
- Proper TypeScript typing
- Modular component structure
- Consistent naming conventions (camelCase for variables, PascalCase for components)
- Input validation on all forms
- Error handling for edge cases
- Keyboard navigation support
- ARIA labels for screen readers
- Focus indicators for interactive elements
- Skip to main content link
- Semantic HTML structure
- High contrast colors
- Interactive help menu with searchable Q&A
- Comprehensive UX design documentation (see UX_DESIGN_RATIONALE.md)
- Chrome (latest)
- Firefox (latest)
- Safari (latest)
- Edge (latest)
This project was created for the FBLA 2025-2026 Coding & Programming competition.