CA-Foundation / README.md
β€œvinit5112”
upload update
45e068b
|
raw
history blame
2.28 kB
metadata
title: CA Study Assistant
emoji: πŸ“š
colorFrom: blue
colorTo: purple
sdk: docker
app_port: 7860

CA Study Assistant

This is a full-stack AI-powered study assistant for Chartered Accountant students.

  • Frontend: React
  • Backend: FastAPI
  • Deployment: Docker on Hugging Face Spaces

How it Works

The application is containerized using Docker and orchestrated with Docker Compose.

  • The frontend is a React app served by Nginx.
  • The backend is a FastAPI server running with Uvicorn.
  • Nginx acts as a reverse proxy, forwarding API requests from the frontend to the backend.

πŸš€ Quick Setup

1. Environment Configuration

# Copy the example environment file
cp env.example .env

# Edit .env with your API keys
nano .env

Required environment variables:

  • GOOGLE_API_KEY: Get from Google AI Studio
  • QDRANT_URL: Your Qdrant cloud cluster URL
  • QDRANT_API_KEY: Your Qdrant cloud API key

2. Run System Diagnostic

cd backend
python diagnostic.py

This will check all dependencies and configurations.

3. Start the Application

# Using Docker (recommended)
docker-compose up --build

# Or run locally
cd backend && python backend_api.py
cd frontend && npm start

πŸ”§ Troubleshooting File Uploads

If file uploads aren't working, check:

  1. Environment Variables: Ensure all required vars are set
  2. API Connectivity: Backend must connect to Qdrant and Google APIs
  3. File Size: Large files (>10MB) may timeout
  4. File Format: Only PDF, DOCX, and TXT are supported
  5. Server Status: Check browser console and server logs

Common Upload Errors:

Error Cause Solution
Network Error Server not running Start backend server
500 Server Error Missing API keys Check environment variables
413 File Too Large File exceeds limit Try smaller files
415 Unsupported Type Wrong file format Use PDF/DOCX/TXT only
Timeout Large file/slow connection Increase timeout or use smaller files

Debug Steps:

  1. Run python backend/diagnostic.py
  2. Check browser developer console
  3. Check backend server logs
  4. Verify network connectivity to external APIs