Skip to content

Feature/add json ld schema#293

Open
ArnabNath1 wants to merge 3 commits into
komalharshita:mainfrom
ArnabNath1:feature/add-json-ld-schema
Open

Feature/add json ld schema#293
ArnabNath1 wants to merge 3 commits into
komalharshita:mainfrom
ArnabNath1:feature/add-json-ld-schema

Conversation

@ArnabNath1
Copy link
Copy Markdown

@ArnabNath1 ArnabNath1 commented May 18, 2026

Summary [required]

This PR adds a JSON-LD structured data block to the project details template (templates/project.html). By marking up the project with the LearningResource schema type, this change allows search engines to better understand the rich, structured information on the page (title, description, skills, difficulty) and surface it in organic search rich results. It also includes tests to assert the JSON-LD is correctly served, alongside a minor bug fix for a previously failing test fixture in the test suite.

Related Issue [required]

Closes #97

Type of Change [required]

  • Bug fix — resolves a broken behaviour
  • Feature — adds new functionality
  • Data — adds new projects to data/projects.json
  • Documentation — updates docs, README, or code comments only
  • Style — CSS or visual changes only, no logic change
  • Refactor — restructures code without changing behaviour
  • Test — adds or updates tests

What Was Changed [required]

File Change made
templates/project.html Added <script type="application/ld+json"> inside the <head> dynamically populated with project attributes.
tests/test_basic.py Added test_project_detail_json_ld_present to verify the schema is rendered. Fixed test_health_check to use get_client() instead of relying on a missing fixture.

How to Test This PR [required]

  1. Clone this branch: git checkout feature/add-json-ld-schema
  2. Install dependencies: pip install -r requirements.txt
  3. Run the app: python app.py
  4. Open http://127.0.0.1:5000/project/1 and inspect the page source to verify the <script type="application/ld+json"> tag exists in the <head>.
  5. Run the tests: python tests/test_basic.py

Expected test output:

Test Results [required]

PASS test_projects_json_loads PASS test_each_project_has_required_fields PASS test_find_project_by_id_found PASS test_find_project_by_id_missing PASS test_parse_skills_basic PASS test_parse_skills_empty_string PASS test_parse_skills_single_entry PASS test_score_single_project_full_match PASS test_score_single_project_no_match PASS test_get_recommendations_returns_results PASS test_get_recommendations_max_three PASS test_get_recommendations_no_match_returns_empty PASS test_get_recommendations_result_format PASS test_validate_all_valid PASS test_validate_missing_skills PASS test_validate_missing_level PASS test_validate_missing_interest PASS test_validate_missing_time PASS test_validate_all_missing PASS test_home_route PASS test_recommend_api_valid PASS test_recommend_api_missing_field PASS test_recommend_api_empty_body PASS test_project_detail_found PASS test_project_detail_not_found PASS test_project_detail_json_ld_present PASS test_internal_server_error_page PASS test_view_code_found PASS test_download_code_found PASS test_health_check PASS test_scoring_weights_has_all_keys

31 passed, 0 failed out of 31 tests

Self-Review Checklist [required]

  • I have read CONTRIBUTING.md and followed all guidelines
  • My branch name follows the convention: feat/, fix/, docs/, data/, style/, test/
  • I have run python tests/test_basic.py and all 31 tests pass
  • I have run flake8 . locally and there are no errors
  • I have not introduced any print() or console.log() debug statements
  • Every new function I wrote has a docstring
  • I have not modified files outside the scope of the linked issue
  • If I changed the UI, I tested it at 375px (mobile) and 1280px (desktop)
  • If I added a project to the dataset, it has all required JSON fields

Notes for Reviewer

Note: I updated the test_health_check function in tests/test_basic.py to instantiate the test client manually via get_client() rather than expecting it as a fixture since it was causing the direct test script execution to fail

@vercel
Copy link
Copy Markdown

vercel Bot commented May 18, 2026

@ArnabNath1 is attempting to deploy a commit to the komalsony234-1530's projects Team on Vercel.

A member of the Team first needs to authorize it.

@komalharshita
Copy link
Copy Markdown
Owner

@ArnabNath1 kindly resolve the merge conflicts

@komalharshita komalharshita added need review Further information is requested gssoc-2026 labels May 19, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add structured data (JSON-LD Schema.org) markup to project detail pages for SEO

2 participants