{"id":26923823,"url":"https://github.com/rijoslal/quizzy","last_synced_at":"2026-04-13T03:09:13.886Z","repository":{"id":285511098,"uuid":"937733688","full_name":"RijoSLal/Quizzy","owner":"RijoSLal","description":null,"archived":false,"fork":false,"pushed_at":"2025-04-01T06:10:05.000Z","size":0,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-01T06:28:48.814Z","etag":null,"topics":["beautifulsoup","chromadb","ci-cd","django","django-rest-framework","edge-tts","gemini-api","groq","html-css-javascript","huggingface-transformers","langchain","mlflow","ollama","tensorflow","whisper"],"latest_commit_sha":null,"homepage":"","language":"Python","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/RijoSLal.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}},"created_at":"2025-02-23T19:12:21.000Z","updated_at":"2025-04-01T06:10:08.000Z","dependencies_parsed_at":"2025-04-01T06:39:03.257Z","dependency_job_id":null,"html_url":"https://github.com/RijoSLal/Quizzy","commit_stats":null,"previous_names":["rijoslal/quizzy"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RijoSLal%2FQuizzy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RijoSLal%2FQuizzy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RijoSLal%2FQuizzy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RijoSLal%2FQuizzy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/RijoSLal","download_url":"https://codeload.github.com/RijoSLal/Quizzy/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246741185,"owners_count":20826063,"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","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":["beautifulsoup","chromadb","ci-cd","django","django-rest-framework","edge-tts","gemini-api","groq","html-css-javascript","huggingface-transformers","langchain","mlflow","ollama","tensorflow","whisper"],"created_at":"2025-04-02T01:42:48.148Z","updated_at":"2026-04-13T03:09:13.881Z","avatar_url":"https://github.com/RijoSLal.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Quizzy\n\nQuizzy is an AI-powered virtual interviewer built to simulate personalized interviews through a robust integration of Retrieval-Augmented Generation (RAG), multi-modal analysis (vision, audio, text), and intelligent evaluation systems. It processes resumes and job descriptions, evaluates candidates in real-time, and generates detailed feedback, scoring, and job suggestions.Quizzy delivers an end-to-end mock interview experience that is hyper-personalized and interactive.\n\nBuilt on Django, Quizzy orchestrates a modular architecture where core machine learning components are managed in a dedicated ML repository. These components are dynamically pulled and tracked using MLflow, DagsHub, and MLOps pipelines, ensuring reproducibility, scalability, and version control for both data and models.\n\n---\n\n## Demo\n\n**Video Overview**  \n![Quizzy Demo](https://github.com/RijoSLal/my-portfolio/blob/main/images/quizzy.png)\nWatch the full walkthrough of how Quizzy functions and performs an AI-driven interview:  \n[YouTube Demo Link](https://youtu.be/JGKYGQfVkoU)\n\n---\n\n## Architecture and Features\n\n### Workflow\n\n1. **Input Collection**: Users provide their resume, job description, and preferred interview time.\n2. **Resume Analysis**:\n   - Name and domain extraction\n   - Resume-job description similarity using MXBAI embeddings (cosine similarity)\n3. **Interview Phase**:\n   - Dynamic question generation via Groq's LLaMA 70B model\n   - Document retrieval from ChromaDB with Gemini embeddings\n   - Real-time TTS (Edge TTS) and STT (Whisper)\n   - Vision-based posture and emotion detection using MediaPipe and MobileNet\n   - Profile summarization using HuggingFace model\n4. **Post Interview**:\n   - Score computation and evaluation report\n   - Suggestions for improvement\n   - Curated job recommendations from LinkedIn scraping based on candidate profile\n\n### ML and MLOps Stack\n\n- **Model Management**: MLflow\n- **Experiment Tracking \u0026 Versioning**: DagsHub\n- **Vision Models**: MobileNet (transfer learned), MediaPipe\n- **Text Models**: Groq (LLaMA 70B), Gemini Embeddings\n- **TTS/STT**: Edge TTS and Whisper\n- **Resume Matching**: MXBAI embeddings\n- **Document Store**: ChromaDB\n\n\u003e ML code and training pipelines are managed in a separate repository:  \n\u003e [https://github.com/RijoSLal/Quizzy_MLOPS](https://github.com/RijoSLal/Quizzy_MLOPS)  \n\u003e Models and data are versioned and stored at:  \n\u003e [https://dagshub.com/slalrijo2005/Quizzy_MLOPS](https://dagshub.com/slalrijo2005/Quizzy_MLOPS)\n\n---\n\n### ⚠️ Minimum System Requirements\n\n- **CPU:** 12 threads (e.g., 4P + 4E cores, 2.0 GHz+)\n- **RAM:** 6 GB\n- **GPU:** Integrated, 48 EUs+, OpenGL 4.5+\n\n\u003e ⚠️ Systems below these specs may face performance issues or instability.\n\n---\n\n## Deployment\n\nTo configure a **production-ready self-hosted environment using NGINX and Cloudflare Tunnel**, refer to my detailed blog post:  \n[Self-hosting Django with NGINX \u0026 Cloudflare Tunnel](https://rijo.hashnode.dev/self-hosting-django-with-nginx-cloudflare-tunnel-configure-a-production-ready-server)\n\n---\n\n## Local Development\n\n### Requirements\n\n- Python 3.8+\n- pip\n- virtualenv\n\n### Setup\n\n```bash\ngit clone https://github.com/RijoSLal/quizzy.git\ncd quizzy\npython -m venv venv\nsource venv/bin/activate  # or venv\\Scripts\\activate on Windows\npip install -r requirements.txt\n```\n\n### Set Environment Variables\n\nCreate a `.env` file:\n\n```env\nAPIKEY=gemini_api_key\nGROQ=groq_api_key\nGROQQ=groq_api_key\nGROQ_API_KEY=groq_api_key\nDJANGO=django_secret_key\n```\n\n### Run Tests\n\n```bash\npython manage.py test\n```\n\n---\n\n### Run the Server\n\n```bash\npython manage.py runserver\n```\n\n---\n\n## Docker Deployment\n\n### Build Docker Image\n\n```bash\ndocker build -t quizzy .\n```\n\n### Run with Environment File\n\n```bash\ndocker run --env-file .env quizzy\n```\n\n### Run Tests\n\n```bash\ndocker run --env-file .env quizzy python manage.py test\n```\n\n---\n\n## Directory Structure\n\n```\nquizzy/\n├── chroma_langchain_db/\n├── interview/\n|   ├── urls.py\n|   ├── no_stream_camera_capture.py\n│   ├── camera_capture.py\n│   ├── resume_management.py\n│   ├── retriever.py\n│   ├── scrape.py\n│   ├── speech.py\n│   ├── vectordb.py\n│   └── views.py\n├── manage.py\n├── quizzy/\n│   ├── settings.py\n│   └── urls.py\n├── static/\n|   ├── images/\n│   └── styling/\n├── templates/\n│   ├── home.html\n│   ├── interview.html\n│   ├── resume.html\n│   └── score.html\n├── Dockerfile\n├── .dockerignore\n├── .env\n└── requirements.txt\n```\n\n---\n\n## Contribution\n\nContributions are welcome. Please open an issue or submit a pull request if you would like to suggest improvements or contribute features. Ensure your contributions follow the project’s code standards and include relevant documentation.\n\n---\n\n## License\n\nThis project is licensed under the MIT License.  \nSee the [LICENSE](./LICENSE) file for details.\n\n---\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frijoslal%2Fquizzy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frijoslal%2Fquizzy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frijoslal%2Fquizzy/lists"}