{"id":18783445,"url":"https://github.com/futuresea-dev/backend-engineer-take-home-test","last_synced_at":"2025-12-20T15:30:25.893Z","repository":{"id":157980008,"uuid":"413623354","full_name":"futuresea-dev/Backend-Engineer-Take-Home-Test","owner":"futuresea-dev","description":"Backend Engineer Take Home Test","archived":false,"fork":false,"pushed_at":"2021-10-05T16:43:15.000Z","size":3,"stargazers_count":0,"open_issues_count":0,"forks_count":2,"subscribers_count":2,"default_branch":"main","last_synced_at":"2024-12-29T11:44:45.085Z","etag":null,"topics":["bs4","collection","python","requests","urlib","validator"],"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/futuresea-dev.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-05T00:24:20.000Z","updated_at":"2022-02-18T04:17:06.000Z","dependencies_parsed_at":null,"dependency_job_id":"86c3c537-b357-4af9-bfca-21eb023051bc","html_url":"https://github.com/futuresea-dev/Backend-Engineer-Take-Home-Test","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/futuresea-dev%2FBackend-Engineer-Take-Home-Test","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/futuresea-dev%2FBackend-Engineer-Take-Home-Test/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/futuresea-dev%2FBackend-Engineer-Take-Home-Test/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/futuresea-dev%2FBackend-Engineer-Take-Home-Test/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/futuresea-dev","download_url":"https://codeload.github.com/futuresea-dev/Backend-Engineer-Take-Home-Test/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239699579,"owners_count":19682574,"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":["bs4","collection","python","requests","urlib","validator"],"created_at":"2024-11-07T20:39:22.062Z","updated_at":"2025-12-20T15:30:25.561Z","avatar_url":"https://github.com/futuresea-dev.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Backend-Engineer-Take-Home-Test\nBackend Engineer Take Home Test\n# Prompt\n\n### Introduction\n\nPlease only spend 2-4 hours on this. We are interested in the code design and the choices you make. Any works that make the code better (especially when you work in a team) are also welcomed. If you run out of time, please include a document outlining how you would finish. \n\nRestrictions:\n\n- Choose any programming language other than bash.\n- Do not invoke unix utilities (i.e. curl, wget, etc)\n\n### Problem\n\nPlease implement a command line program that can fetch web pages and saves them to disk for later retrieval and browsing.\n\n**Section 1**\n\nFor example if we invoked your program like this: `./fetch [https://www.google.com](https://www.google.com)` then in our current directory we should have a file containing the contents of `www.google.com`. (i.e. `/home/myusername/fetch/www.google.com.html`).\n\nWe should be able to specify as many urls as we want:\n\n```jsx\n$\u003e ./fetch https://www.google.com https://autify.com \u003c...\u003e\n$\u003e ls\nautify.com.html www.google.com.html\n```\n\nIf the program runs into any errors while downloading the html it should print the error to the console.\n\n**Section 2**\n\nRecord metadata about what was fetched:\n\n- What was date and time of last fetch\n- How many links are on the page\n- How many images are on the page\n\nModify the script to print this metadata.\n\nFor example (it can work differently if you like)\n\n```jsx\n$\u003e ./fetch --metadata https://www.google.com\nsite: www.google.com\nnum_links: 35\nimages: 3\nlast_fetch: Tue Mar 16 2021 15:46 UTC\n```\n\n### Extra credit (only if you have time)\n\nArchive all assets as well as html so that you load the web page locally with all assets loading properly.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffuturesea-dev%2Fbackend-engineer-take-home-test","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffuturesea-dev%2Fbackend-engineer-take-home-test","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffuturesea-dev%2Fbackend-engineer-take-home-test/lists"}