{"id":19488925,"url":"https://github.com/ditectrev/automation-tools-for-courses","last_synced_at":"2025-04-25T18:32:56.294Z","repository":{"id":238556961,"uuid":"413941146","full_name":"Ditectrev/Automation-Tools-for-Courses","owner":"Ditectrev","description":null,"archived":false,"fork":false,"pushed_at":"2024-08-09T01:21:43.000Z","size":6282,"stargazers_count":2,"open_issues_count":6,"forks_count":2,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-08-09T02:42:27.914Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"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/Ditectrev.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":"2021-10-05T18:48:05.000Z","updated_at":"2024-08-09T01:31:44.000Z","dependencies_parsed_at":"2024-07-28T18:26:02.694Z","dependency_job_id":"57db3f22-abb4-453f-8e6b-e2754fb35333","html_url":"https://github.com/Ditectrev/Automation-Tools-for-Courses","commit_stats":null,"previous_names":["ditectrev/automation-tools-for-courses"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ditectrev%2FAutomation-Tools-for-Courses","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ditectrev%2FAutomation-Tools-for-Courses/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ditectrev%2FAutomation-Tools-for-Courses/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ditectrev%2FAutomation-Tools-for-Courses/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Ditectrev","download_url":"https://codeload.github.com/Ditectrev/Automation-Tools-for-Courses/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250872420,"owners_count":21500818,"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":[],"created_at":"2024-11-10T21:06:23.903Z","updated_at":"2025-04-25T18:32:55.968Z","avatar_url":"https://github.com/Ditectrev.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Automation Tools for Courses\n\n## Usage\n\nRun them using `python3 sample_tool.py`. Of course, you need a `Python` (3). The imported libraries to these scripts will be need to be installed using `pip3 install \u003cpackage_name\u003e`.\n\nMaintained scripts:\n\n- `web-scrap-*.py`;\n- `readme-*.py`;\n\n## Course Publication Process\n\n1. Scrap questions from `exam4training.com` using [web-scrap-exam4training.py](/web-scrap-exam4training.py).\n2. Format questions to our `GitHub` format.\n3. Scrap questions from `vceguide.com`, using [web-scrap-vce.py](/web-scrap-vce.py), add only non-repeated to questions.\n4. Format questions to our `GitHub` format.\n5. Add manually questions from `exam-answer.com`, add only non-repeated to questions keeping our `GitHub` format.\n6. Manually check for questions on `examtopics.com` until middle of the exam, i.e., when there's a paywall, add only non-repeated to questions.\n7. Manually copy/paste each question to Google and look for community discussions on `examtopics.com`, fix correct answer.\n8. Generate Table of Contents automatically using [DocToc](https://github.com/thlorenz/doctoc).\n9. Number Table of Contents using [Regex Text Generator](https://marketplace.visualstudio.com/items?itemName=rioj7.regex-text-gen) as explained in [search and replace with regex to increment numbers in Visual Studio Code](https://stackoverflow.com/questions/58392686/search-and-replace-with-regex-to-increment-numbers-in-visual-studio-code), the only 1 difference is our generator expression is `{{=i+1}}` instead of `{{=N[1]+1}}`.\n10. Scale up image logo for promotional image above `1102x1102` using [Bigjpg](https://bigjpg.com).\n11. Scale down image logo for promotional image to `1102x1102` and replace logo layer in a GIMP files (locally stored) for ebooks/courses, use such promotional image.\n12. Remove typos using `Amazon Kindle Direct Publishing` automatic proofreading software.\n13. Publish on `GitHub` with the generated Table of Contents.\n14. Release course on `GitHub`.\n15. Add repo URL to the released course on `GitHub` to [our platform's repo exams.json file](https://github.com/Ditectrev/Practice-Exams-Platform/blob/main/lib/exams.json).\n16. Course will be automatically build, deployed \u0026 published on [our platform](https://education.ditectrev.com).\n17. Prepare `Udemy` format using [readme-udemy.py](/readme-udemy.py). Images needs to be uploaded manually, and some minor bugs required to be solved manually almost always occur during the process.\n18. Publish the course on `Udemy`.\n19. Generate `.pdf` format using Visual Studio Code's extension [Markdown PDF](https://marketplace.visualstudio.com/items?itemName=yzane.markdown-pdf), only `# COURSE TITLE`, promotional image \u0026 content from below `## Table of Contents` stays. Everything else must be removed before generating a `.pdf`. After that, the document is ready to generation the `.pdf` with questions to answers. For books, remove also the line, which creates contents of links at the end of the document, i.e., `[^X]:[CodeSandbox: ...]` (see https://github.com/yzane/vscode-markdown-pdf/pull/351 \u0026 https://github.com/yzane/vscode-markdown-pdf/issues/181).\n20. Generate `.pdf` without answers by simply replacing `- [x]` to `- [ ]`.\n21. Prepare to generate for `.epub` format by: 1. Change link `**[⬆ Back to Top](#table-of-contents)**` to the first question. 2. Remove `# COURSE TITLE` and `## Table of Contents` as well, leave only questions in the Markdown file. 3. Use `**` for correct answers (`CMD/CTRL` + `D` on `- [x]`, `View` -\u003e `Word Wrap`, and incorporate these changes automatically). 4. The entire correct answer should be around `**`, e.g., `- [x] **This is correct answer for EPUB format.**`. 5. After that, the document is ready to generation the `.epub` with questions to answers. For books, change the line, which links to contents of links at the end of the document, i.e., `[^X]CodeSandbox: ...]` to `[CodeSandbox: CODESANDBOX_TITLE](LINK_TO_PREVIEW) (URL link to rewrite in the browser for printed version: [LINK_TO_PREVIEW](LINK_TO_PREVIEW)), last access: DATE.`.\n22. Generate `.epub` format using [Pandoc](https://pandoc.org): `pandoc --from gfm+task_lists --to epub3 README.md --output AB123_v1.2.3.epub --epub-cover-image=images/ebook.jpg --metadata title=\"⬆️ Abcda Befghi AB-123 (Abcda Befghi Something) Practice Tests Exams Questions \u0026 Answers\" --metadata author=\"Daniel Danielecki\" --toc --number-sections --shift-heading-level-by=-2`.\n23. Generate `.epub` without answers by simply replacing `- [x]` to `- [ ]`, and `- [x] **This is correct answer for EPUB format.**` with `- [ ] This is correct answer for EPUB format.`.\n24. Publish the ebooks in `.epub`/`.pdf` formats to [Etsy](https://ditectrev.etsy.com), [Google Play Books](https://play.google.com/store/books/collection/cluster?gsr=SheCARQKEAoMc2UwRUVRQUFRQkFKEAkQBA%3D%3D:S:ANO1ljJWsUo), our [Shop](https://shop.ditectrev.com).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fditectrev%2Fautomation-tools-for-courses","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fditectrev%2Fautomation-tools-for-courses","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fditectrev%2Fautomation-tools-for-courses/lists"}