Techtonica / curriculum

This repo contains the curriculum of Techtonica, a free tech training program for women and non-binary adults with low incomes.
Creative Commons Attribution Share Alike 4.0 International
613 stars 496 forks source link

Use tool to scan links on the curriculum project #1059

Closed alodahl closed 4 years ago

alodahl commented 4 years ago

Use the following app to scan each Techtonica/curriculum project outline file for broken links. We recently scanned the readme file (noted in the comments), but things change quickly, so it wouldn't hurt to do it again.

Also, if this seems too large, please scan as many as you're comfortable with and report back your findings.

Fix any that you can in a PR, and report back with a list of clean/fixed and broken links in the comments so we know where to continue.

http://github.com/tcort/markdown-link-check


For FAQs on how to contribute, see: https://github.com/Techtonica/curriculum#volunteering

alexandrosyiangou commented 4 years ago

Hey there! I will add my touch on this one! :slightly_smiling_face:

alexandrosyiangou commented 4 years ago

When I scanned the README.md file, I got this report, and I thought of sharing with everyone on this issue.

[✓] http://techtonica.org [✓] ./README.md#table-of-contents [✓] https://docs.google.com/forms/d/e/1FAIpQLSeW0mo-Dpsig70374UEPvzexpas-31Ost_HsFwm0kjNOxtbtg/viewform?c=0&w=1 [✓] https://github.com/Techtonica/curriculum/projects/2 [✓] https://github.com/Techtonica/curriculum/blob/master/_templates/topic-outline.md [✓] mailto:techtonicaorg@gmail.com [✓] https://docs.google.com/presentation/d/1BvO6PrSpulHVSDNOkMaDZM-V7McmheLgm0Lg2PFae7k/edit#slide=id.p [✓] https://github.com/Techtonica/curriculum/blob/master/databases/mongo-db.md [✓] https://drive.google.com/file/d/1022MSkPjfRyGAUQa2I-pQltpUn4Q1NJc/view [✖] /welcome-tips-rules/tech-industry-tips.md [✓] https://docs.google.com/document/d/1IWny-IXB-XDWW21l3JODwPuh1QOVBFQbii_DjvF0g00/edit?usp=sharing [✖] /learning-to-learn/learning-to-learn.md [✓] https://github.com/Techtonica/curriculum/blob/master/conflict-resolution/conflict-resolution.md [✓] https://github.com/Techtonica/curriculum/blob/master/diversity-inclusion-bias/inclusion.md [✖] /professionalism/professionalism.md [✖] /ergonomics/ergonomics.md [✖] /roles-in-tech/roles-in-tech.md [✓] https://docs.google.com/document/d/1SWiUl0lYQ0sYDM8vQnVhJVOvT4MRA-9pDglKOgqTWak/edit [✖] /growth-mindset/YCLA_LessonPlan_v10.pdf [✖] /command-line/command-line-interface.md [✖] /command-line/command-line-advanced.md [✖] /command-line/dot-profile.md [✖] /command-line/vim.md [✖] /operating-systems/operating-systems.md [✖] /command-line/keyboard-shortcuts.md [✖] /asking-good-questions/asking-good-questions.md [✖] /vs-code/vscode.md [✖] /networking/networking.md [✖] /conflict-resolution/conflict-resolution.md [✓] requests-and-responses/requests-and-responses.md [✓] requests-and-responses/intro-to-dns-ip.md [✖] /projects/first-assessment.md [✖] /pair-programming/pair-programming.md [✖] /html/html.md [✖] /git-version-control/git-version-control.md [✖] /projects/recipe-page/phase-1-html-prompt.md [✖] /git-version-control/gitignore.md [✖] /github-code-storage/github-storage.md [✖] /css/css.md [✓] https://bitsofco.de/what-exactly-is-the-dom/ [✖] /chrome-developer-tools/chrome-developer-tools.md [✖] /projects/recipe-page/phase-2-css-prompt.md [✖] /css/media-queries.md [✖] /ui-ux-design/ui-ux-design.md [✖] /web-patterns/web-patterns.md [✖] /bootstrap/bootstrap.md [✖] /professionalism/building-confidence.md [✖] /projects/recipe-page/phase-3-bootstrap-prompt.md [✓] giving-presentations/giving-presentations.md [✖] /git-version-control/git-version-control-part2.md [✖] /projects/portfolio/portfolio-webpage-1.md [✖] /diversity-inclusion-bias/inclusion.md [✖] /accessibility/accessibility.md [✖] /seo/seo.md [✖] /projects/portfolio/portfolio-webpage-2.md [✖] /github-collaboration/github-collaboration.md [✖] /personal-brand/personal-branding.md [✖] /reading-and-writing-documentation/documentation.md [✖] /writing-readable-code/writing-readable-code.md [✖] /deploying/deploying-1-personal-site.md [✖] /projects/portfolio/portfolio-webpage-3.md [✖] /javascript/javascript-1.md [✖] /javascript/javascript-2.md [✖] /interviewing/whiteboarding.md [✖] /datetime/datetime.md [✖] /interviewing/week-3-whiteboard-challenges.md [✖] /javascript/javascript-3.md [✖] /javascript/javascript-4.md [✖] /javascript/javascript-5.md [✖] /javascript/javascript-6-object-literals.md [✖] /runtime-complexity/runtime-complexity.md [✖] /javascript/basic-js-practice.md [✖] /javascript/week-4-JS-assessment.md [✖] /javascript/javascript-7-oop.md [✖] /javascript/first-js-oop-project.md [✖] https://github.com/Techtonica/curriculum/blob/master/javascript/event-recommender.md [✖] https://github.com/Techtonica/curriculum/blob/master/javascript/event-recommender-part2.md [✖] /testing-and-tdd/testing-and-tdd.md [✖] /testing-and-tdd/jasmine-testing.md [✖] /javascript/javascript-8-regex.md [✖] /debugging/debugging.md [✖] /javascript/javascript-9.md [✖] /api/apis-and-json.md [✖] /ajax/ajax.md [✖] /api/twilio-api.md [✖] /data-visualization/data-visualization.md [✖] /node-js/node-js.md [✖] /express-js/express.md [✓] databases/data-models.md [✖] /command-line/env.md [✖] /databases/data-models.md [✖] /databases/sql.md [✖] /databases/installing-postgresql.md [✖] /databases/relational-databases.md [✓] https://teamtreehouse.com/library/querying-relational-databases [✖] /testing-and-tdd/integration-testing.md [✓] https://teamtreehouse.com/library/using-sql-and-nodejs-with-sequelize [✖] /projects/minimal-api-project.md [✖] /databases/database-migrations.md [✓] https://blog.logrocket.com/setting-up-a-restful-api-with-node-js-and-postgresql-d96d6fc892d8 [✓] https://teamtreehouse.com/library/introduction-to-rest-apis [✓] https://teamtreehouse.com/library/rest-apis-with-express [✖] /agile-development/scrum.md [✖] /projects/eventonica-project.md [✖] /databases/mongo-db.md [✖] /react-js/react.md [✖] /projects/eventonica-react.md [✖] /testing-and-tdd/enzyme-testing.md [✖] /projects/react-assessment.md [✖] /security/web-security.md [✖] /oauth/o-auth.md [✖] /projects/auth0-assessment.md [✖] /deploying/deploying.md [✖] /recursion/recursion.md [✖] /runtime-complexity/memoization.md [✖] /optimization/optimization.md [✖] /javascript/javascript-maps.md [✖] /refactoring/refactoring.md [✖] /optimization/optimizing-your-react-node-project.md [✖] /agile-development/intro-to-agile.md [✖] /functional-programming/FP.md [✖] /projects/advanced-methods-assessment-10.md [✖] /data-structures/intro-to-data-structures.md [✖] /projects/data-structures-algorithms-sprint.md [✖] /data-structures/stack.md [✖] /data-structures/queues.md [✖] /data-structures/deque.md [✖] /data-structures/linked-lists.md [✖] /data-structures/hash-tables.md [✖] /data-structures/trees.md [✖] /algorithms/intro-to-algorithms.md [✖] /algorithms/searching.md [✖] /algorithms/sorting.md [✖] /interviewing/technical-interviewing.md [✖] /projects/data-structures-algorithms-assessment.md [✓] https://haseebq.com/how-to-break-into-tech-job-hunting-and-interviews/#general-study [✖] /navigating-new-codebases/navigating-new-codebases.md [✖] /open-source/open-source.md [✖] /interviewing/non-technical-interviewing.md [✖] /resume-writing/resume-writing.md [✓] https://www.fullstackinterviewing.com/2018/02/02/the-ultimate-guide-to-kicking-ass-on-take-home-coding-challenges.html [✖] /projects/take-home-problems/frontend.md [✖] /projects/take-home-problems/backend.md [✖] /roles-in-tech/technical-writing.md [✖] /roles-in-tech/machine-learning.md [✖] /roles-in-tech/entrepreneurship.md [✖] /roles-in-tech/data-science.md [✖] /roles-in-tech/security.md [✖] /roles-in-tech/qa.md [✖] /roles-in-tech/developer-advocate.md [✖] /roles-in-tech/sales-engineering.md [✖] /roles-in-tech/technical-program-manager.md [✖] /projects/final-project/selecting-your-project.md [✖] /projects/final-project/final-project.md [✖] /mobile-development/mobile-development.md [✖] /women-in-tech-resources/resources-list.md [✖] /professionalism/difficult-workplace-situations.md [✖] /financial-literacy/financial-literacy.md [✖] /interviewing/negotiating.md [✖] /ethics/ethics.md [✖] /sass/sass.md [✖] /python/python.md [✓] https://creativecommons.org/licenses/by-sa/4.0/legalcode [✓] https://i.creativecommons.org/l/by-sa/4.0/88x31.png

164 links checked.

ERROR: 137 dead links found! [✖] /welcome-tips-rules/tech-industry-tips.md → Status: 400 [✖] /learning-to-learn/learning-to-learn.md → Status: 400 [✖] /professionalism/professionalism.md → Status: 400 [✖] /ergonomics/ergonomics.md → Status: 400 [✖] /roles-in-tech/roles-in-tech.md → Status: 400 [✖] /growth-mindset/YCLA_LessonPlan_v10.pdf → Status: 400 [✖] /command-line/command-line-interface.md → Status: 400 [✖] /command-line/command-line-advanced.md → Status: 400 [✖] /command-line/dot-profile.md → Status: 400 [✖] /command-line/vim.md → Status: 400 [✖] /operating-systems/operating-systems.md → Status: 400 [✖] /command-line/keyboard-shortcuts.md → Status: 400 [✖] /asking-good-questions/asking-good-questions.md → Status: 400 [✖] /vs-code/vscode.md → Status: 400 [✖] /networking/networking.md → Status: 400 [✖] /conflict-resolution/conflict-resolution.md → Status: 400 [✖] /projects/first-assessment.md → Status: 400 [✖] /pair-programming/pair-programming.md → Status: 400 [✖] /html/html.md → Status: 400 [✖] /git-version-control/git-version-control.md → Status: 400 [✖] /projects/recipe-page/phase-1-html-prompt.md → Status: 400 [✖] /git-version-control/gitignore.md → Status: 400 [✖] /github-code-storage/github-storage.md → Status: 400 [✖] /css/css.md → Status: 400 [✖] /chrome-developer-tools/chrome-developer-tools.md → Status: 400 [✖] /projects/recipe-page/phase-2-css-prompt.md → Status: 400 [✖] /css/media-queries.md → Status: 400 [✖] /ui-ux-design/ui-ux-design.md → Status: 400 [✖] /web-patterns/web-patterns.md → Status: 400 [✖] /bootstrap/bootstrap.md → Status: 400 [✖] /professionalism/building-confidence.md → Status: 400 [✖] /projects/recipe-page/phase-3-bootstrap-prompt.md → Status: 400 [✖] /git-version-control/git-version-control-part2.md → Status: 400 [✖] /projects/portfolio/portfolio-webpage-1.md → Status: 400 [✖] /diversity-inclusion-bias/inclusion.md → Status: 400 [✖] /accessibility/accessibility.md → Status: 400 [✖] /seo/seo.md → Status: 400 [✖] /projects/portfolio/portfolio-webpage-2.md → Status: 400 [✖] /github-collaboration/github-collaboration.md → Status: 400 [✖] /personal-brand/personal-branding.md → Status: 400 [✖] /reading-and-writing-documentation/documentation.md → Status: 400 [✖] /writing-readable-code/writing-readable-code.md → Status: 400 [✖] /deploying/deploying-1-personal-site.md → Status: 400 [✖] /projects/portfolio/portfolio-webpage-3.md → Status: 400 [✖] /javascript/javascript-1.md → Status: 400 [✖] /javascript/javascript-2.md → Status: 400 [✖] /interviewing/whiteboarding.md → Status: 400 [✖] /datetime/datetime.md → Status: 400 [✖] /interviewing/week-3-whiteboard-challenges.md → Status: 400 [✖] /javascript/javascript-3.md → Status: 400 [✖] /javascript/javascript-4.md → Status: 400 [✖] /javascript/javascript-5.md → Status: 400 [✖] /javascript/javascript-6-object-literals.md → Status: 400 [✖] /runtime-complexity/runtime-complexity.md → Status: 400 [✖] /javascript/basic-js-practice.md → Status: 400 [✖] /javascript/week-4-JS-assessment.md → Status: 400 [✖] /javascript/javascript-7-oop.md → Status: 400 [✖] /javascript/first-js-oop-project.md → Status: 400 [✖] https://github.com/Techtonica/curriculum/blob/master/javascript/event-recommender.md → Status: 404 [✖] https://github.com/Techtonica/curriculum/blob/master/javascript/event-recommender-part2.md → Status: 404 [✖] /testing-and-tdd/testing-and-tdd.md → Status: 400 [✖] /testing-and-tdd/jasmine-testing.md → Status: 400 [✖] /javascript/javascript-8-regex.md → Status: 400 [✖] /debugging/debugging.md → Status: 400 [✖] /javascript/javascript-9.md → Status: 400 [✖] /api/apis-and-json.md → Status: 400 [✖] /ajax/ajax.md → Status: 400 [✖] /api/twilio-api.md → Status: 400 [✖] /data-visualization/data-visualization.md → Status: 400 [✖] /node-js/node-js.md → Status: 400 [✖] /express-js/express.md → Status: 400 [✖] /command-line/env.md → Status: 400 [✖] /databases/data-models.md → Status: 400 [✖] /databases/sql.md → Status: 400 [✖] /databases/installing-postgresql.md → Status: 400 [✖] /databases/relational-databases.md → Status: 400 [✖] /testing-and-tdd/integration-testing.md → Status: 400 [✖] /projects/minimal-api-project.md → Status: 400 [✖] /databases/database-migrations.md → Status: 400 [✖] /agile-development/scrum.md → Status: 400 [✖] /projects/eventonica-project.md → Status: 400 [✖] /databases/mongo-db.md → Status: 400 [✖] /react-js/react.md → Status: 400 [✖] /projects/eventonica-react.md → Status: 400 [✖] /testing-and-tdd/enzyme-testing.md → Status: 400 [✖] /projects/react-assessment.md → Status: 400 [✖] /security/web-security.md → Status: 400 [✖] /oauth/o-auth.md → Status: 400 [✖] /projects/auth0-assessment.md → Status: 400 [✖] /deploying/deploying.md → Status: 400 [✖] /recursion/recursion.md → Status: 400 [✖] /runtime-complexity/memoization.md → Status: 400 [✖] /optimization/optimization.md → Status: 400 [✖] /javascript/javascript-maps.md → Status: 400 [✖] /refactoring/refactoring.md → Status: 400 [✖] /optimization/optimizing-your-react-node-project.md → Status: 400 [✖] /agile-development/intro-to-agile.md → Status: 400 [✖] /functional-programming/FP.md → Status: 400 [✖] /projects/advanced-methods-assessment-10.md → Status: 400 [✖] /data-structures/intro-to-data-structures.md → Status: 400 [✖] /projects/data-structures-algorithms-sprint.md → Status: 400 [✖] /data-structures/stack.md → Status: 400 [✖] /data-structures/queues.md → Status: 400 [✖] /data-structures/deque.md → Status: 400 [✖] /data-structures/linked-lists.md → Status: 400 [✖] /data-structures/hash-tables.md → Status: 400 [✖] /data-structures/trees.md → Status: 400 [✖] /algorithms/intro-to-algorithms.md → Status: 400 [✖] /algorithms/searching.md → Status: 400 [✖] /algorithms/sorting.md → Status: 400 [✖] /interviewing/technical-interviewing.md → Status: 400 [✖] /projects/data-structures-algorithms-assessment.md → Status: 400 [✖] /navigating-new-codebases/navigating-new-codebases.md → Status: 400 [✖] /open-source/open-source.md → Status: 400 [✖] /interviewing/non-technical-interviewing.md → Status: 400 [✖] /resume-writing/resume-writing.md → Status: 400 [✖] /projects/take-home-problems/frontend.md → Status: 400 [✖] /projects/take-home-problems/backend.md → Status: 400 [✖] /roles-in-tech/technical-writing.md → Status: 400 [✖] /roles-in-tech/machine-learning.md → Status: 400 [✖] /roles-in-tech/entrepreneurship.md → Status: 400 [✖] /roles-in-tech/data-science.md → Status: 400 [✖] /roles-in-tech/security.md → Status: 400 [✖] /roles-in-tech/qa.md → Status: 400 [✖] /roles-in-tech/developer-advocate.md → Status: 400 [✖] /roles-in-tech/sales-engineering.md → Status: 400 [✖] /roles-in-tech/technical-program-manager.md → Status: 400 [✖] /projects/final-project/selecting-your-project.md → Status: 400 [✖] /projects/final-project/final-project.md → Status: 400 [✖] /mobile-development/mobile-development.md → Status: 400 [✖] /women-in-tech-resources/resources-list.md → Status: 400 [✖] /professionalism/difficult-workplace-situations.md → Status: 400 [✖] /financial-literacy/financial-literacy.md → Status: 400 [✖] /interviewing/negotiating.md → Status: 400 [✖] /ethics/ethics.md → Status: 400 [✖] /sass/sass.md → Status: 400 [✖] /python/python.md → Status: 400

alexandrosyiangou commented 4 years ago

After checking a few of those "wrong links", they are all internal links, linking to .md files within the project. And they all work. The reason that the tool shows them as failed is, i suppose, because they are not proper http links, that u can do an http request and access them. Should we change the internal links, to point the files from the github project, instead of the relative path within the project?

alodahl commented 4 years ago

Thanks for picking this up, @alexyiangou . Could you run the tool on our whole project to check the links in each file?

alodahl commented 4 years ago

the internal links can stay.

alexandrosyiangou commented 4 years ago

The tool cannot check directories. It can check files from url, or files with relative path to the file location. What I can do is write a script, that you can run whenever you want, and check the whole project

Or I can just remove the broken links I found on README.md and let others work on this as well :slightly_smiling_face:

alodahl commented 4 years ago

🤩 Yes please!

alodahl commented 4 years ago

The only links that seem to need fixing are the event recommender ones, as they were renamed recently to something with eventonica in the name.