BrainuBot is an intelligent AI-powered assistant designed specifically for Brainware University students and faculty. It provides instant access to university information, resources, and support through a conversational interface.
- π€ AI-Powered Conversations: Powered by Gemini's advanced AI model for intelligent responses
- π€ Voice Input: Speech recognition for hands-free interaction
- π Voice Output: Text-to-speech functionality with multiple language support
- π Multilingual Support: Communicate in English and Spanish
- π± Responsive Design: Works seamlessly on desktop and mobile devices
- π Dashboard: View usage statistics and conversation analytics
- π Export Conversations: Download chat history as PDF documents
- π¬ Quick Messages: Pre-defined templates for common queries
- π Search Functionality: Quickly find specific information in conversations
- πΎ Cloud Sync: All conversations are saved to Firebase for access across devices
- Frontend Framework: React.js with modern hooks
- Styling: Tailwind CSS for responsive design
- Backend Services: Firebase (Firestore, Authentication)
- AI Integration: Gemini Chat API
- Speech Processing: Web Speech API
- PDF Generation: jsPDF with html2canvas
- Notifications: React Toastify
- Date Handling: date-fns library
- Node.js (v14 or higher)
- npm or yarn package manager
- Firebase project with Firestore and Authentication enabled
- Gemini API account
- Clone the repository
git clone https://github.com/Dipankar-source/Student-HelpDesk-ChatBot cd frontend
- Access the BrainuBot interface through the university portal
- Type or speak your questions about courses, schedules, or campus facilities
- Use quick messages for common inquiries about admissions, exams, or events
- Export important conversations for future reference
- Use BrainuBot to quickly access student information
- Get updates on academic schedules and room allocations
- Receive notifications about university announcements
BrainuBot integrates with Gemini's chat completion API to provide intelligent responses. The system prompt is configured to:
- Provide direct answers first
- Search for current information when needed
- Format responses clearly with proper structure
- Maintain a professional tone
- Include relevant links when appropriate
- Firestore: Stores chat sessions and messages
- Authentication: Handles anonymous user sessions
- Security Rules: Ensure data privacy and protection
- Update the
languagesarray insrc/assets/constants.js - Add translation logic in the
translateTextfunction - Include voice support for the new language
Edit the quickMessages array in src/assets/constants.js:
frontend/
βββ .env
βββ .gitignore
βββ eslint.config.js
βββ index.html
βββ package-lock.json
βββ package.json
βββ README.md
βββ render.yaml
βββ static.json
βββ vite.config.js
β
βββ public/
β βββ help.png
β βββ university-building.png
β βββ university-logo.png
β βββ vite.svg
β
βββ src/
β βββ App.jsx
β βββ index.css
β βββ main.jsx
β β
β βββ assets/
β β βββ constants.js
β β βββ react.svg
β β
β βββ components/
β β βββ Chat.jsx
β β βββ ChatHistory.jsx
β β βββ Footer.jsx
β β βββ Header.jsx
β β βββ InputArea.jsx
β β βββ Message.jsx
β β βββ ProtectedRoute.jsx
β β βββ QuickMessages.jsx
β β βββ Sidebar.jsx
β β βββ TypingIndicator.jsx
β β
β βββ pages/
β β βββ Auth/
β β β βββ LoginPage.jsx
β β β βββ RegisterPage.jsx
β β β βββ Extra.jsx
β β β βββ Home.jsx
β β β
β β βββ service/
β β βββ firebase.js