{"id":25287856,"url":"https://github.com/mohammad-malik/cpp_dryrun_codegen","last_synced_at":"2025-04-06T17:16:03.217Z","repository":{"id":276096880,"uuid":"923154434","full_name":"mohammad-malik/cpp_dryrun_codegen","owner":"mohammad-malik","description":"A tool for generating and testing \"dry runs\" (tricky C++ code snippets often asked in exams by universities like FAST) in an isolated Docker environment.","archived":false,"fork":false,"pushed_at":"2025-04-05T07:12:01.000Z","size":80,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-05T08:20:44.770Z","etag":null,"topics":["cpp","dryr","exam","help","llms","rag"],"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/mohammad-malik.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-01-27T18:25:20.000Z","updated_at":"2025-04-05T07:12:04.000Z","dependencies_parsed_at":"2025-02-06T09:33:17.970Z","dependency_job_id":"f315de97-4041-494e-b1e8-b24d7fce11f0","html_url":"https://github.com/mohammad-malik/cpp_dryrun_codegen","commit_stats":null,"previous_names":["mohammad-malik/cpp_dryrun_codegen"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mohammad-malik%2Fcpp_dryrun_codegen","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mohammad-malik%2Fcpp_dryrun_codegen/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mohammad-malik%2Fcpp_dryrun_codegen/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mohammad-malik%2Fcpp_dryrun_codegen/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mohammad-malik","download_url":"https://codeload.github.com/mohammad-malik/cpp_dryrun_codegen/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247517916,"owners_count":20951719,"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":["cpp","dryr","exam","help","llms","rag"],"created_at":"2025-02-12T22:52:02.866Z","updated_at":"2025-04-06T17:16:03.202Z","avatar_url":"https://github.com/mohammad-malik.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Agentic C++ Dry Run Code Generator and Runner\n\nA tool for generating and testing \"dry runs\" (tricky C++ code snippets often asked in exams by universities like FAST) in an isolated Docker environment.\n\n## Overview\n\nThis project provides a system for:\n- Generating challenging C++ code snippets that test understanding of tricky language concepts taking inspiration from various PF and OOP past papers through Retrieval Augmented Generation (RAG).\n- Running the code snippets safely in a virtual execution environment using Docker, to ensure accuracy.\n- Automated testing and verification (as the outputs are fed back to a reasoning LLM, which generates until it has 10 various questions that meet the criteria and are worth studying).\n- A web interface to view the newly generated code snippets, their outputs, and an explanation for the output.\n\n## Features\n\n- Focuses on tricky C++ concepts like:\n  - sizeof() and datatype size edge cases\n  - Order of operations (e.g., x++ + x++)\n  - Conditional statement edge cases\n  - Loop patterns\n  - Pointer manipulation and const correctness\n  among many others asked by FAST in courses like Programming Fundamentals (PF) and Object Oriented Programming (OOP).\n\n## Setup\n\n1. Prerequisites:\n   - Python 3.x\n   - Docker\n   - Required Python packages (see requirements)\n\n2. Environment Variables:\n   - Generate an API Key from [Google AI Studio](https://makersuite.google.com/app/apikey)\n   - Create a `.env` file with:\n     ```\n     GOOGLE_API_KEY=your_api_key_here\n     ```  \n\n## Usage\n\n### With python virtual env:\n1. Download `install.sh`\n2. Set it as executable: `chmod +x install.sh`\n3. Wait.\n4. When done, set `run.sh` as executable: `chmod +x ./run.sh`\n5. Run it. `./run.sh`\n\n### Alternatively, for those with conda:\n\n1. Download `install_condabased.sh`\n2. Follow the steps above.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmohammad-malik%2Fcpp_dryrun_codegen","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmohammad-malik%2Fcpp_dryrun_codegen","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmohammad-malik%2Fcpp_dryrun_codegen/lists"}