Askit is a powerful document search system that enables semantic search across your Google Drive documents. Unlike traditional keyword search, Askit understands the meaning behind your questions, delivering contextually relevant results from your documents.
- Google Drive Integration: Securely connect to your Google Drive account
- Folder Processing: Select and process specific folders for search indexing
- Semantic Search: Ask questions in natural language and get intelligent answers
- Document Context: View relevant document snippets that support search results
- Search History: Track and revisit previous searches
- Modern UI: Clean, responsive interface with visual feedback for processed folders
- Data Persistence: Remember processed folders between sessions
Askit consists of two main components:
- Authentication: Google OAuth 2.0 integration for secure access
- Document Processing: Extracts and processes text from various document formats
- Indexing: Creates semantic indexes of document content
- Query Engine: Processes natural language queries and retrieves relevant content
- Modern React Components: Built with Next.js and Tailwind CSS
- Responsive Design: Works on desktop and mobile devices
- Intuitive Interface: Folder selection, search bar, and results display
- Session Management: Handles authentication state and token refresh
- Node.js (v16+)
- Python (v3.8+)
- Google Cloud Platform account with Drive API enabled
-
Navigate to the backend directory:
cd backend -
Create a virtual environment:
python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate
-
Install dependencies:
pip install -r requirements.txt
-
Set up environment variables:
- Create a
.envfile in the backend directory - Add the following variables:
SESSION_SECRET_KEY=your_secret_key GOOGLE_CLIENT_ID=your_google_client_id GOOGLE_CLIENT_SECRET=your_google_client_secret
- Create a
-
Place your Google OAuth credentials file (
credentials.json) in the backend directory -
Start the backend server:
python app.py
-
Navigate to the frontend directory:
cd frontend -
Install dependencies:
npm install
-
Set up environment variables:
- Create a
.env.localfile in the frontend directory - Add the following:
NEXT_PUBLIC_API_URL=http://localhost:8000
- Create a
-
Start the development server:
npm run dev
-
Access the application at http://localhost:3000
- Sign In: Log in with your Google account
- Select Folders: Browse and select the Google Drive folders you want to search
- Process Folders: Click "Process" on selected folders to index their contents
- Search Documents: Enter natural language queries to search your documents
- Review Results: View document snippets and click through to original files
The project is structured to make adding new features straightforward:
- Backend endpoints are defined in
app.py - Frontend components are in
src/components/ - Services for API interactions are in
src/services/
Run the test suite with:
cd frontend
npm run test