A modern, interactive chatbot application for a skate shop that provides customer support through both voice and text input. The chatbot can answer questions about store hours, products, location, lessons, repairs, and policies.
- Voice Input: Speak your questions using speech recognition
- Text Input: Type your questions in the chat interface
- Video Background: Immersive video background for enhanced user experience
- Real-time Responses: Instant answers to common skate shop questions
- Toast Notifications: User-friendly feedback for all interactions
- Responsive Design: Works seamlessly on desktop and mobile devices
- Modern UI: Clean, professional interface with smooth animations
- React 18 - Modern React with hooks and functional components
- TypeScript - Type-safe development
- Vite - Fast build tool and development server
- Tailwind CSS - Utility-first CSS framework
- Radix UI - Accessible, unstyled UI components
- Lucide React - Beautiful icon library
- CSS Animations - Smooth transitions and loading states
- class-variance-authority - Component variant management
- clsx - Conditional className utility
- tailwind-merge - Tailwind class merging utility
- ESLint - Code linting and formatting
- PostCSS - CSS processing
- Autoprefixer - CSS vendor prefixing
src/
├── components/ # Reusable UI components
│ ├── ChatHistory/ # Chat message display
│ ├── ChatMessage/ # Individual message component
│ ├── Logo/ # Brand logo component
│ ├── TextInput/ # Text input interface
│ ├── VideoBackground/ # Video background component
│ ├── VideoPreloader/ # Loading screen
│ ├── VoiceInput/ # Voice recognition interface
│ └── ui/ # Base UI components (buttons, cards, etc.)
├── data/ # Static data and responses
│ └── responses.ts # Predefined chatbot responses
├── hooks/ # Custom React hooks
│ ├── use-toast.ts # Toast notification hook
│ └── useSpeechRecognition.ts # Speech recognition hook
├── lib/ # Utility functions
│ └── utils.ts # Helper utilities
├── services/ # Business logic
│ └── chatService.ts # Chat response matching service
├── types/ # TypeScript type definitions
│ └── index.ts # Shared interfaces
└── App.tsx # Main application component
- Input Processing: Users can either speak (voice recognition) or type their questions
- Keyword Matching: The chat service matches user input against predefined keywords
- Response Generation: Returns appropriate responses based on categories:
- Store hours
- Product information
- Location details
- Skateboard lessons
- Repair services
- Store policies
- UI Feedback: Toast notifications provide real-time feedback for all interactions
- Node.js (version 16 or higher)
- npm or yarn package manager
- Clone the repository:
git clone <repository-url>
cd shredenhams-chatbot- Install dependencies:
npm install- Start the development server:
npm run dev- Open your browser and navigate to
http://localhost:5173
npm run dev- Start development servernpm run build- Build for productionnpm run preview- Preview production buildnpm run lint- Run ESLint
- Chrome/Edge (recommended for voice features)
- Firefox
- Safari
- Mobile browsers
Note: Voice recognition features work best in Chrome and Edge browsers.
This project is open source and available under the MIT License.
