--- title: rag_ielts app_file: app.py sdk: streamlit emoji: 📚 colorFrom: green colorTo: indigo pinned: true sdk_version: 1.41.1 --- # Exam Content Management System A Streamlit application for managing and generating exam content using Azure OpenAI and Supabase. ## Features - Upload and process PDF files containing exam content - Generate questions based on exam type (SAT, IELTS, TOEFL) - Store and manage exam content in Supabase - View and manage questions with filtering capabilities - Analytics dashboard with detailed metrics - Question rewriting and fixing capabilities ## Prerequisites - Python 3.8+ - Supabase database - Azure OpenAI API access ## Installation 1. Clone the repository: ```bash git clone cd ``` 2. Install dependencies: ```bash pip install -r requirements.txt ``` 3. Set up environment variables: Create a `.env` file with the following variables: ``` AZURE_OPENAI_KEY=your_azure_openai_key AZURE_OPENAI_ENDPOINT=your_azure_openai_endpoint AZURE_OPENAI_DEPLOYMENT_NAME=your_deployment_name SUPABASE_DB_URL=your_supabase_url SUPABASE_API_KEY=your_supabase_api_key ``` ## Running the Application 1. Start the Streamlit app: ```bash streamlit run app.py ``` 2. Open your browser and navigate to the URL shown in the terminal (usually http://localhost:8501) ## Usage ### 1. Upload & Generate - Select exam type (SAT, IELTS, or TOEFL) - Upload PDF files containing exam content - Click "Generate and Upload Questions" to process files - Download generated questions as JSON if needed ### 2. View Questions - Browse questions with filtering options: - Exam Type - Domain - Subdomain - Topic - Difficulty Level - Rewrite or delete individual questions - View detailed explanations and answers ### 3. Analytics - View comprehensive analytics dashboard - Monitor question distribution - Track content quality metrics - Analyze domain coverage - View generation timeline ## Contributing Contributions are welcome! Please feel free to submit a Pull Request. ## License This project is licensed under the MIT License - see the LICENSE file for details.