PDF Quiz Maker is a fully functional, full-stack web application designed for creating and managing PDF-based quizzes. This open-source project leverages modern web technologies and is built to be scalable, maintainable, and easy to deploy.
- Full-Stack Functionality: A complete web application covering both front-end and back-end operations.
- Built with Django: The application backed is developed using the Django web framework.
- Docker Support: Easily containerize and deploy the application using Docker.
- Redis Integration: Utilizes Redis for caching and as a message broker.
- Celery Task Queue: Asynchronous task processing powered by Celery.
- SMTP Integration: Built-in support for SMTP for sending emails.
- Docker installed on your machine.
- Docker Compose installed.
git clone https://github.com/yourusername/pdf-quiz-maker.git
cd pdf-quiz-makerdocker-compose buildAfter building the containers, run the following command to collect static assets:
docker-compose run django python manage.py collectstatic --noinputdocker-compose up -dOpen your browser and navigate to http://localhost:8000 (or the appropriate port as configured) to start using PDF Quiz Maker.
Users need to highlight the correct answers in the PDFs before uploading them, similar to how you would highlight text in Microsoft Edge or other PDF editors. The application extracts questions and answers while recognizing the highlighted option as the correct answer.
For example:
1. What is the capital of France?
A) Madrid
B) Berlin
C) Paris ← (Highlighted)
D) Rome
Ensure that the correct answers are clearly highlighted in the document to achieve accurate quiz generation.
Customize your setup by modifying the environment variables in the .env file. Key configurations include:
- Configuration settings
- SMTP server details
The docker-compose.yml file includes services for:
- Django (web application)
- Redis (caching and message broker)
- Celery (asynchronous task processing)
Contributions are welcome! Please follow these steps to contribute:
- Fork the repository.
- Create a new branch for your feature or bug fix.
- Make your changes and ensure that tests pass.
- Submit a pull request with a detailed description of your changes.
This project is open-source and available under the MIT License.
For any questions, issues, or feature requests, please open an issue on the GitHub repository or contact the maintainer at [email protected].