AI-Powered Research Assistant
Generate reports, literature reviews, chat with documents, and create presentations β all powered by local AI.
Generate detailed technical reports on any topic with AI assistance:
- Structured academic format (Title, Abstract, Introduction, Methodology, Analysis, Conclusion)
- Automatic citation formatting
- Download as PDF or DOCX
Search ArXiv for academic papers and generate comprehensive literature reviews:
- Automatic paper discovery from ArXiv database
- AI-synthesized summaries of research papers
- Research gap identification
- Cohesive academic writing style
Upload multiple PDF/DOCX documents and have intelligent conversations:
- Multi-document support (like NotebookLM)
- Context-aware responses based on your documents
- Real-time WebSocket chat
- Document management (add/remove documents)
Create PowerPoint presentations from research papers:
- Automatic slide generation with key points
- Editable slide preview before download
- Custom title and bullet point editing
- Direct PPTX download
| Technology | Purpose |
|---|---|
| FastAPI | Modern Python web framework |
| Ollama | Local LLM (qwen3-vl:2b multimodal) |
| LangChain | LLM orchestration and RAG |
| FAISS | Vector store for embeddings |
| HuggingFace | Local embeddings (sentence-transformers) |
| ArXiv API | Academic paper retrieval |
| python-pptx | PowerPoint generation |
| ReportLab | PDF generation |
| Technology | Purpose |
|---|---|
| React 19 | UI library |
| Vite 7 | Build tool and dev server |
| React Router v7 | Client-side routing |
| Vanilla CSS | Custom styling |
Before you begin, ensure you have the following installed:
- Python 3.12+ - Download Python
- Node.js 18+ - Download Node.js
- Ollama - Download Ollama
git clone <your-repo-url>
cd MyPro# Install Ollama from https://ollama.ai
# Pull the required model
ollama pull qwen3-vl:2b
# Start Ollama server (if not running as a service)
ollama serve# Navigate to backend
cd backend
# Create virtual environment
python -m venv venv
# Activate virtual environment
# Windows:
.\venv\Scripts\activate
# Linux/macOS:
source venv/bin/activate
# Install dependencies
pip install -r requirements.txt
# Start the backend server
python mainback.pyThe backend API will be available at http://localhost:8000
# Open a new terminal and navigate to frontend
cd frontend
# Install dependencies
npm install
# Configure environment (optional)
cp .env.example .env
# Edit .env to set: VITE_API_URL=http://localhost:8000
# Start the development server
npm run devThe frontend will be available at http://localhost:5173
MyPro/
βββ backend/ # FastAPI Backend
β βββ mainback.py # Main application file
β βββ requirements.txt # Python dependencies
β βββ pyproject.toml # Project configuration
β βββ .env.example # Environment template
β βββ README.md # Backend documentation
β
βββ frontend/ # React Frontend
β βββ public/
β β βββ researcho.png # App favicon/logo
β βββ src/
β β βββ components/ # Reusable UI components
β β β βββ Header.jsx
β β β βββ LoadingSpinner.jsx
β β β βββ Toast.jsx
β β β βββ ToastContainer.jsx
β β βββ contexts/ # React context providers
β β β βββ AppContext.jsx
β β βββ hooks/ # Custom React hooks
β β βββ sections/ # Page components
β β β βββ Home.jsx # Landing page
β β β βββ Report.jsx # Report generation
β β β βββ Review.jsx # Literature review
β β β βββ RAG.jsx # Document chat
β β β βββ PPTX.jsx # Presentation generator
β β βββ App.jsx # Main app component
β β βββ App.css
β β βββ index.css # Global styles
β β βββ main.jsx # Entry point
β βββ index.html
β βββ package.json
β βββ vite.config.js
β βββ README.md # Frontend documentation
β
βββ README.md # This file
http://localhost:8000
| Method | Endpoint | Description |
|---|---|---|
| GET | / |
API info and endpoints |
| GET | /api/health |
Health check |
| Method | Endpoint | Description |
|---|---|---|
| POST | /api/generate/report |
Generate technical report |
// Request Body
{ "content": "Your research topic" }| Method | Endpoint | Description |
|---|---|---|
| POST | /api/generate/review |
Generate literature review |
// Request Body
{ "content": "Your research topic" }| Method | Endpoint | Description |
|---|---|---|
| POST | /api/upload/pdf |
Upload PDF/DOCX files |
| POST | /api/chat |
Chat with documents |
| WebSocket | /api/chat/ws |
Real-time chat |
| GET | /api/documents |
List documents |
| DELETE | /api/documents/{id} |
Delete document |
| DELETE | /api/documents |
Clear all documents |
// Chat Request Body
{ "message": "Your question" }| Method | Endpoint | Description |
|---|---|---|
| POST | /api/generate/pptx |
Generate from file upload |
| POST | /api/generate/pptx/from-id |
Generate from stored file |
| GET | /api/pptx/download/{id} |
Download PPTX |
| POST | /api/pptx/update |
Update slides |
| Method | Endpoint | Description |
|---|---|---|
| POST | /api/download/docx |
Download as DOCX |
| POST | /api/download/pdf |
Download as PDF |
Changing the LLM Model (backend/mainback.py):
llm = ChatOllama(model="qwen3-vl:2b") # Default
# Alternatives:
# llm = ChatOllama(model="llama3:8b")
# llm = ChatOllama(model="mistral:7b")
# llm = ChatOllama(model="gemma2:9b")CORS Settings (for production):
app.add_middleware(
CORSMiddleware,
allow_origins=["https://yourdomain.com"],
allow_credentials=True,
allow_methods=["*"],
allow_headers=["*"],
)API URL (frontend/.env):
VITE_API_URL=http://localhost:8000| Command | Description |
|---|---|
python mainback.py |
Start dev server |
uvicorn mainback:app --reload |
Start with auto-reload |
uvicorn mainback:app --workers 4 |
Production mode |
| Command | Description |
|---|---|
npm run dev |
Start dev server |
npm run build |
Build for production |
npm run preview |
Preview production build |
npm run lint |
Run ESLint |
When the backend is running, interactive API documentation is available at:
- Swagger UI: http://localhost:8000/docs
- ReDoc: http://localhost:8000/redoc
| Browser | Minimum Version |
|---|---|
| Chrome | 90+ |
| Firefox | 90+ |
| Safari | 14+ |
| Edge | 90+ |
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under the MIT License.
Researcho - AI-powered research assistance made simple.
Made with β€οΈ for researchers everywhere.
