{"id":19294287,"url":"https://github.com/mdecker-mobilecomputing/angular_chucknorrisfacts","last_synced_at":"2026-04-18T01:32:09.787Z","repository":{"id":38452619,"uuid":"253109277","full_name":"MDecker-MobileComputing/Angular_ChuckNorrisFacts","owner":"MDecker-MobileComputing","description":"Angular application acting as client for REST-API provided by icndb.com.","archived":false,"fork":false,"pushed_at":"2024-06-18T03:44:24.000Z","size":3763,"stargazers_count":0,"open_issues_count":7,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-10-22T03:28:20.960Z","etag":null,"topics":["angular","bootstrap","chuck-norris-facts","chuck-norris-jokes","gh-pages","rest-client"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/MDecker-MobileComputing.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","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":"2020-04-04T22:19:26.000Z","updated_at":"2023-10-01T12:40:45.000Z","dependencies_parsed_at":"2023-12-01T08:28:26.886Z","dependency_job_id":"aff8e730-8e4f-429e-973b-d9a6e45004ee","html_url":"https://github.com/MDecker-MobileComputing/Angular_ChuckNorrisFacts","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/MDecker-MobileComputing/Angular_ChuckNorrisFacts","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MDecker-MobileComputing%2FAngular_ChuckNorrisFacts","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MDecker-MobileComputing%2FAngular_ChuckNorrisFacts/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MDecker-MobileComputing%2FAngular_ChuckNorrisFacts/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MDecker-MobileComputing%2FAngular_ChuckNorrisFacts/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MDecker-MobileComputing","download_url":"https://codeload.github.com/MDecker-MobileComputing/Angular_ChuckNorrisFacts/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MDecker-MobileComputing%2FAngular_ChuckNorrisFacts/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31953511,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-18T00:39:45.007Z","status":"ssl_error","status_checked_at":"2026-04-18T00:39:20.671Z","response_time":62,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["angular","bootstrap","chuck-norris-facts","chuck-norris-jokes","gh-pages","rest-client"],"created_at":"2024-11-09T22:37:48.187Z","updated_at":"2026-04-18T01:32:09.767Z","avatar_url":"https://github.com/MDecker-MobileComputing.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Angular application to fetch Chuck Norris facts from icndb.com #\r\n\r\n\u003cbr\u003e\r\n\r\n**Not working anymore, because Web-API `icndb.com` was disbled?**\r\n\r\n\u003cbr\u003e\r\n\r\nSimple [Angular](https://angular.io) application to fetch so called [Chuck Norris facts](https://en.wikipedia.org/wiki/Chuck_Norris_facts) (short jokes)\r\nfrom the REST-API provided by [icndb.com](http://www.icndb.com/).\r\n\r\nYou can try out the application directly [**here**](https://mdecker-mobilecomputing.github.io/Angular_ChuckNorrisFacts/) via *GitHub Pages*.\r\n\r\n\u003cbr\u003e\r\n\r\n----\r\n\r\n## References ##\r\n\r\n\u003cbr\u003e\r\n\r\n* [Description of REST-API provided by ICNDB](http://www.icndb.com/api/)\r\n* File [ExampleResponseFromRestAPI.json](./ExampleResponseFromRestAPI.json) with an example for an response from the\r\n  REST-API when request asked to return 5 random jokes.\r\n* [Article on \"Chuck Norris facts\" on Wikipedia](https://en.wikipedia.org/wiki/Chuck_Norris_facts)\r\n* [Tutorial on HTTP-GET requests in an Angular application](https://www.ahmedbouchefra.com/angular/angular-9-8-example-import-httpclientmodule-and-send-http-ajax-requests/)\r\n* [Video \"Chuck Norris facts read by Chuck Norris\" on youtube.com](https://www.youtube.com/watch?v=kQmPMZeN7JQ)\r\n* Similar API: https://api.chucknorris.io/\r\n\r\n\u003cbr\u003e\r\n\r\n----\r\n\r\n## Building the application ##\r\n\r\n\u003cbr\u003e\r\n\r\nExecute command `npm run build` to build the application.\r\n\r\nThe target folder for output of command `ng build` was moved to folder [docs](docs/) to enable serving of the generated application via [GitHub Pages](https://pages.github.com/), see key `architect/build/options/outputPath` in file [angular.json](angular.json).\r\n\r\n\u003cbr\u003e\r\n\r\nThe application has a [Web App Manifest](https://web.dev/add-manifest/), see file [src/manifest.json](src/manifest.json).\r\nThis manifest is declared in file [angular.json](angular.json) in the array `projects/architect/assets`, so\r\nit is also copied to the target folder [docs](docs/).\r\nThis manifest file is referenced by a `\u003clink\u003e` in file [src/index.html](src/index.html).\r\nThe *Web App Manifest* can be checked in Chome und Chrome-based browsers like Opera in the *Developer Tools* under \"Application | Manifest\",\r\nsee [this screenshot](screenshots/screenshot_CheckApplicationManifest.png).\r\n\r\n\u003cbr\u003e\r\n\r\n----\r\n\r\n## Internals ##\r\n\r\n\u003cbr\u003e\r\n\r\nThe actual loading of the jokes from the REST-API via HTTP is implemented in service class [icndb.service.ts](src/app/icndb.service.ts).\r\nThe jokes are not fetched individually, but in batches which are stored in an internal array that acts as queue.\r\n\r\nFor styling the [bootstrap](https://getbootstrap.com) framework is used.\r\n\r\nThis Angular application can access the REST-API from a different domains than it is served itself because the\r\nHTTP response from the REST-API contains the HTTP header `Access-Control-Allow-Origin: *`.\r\nThis HTTP header tells most browsers to not block the Ajax request made by this application despite its\r\nviolation of the *Same Origin Policy*.\r\n\r\nThe favorites are stored in the browser's *Local Storage*, i.e. stored favorites are available only in the browser installation that was used to save them. \r\nThe favorites in the *Local Storage* can be checked in the browser's developer tools;\r\nfor example, in Chrome und Chrome-based browsers like Opera you have to open the \r\n*Developer Tools* and navigate to \"Application | Local Storage\", see \r\n[this screenshot](screenshots/screenshot_CheckLocalStorage.png).\r\n\r\n\u003cbr\u003e\r\n\r\n----\r\n\r\n## License ##\r\n\r\n\u003cbr\u003e\r\n\r\nSee the [LICENSE file](LICENSE.md) for license rights and limitations (GPL v3) for the files in this repository.\r\n\r\nThe author of this application is *NEITHER* related to [The Internet Chuck Norris Database (icndb.com)](http://www.icndb.com/) *NOR* to Chuck Norris.\r\n\r\n\u003cbr\u003e\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmdecker-mobilecomputing%2Fangular_chucknorrisfacts","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmdecker-mobilecomputing%2Fangular_chucknorrisfacts","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmdecker-mobilecomputing%2Fangular_chucknorrisfacts/lists"}