{"id":16055836,"url":"https://github.com/patrickrobrecht/kirchen-im-web","last_synced_at":"2026-02-20T16:01:23.498Z","repository":{"id":46115031,"uuid":"59424999","full_name":"patrickrobrecht/kirchen-im-web","owner":"patrickrobrecht","description":"Directory of Churchy Websites and Social Network Pages","archived":false,"fork":false,"pushed_at":"2025-12-03T20:03:14.000Z","size":2828,"stargazers_count":1,"open_issues_count":2,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-12-07T01:44:01.399Z","etag":null,"topics":["church-website","churches","social-media","social-network","social-network-analysis"],"latest_commit_sha":null,"homepage":"https://kirchen-im-web.de","language":"PHP","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/patrickrobrecht.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2016-05-22T17:25:19.000Z","updated_at":"2025-12-03T20:03:14.000Z","dependencies_parsed_at":"2026-01-22T01:03:56.867Z","dependency_job_id":null,"html_url":"https://github.com/patrickrobrecht/kirchen-im-web","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/patrickrobrecht/kirchen-im-web","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/patrickrobrecht%2Fkirchen-im-web","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/patrickrobrecht%2Fkirchen-im-web/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/patrickrobrecht%2Fkirchen-im-web/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/patrickrobrecht%2Fkirchen-im-web/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/patrickrobrecht","download_url":"https://codeload.github.com/patrickrobrecht/kirchen-im-web/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/patrickrobrecht%2Fkirchen-im-web/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29656589,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-20T09:27:29.698Z","status":"ssl_error","status_checked_at":"2026-02-20T09:26:12.373Z","response_time":59,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: 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":["church-website","churches","social-media","social-network","social-network-analysis"],"created_at":"2024-10-09T02:22:34.271Z","updated_at":"2026-02-20T16:01:23.461Z","avatar_url":"https://github.com/patrickrobrecht.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"﻿![Screenshot](public/images/screenshot.png)\n\n[README in Deutsch](./LIESMICH.md)\n\n# [kirchen-im-web.de](https://kirchen-im-web.de/en/) - Directory of Churchy Websites and Social Network Pages \n\nWe want to show that many parishes, regional churches and dioceses\n    do a good job in public relations \n    and present those with their websites and social network pages \n    [at a map](https://kirchen-im-web.de/en/map/) and \n    [tabularly](https://kirchen-im-web.de/en/search/).\nkirchen-im-web.de also compares the follower numbers of the\n    [social media pages](https://kirchen-im-web.de/en/comparison/).\n\nOur Project is oecumenic, i. e. regardless whether Protestants, Catholic or free church - all can participate.\nYou can simply add your church using our [form](https://kirchen-im-web.de/en/add/).\n\n## Features\n* [map](https://kirchen-im-web.de/en/map/)\n    with all churches which can be filtered according to denomination and network\n* [table](https://kirchen-im-web.de/en/search/) and [social media comparison](https://kirchen-im-web.de/en/comparison/)\n    with filtering according to name, postal code, city, country, denomination, type, network\n* [details page](https://kirchen-im-web.de/en/details/1/)\n    for every church showing all websites and networks, map and church hierarchy\n    and offering download of the social media follower history\n* form to [add new churches](https://kirchen-im-web.de/en/add/)\n* [statistics](https://kirchen-im-web.de/en/statistics/)\n    and downloadable [open data](https://kirchen-im-web.de/en/data/)\n* available in English and German\n\n## Link check and follower update\nThe script `cron.php`\n- checks whether the listed websites are still online\n- and updates the follower count of the listed social media accounts.\n    Non-public pages can be excluded via `followerStatus = 2`.\n\n`followerStatus = 0` means that the last follower update failed.\n\n\n## API Documentation\n\nkirchen-im-web.de offers the data via a public API at `https://kirchen-im-web.de/api/` which returns all the data on the selected churches in JSON format. Even if there is only one result for the query, the data is returned as a list.\n\n### GET /api/churches/\n\nPer default, the whole data is returned in [JSON](https://www.json.org/).\nParameters can be used to reduce the number of entries which are returned.\n\nExample: A call to `https://kirchen-im-web.de/api/churches/?name=test` only returns data of the churches whose name contains the string `test`.\n\nSupported parameters:\n\n* `ids` (optional):\n    entry ids (multiple ids can be separated by comma)\n* `parent` (optional):\n    only children of the given parent id\n    (`options` allow to include the parent itself and grandchildren)\n* `name` (optional):\n    the substring of the name\n* `postalCode` (optional):\n    the postal code\n* `city` (optional):\n    the substring of the city\n* `country` (optional):\n    the country code (e. g. `DE` for Germany).\n\tPossible values: see `$countries` variable in the [configuration file](./src/Helpers/Configuration.php)\n* `denomination` (optional):\n    the denomination.\n\tPossible values: see `$denominations` variable in the configuration file\n* `type` (optional):\n    the type.\n\tPossible values: see `$types` variable in the configuration file\n* `hasWebsiteType` (optional):\n    the website type.\n\tPossible values: see `$websites` variable in the configuration file\n* `options=includeSelf,recursive` (optional):\n    * If `parent` is given and `options` contains `childrenRecursive`,\n        the grandchildren are also included in the response.\n    * If `parent` is given and `options` contains `includeSelf`,\n        the parent is included in the response.\n\n### GET /api/churches/{id}/\nThe data of the church with the given id is returned in JSON.\nThe entry id is the number in the URL of the details page.\n\n### GET /api/churches/{id}/children/\nReturns the (direct) children of the church with the given id in JSON.\n\n### GET /api/churches/{id}/followers/\nReturns the follower history for the social networks of the church in csv or JSON.\n\n* `type`: csv or JSON (default)\n\n\n## How to develop\n\n### Requirements\n* [Apache](https://httpd.apache.org/) 2.4+\n* [PHP](https://secure.php.net/) 8.4\n* [MySQL](https://dev.mysql.com/downloads/) database\n* [npm](https://www.npmjs.com/) 11+\n* [Composer](https://getcomposer.org/) 2+\n\n### Setup\n* Clone the Git repository.\n* Install the dependencies via `composer install` and `npm install`.\n* Run `npm run watch` to automatically compile `*.scss` to `*.css` \n    and `*.js` to `*.min.js` whenever the file is changed.\n* Create a database and create the tables with `database-scheme.sql`.\n* Create a `config/config.php` with the database credentials and valid API keys/secrets\n    (cp. `config/config.sample.php`).\n\n### Code Style Guidelines\n- CSS: recommended configuration for [stylelint](https://stylelint.io/)\n    - `npm run csCSS` to run a check for compliance with the guidelines\n    - `npm run csfixCSS` applies fixes for violations automatically.\n- JavaScript: [JavaScript Standard Style](https://standardjs.com/rules.html), checked by [eslint](https://eslint.org/)\n    - `npm run csJS` to run a check for compliance with the guidelines\n    - `npm run csfixJS` applies fixes for violations automatically.\n- PHP: [PSR12](https://www.php-fig.org/psr/psr-12/)\n    - `composer csPHP` to run a check for compliance with the guidelines\n    - `composer fixPHP` applies fixes for violations automatically.\n\nTo run all checks, use `composer cs`.\n\n## Used programming languages and libraries\n* [HTML and CSS](https://www.w3.org/standards/webdesign/htmlcss),\n    based on [Bootstrap](https://getbootstrap.com/)\n* [PHP](https://secure.php.net/) with libraries\n    [OpenCage API](https://github.com/OpenCageData/php-opencage-geocode),\n    [Slim](https://www.slimframework.com/),\n    [Symphony Translations](https://symfony.com/doc/current/translation.html),\n    [Twig](https://twig.symfony.com/)\n* JavaScript, especially the libraries\n    [Highcharts](https://www.highcharts.com/),\n    [Leaflet](https://leafletjs.com/) and \n    [tablesort](https://github.com/tristen/tablesort)\n\n## How to deploy\n- Run `npm run production`.\n- Run `composer install --optimize-autoloader --no-dev`.\n- Upload the following to the production server: \n    - the directories `config`, `public`, `src`, `resources`, `vendor`, and\n    - the file `cron.php`.\n- Create empty directories `cache` and `data`.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpatrickrobrecht%2Fkirchen-im-web","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpatrickrobrecht%2Fkirchen-im-web","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpatrickrobrecht%2Fkirchen-im-web/lists"}