{"id":31077042,"url":"https://github.com/khushikumarigupta14/pdf-mcq-extractor","last_synced_at":"2025-09-16T06:15:24.291Z","repository":{"id":314469767,"uuid":"1055644833","full_name":"khushikumarigupta14/pdf-mcq-extractor","owner":"khushikumarigupta14","description":"PDF MCQ Extractor – Quickly extract multiple-choice questions from PDFs and export them as structured JSON. Perfect for educators, students, and study apps.","archived":false,"fork":false,"pushed_at":"2025-09-12T15:46:17.000Z","size":1032,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-09-12T18:17:27.561Z","etag":null,"topics":["educational-tools","machine-readable-mcqs","mcq-extraction","pdf-processing","pdf-to-json","study-materials"],"latest_commit_sha":null,"homepage":"https://pdf-mcq-extractor.vercel.app","language":"EJS","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/khushikumarigupta14.png","metadata":{"files":{"readme":"Readme.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-09-12T15:17:59.000Z","updated_at":"2025-09-12T15:46:20.000Z","dependencies_parsed_at":"2025-09-12T18:19:19.660Z","dependency_job_id":"1b3925a7-866d-402b-9292-15327d11e822","html_url":"https://github.com/khushikumarigupta14/pdf-mcq-extractor","commit_stats":null,"previous_names":["khushikumarigupta14/pdf-mcq-extractor"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/khushikumarigupta14/pdf-mcq-extractor","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/khushikumarigupta14%2Fpdf-mcq-extractor","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/khushikumarigupta14%2Fpdf-mcq-extractor/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/khushikumarigupta14%2Fpdf-mcq-extractor/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/khushikumarigupta14%2Fpdf-mcq-extractor/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/khushikumarigupta14","download_url":"https://codeload.github.com/khushikumarigupta14/pdf-mcq-extractor/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/khushikumarigupta14%2Fpdf-mcq-extractor/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":275370806,"owners_count":25452543,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-16T02:00:10.229Z","response_time":65,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["educational-tools","machine-readable-mcqs","mcq-extraction","pdf-processing","pdf-to-json","study-materials"],"created_at":"2025-09-16T06:15:22.652Z","updated_at":"2025-09-16T06:15:24.272Z","avatar_url":"https://github.com/khushikumarigupta14.png","language":"EJS","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n# PDF MCQ Extractor\n\n![PDF MCQ Extractor Screenshot]\n\nA fast, accurate, and easy-to-use web application designed to extract multiple-choice questions (MCQs) from PDF files and provide them as a downloadable JSON file. This tool is perfect for educators, students, and anyone needing to quickly convert MCQ-based assessments or study materials into a structured, machine-readable format.\n\n## ✨ Features\n\n- **Upload PDF Files:** Easily upload your PDF documents containing MCQs.\n- **Automatic Question Extraction:** Intelligently identifies and extracts questions along with their corresponding options.\n- **JSON Download:** Download the extracted MCQs in a clean, organized JSON format, ready for use in other applications or databases.\n- **User-Friendly Interface:** Built with a clean and intuitive design for a seamless user experience.\n- **Accessible \u0026 Performance Optimized:** Designed with accessibility and performance in mind.\n\n## 🚀 Demo\n\n[Link to Live Demo (if available)] - You might want to host this on Netlify, Vercel, or Heroku for a live demo.\n\n## 🛠️ Tech Stack\n\nThis project leverages a robust and modern tech stack to deliver a efficient and scalable solution:\n\n- **Backend:**\n  - **Node.js:** A powerful JavaScript runtime for server-side logic.\n  - **Express.js:** A minimalist web framework for Node.js, used for building the API and handling requests.\n- **Frontend:**\n  - **EJS (Embedded JavaScript):** A templating engine to render dynamic HTML pages.\n  - **Bootstrap:** A popular CSS framework for responsive and aesthetically pleasing UI components.\n- **File Handling:**\n  - **Multer:** Middleware for handling `multipart/form-data`, primarily used for file uploads.\n  - **pdf-parse / pdf-parser:** Libraries used for parsing PDF documents and extracting text content.\n\n## ⚙️ Installation \u0026 Setup\n\nFollow these steps to get the PDF MCQ Extractor up and running on your local machine.\n\n### Prerequisites\n\n- Node.js (\u003e=18.0.0)\n- npm (\u003e=9.0.0)\n\n### Steps\n\n1.  **Clone the Repository:**\n\n    ```bash\n    git clone https://github.com/khushikumarigupta14/pdf-mcq-extractor.git\n    cd pdf-mcq-extractor\n    ```\n\n2.  **Install Dependencies:**\n\n    ```bash\n    npm install\n    ```\n\n3.  **Run in Development Mode:**\n\n    This will start the server using `nodemon`, which automatically restarts the server when file changes are detected.\n\n    ```bash\n    npm run dev\n    ```\n\n4.  **Access the Application:**\n\n    Open your web browser and navigate to `http://localhost:3000` (or the port specified in your `server.js`).\n\n## 🐳 Docker (Optional)\n\nFor easier deployment and environment consistency, you can also use Docker.\n\n1.  **Build the Docker Image:**\n\n    ```bash\n    docker build -t pdf-mcq-extractor .\n    ```\n\n2.  **Run the Docker Container:**\n\n    ```bash\n    docker run -p 3000:3000 pdf-mcq-extractor\n    ```\n\n    The application will be accessible at `http://localhost:3000`.\n\n## 📂 Project Structure\n\n```bash\n.\n├── public/ # Static assets (CSS, JS, images)\n│ ├── css/\n│ ├── js/\n│ └── images/\n├── views/ # EJS template files\n│ └── index.ejs\n├── server.js # Main Express.js server file\n├── extractMCQs.js # Logic for PDF parsing and MCQ extraction\n├── package.json # Project dependencies and scripts\n├── package-lock.json # Locked dependencies\n├── .env.example # Example environment variables (if any)\n├── .gitignore # Files/folders to ignore from Git\n├── README.md # This file\n└── ...\n\n```\n\n## 📝 Usage\n\n1.  **Upload PDF:** On the homepage, click the \"Choose File\" button to select a PDF document from your computer.\n2.  **Extract MCQs:** Click the \"Extract Questions\" button. The application will process the PDF.\n3.  **Download JSON:** Once processed, a \"Download JSON\" button will appear. Click it to save the extracted MCQs to your device.\n\n## 🤝 Contributing\n\nContributions are welcome! If you have suggestions for improvements, new features, or bug fixes, please follow these steps:\n\n1.  **Fork the repository.**\n2.  **Create a new branch:** `git checkout -b feature/your-feature-name` or `bugfix/your-bug-fix`.\n3.  **Make your changes.**\n4.  **Commit your changes:** `git commit -m \"feat: Add new feature\"`.\n5.  **Push to the branch:** `git push origin feature/your-feature-name`.\n6.  **Open a Pull Request.**\n\nPlease ensure your code adheres to the project's coding style (run `npm run format` and `npm run lint`).\n\n## 📄 License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n## 📞 Contact\n\nIf you have any questions or feedback, feel free to reach out:\n\n-   **Author:** Khushi Kumari\n-   **Email:** khushikumari00999.k@gmail.com\n-   **GitHub:** [https://github.com/khushikumarigupta14](https://github.com/yourusername)\n\n---\n\n**Note:** Remember to replace `[Link to Live Demo (if available)]` and `[LICENSE]` with actual links if you set them up. Also, consider adding a `LICENSE` file to your repository if you haven't already.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkhushikumarigupta14%2Fpdf-mcq-extractor","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkhushikumarigupta14%2Fpdf-mcq-extractor","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkhushikumarigupta14%2Fpdf-mcq-extractor/lists"}