VoxMate is an AI-powered document processing and chat assistant. Upload a document and chat with it in your preferred language — extract insights, get summaries, and ask questions through an AI-agnostic platform.
- Voice to Text — Convert speech to text for easier document processing and interaction.
- College Documents — Access and analyze documents stored by your educational institution instantly.
- Offline Mode — Use VoxMate without an internet connection for uninterrupted productivity.
- Multi-language support — Chat and receive answers in English and multiple Indian languages: Hindi, Bengali, Telugu, Marathi, Tamil, Gujarati, Kannada, Malayalam, Punjabi, Odia, Assamese, and Urdu.
- Document Q&A — Ask questions about an uploaded document and get answers grounded in its content, with conversation history maintained per session.
- Document summarization — Generate a structured summary covering the document's main topic, key details, critical dates/numbers, action items, and stakeholders.
- Translation — Translate text between supported languages.
- File upload & text extraction — Upload PDF, DOCX, TXT, and RTF files (up to 10MB) and extract their text content.
- Next.js 15 (React 19, TypeScript)
- Tailwind CSS 4
- Google Generative AI SDK (Gemini) for chat, summarization, and translation
- pdf-parse and mammoth for extracting text from PDF and DOCX files
- multer / formidable for file uploads
- react-dropzone for drag-and-drop uploads
- lucide-react for icons
VoxMate/
├── components/
│ ├── ChatInterface/ # Chat UI: container, interface, markdown rendering, typing indicator
│ ├── FileUpload/ # Drag-and-drop file upload panel
│ ├── Layout/ # Header component
│ └── MarkdownRenderer.tsx
├── pages/
│ ├── api/
│ │ ├── chat.ts # Document Q&A endpoint (Gemini)
│ │ ├── extract-text.ts # Extracts text from PDF/DOCX/TXT/RTF
│ │ ├── health.ts # Health check endpoint
│ │ ├── summarize.ts # Document summarization endpoint (Gemini)
│ │ ├── translate.ts # Translation endpoint (Gemini)
│ │ └── upload.ts # File upload handling (multer)
│ ├── _app.tsx
│ ├── _document.tsx
│ ├── chat.tsx # Chat page
│ ├── index.tsx
│ └── landing.tsx # Landing page
├── public/ # Logos and static assets
├── styles/
│ └── globals.css
├── next.config.js
├── tailwind.config.js
├── tsconfig.json
├── vercel.json
└── package.json
- Node.js
- A Google Gemini API key
git clone https://github.com/Saksham-Rai33/VoxMate.git
cd VoxMate
npm installCreate a .env.local file in the project root with:
NEXT_PUBLIC_GEMINI_API_KEY=your_gemini_api_key
npm run devOpen http://localhost:3000 to view the app.
npm run build # Build for production
npm run start # Start the production server
npm run lint # Run Next.js lint
npm run clean # Remove .next and node_modules/.cache| Endpoint | Method | Description |
|---|---|---|
/api/chat |
POST | Ask a question about an uploaded document and get a language-aware answer with conversation history |
/api/summarize |
POST | Generate a structured summary of document text |
/api/translate |
POST | Translate text into a supported target language |
/api/extract-text |
POST | Extract text from an uploaded PDF, DOCX, TXT, or RTF file |
/api/upload |
POST | Upload document files (max 10MB; PDF, DOC, DOCX, TXT, RTF) |
/api/health |
GET | Health check with supported languages and formats |
This project includes a vercel.json configuration and is set up for deployment on Vercel.
No license file is currently included in this repository.