kirchen-im-web.de - Directory of Churchy Websites and Social Network Pages
We want to show that many parishes, regional churches and dioceses do a good job in public relations and present those with their websites and social network pages at a map and tabularly. kirchen-im-web.de also compares the follower numbers of the social media pages.
Our Project is oecumenic, i. e. regardless whether Protestants, Catholic or free church - all can participate. You can simply add your church using our form.
- map with all churches which can be filtered according to denomination and network
- table and social media comparison with filtering according to name, postal code, city, country, denomination, type, network
- details page for every church showing all websites and networks, map and church hierarchy and offering download of the social media follower history
- form to add new churches
- statistics and downloadable open data
- available in English and German
The script cron.php
- checks whether the listed websites are still online
- and updates the follower count of the listed social media accounts.
Non-public pages can be excluded via
followerStatus = 2.
followerStatus = 0 means that the last follower update failed.
kirchen-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.
Per default, the whole data is returned in JSON. Parameters can be used to reduce the number of entries which are returned.
Example: A call to https://kirchen-im-web.de/api/churches/?name=test only returns data of the churches whose name contains the string test.
Supported parameters:
ids(optional): entry ids (multiple ids can be separated by comma)parent(optional): only children of the given parent id (optionsallow to include the parent itself and grandchildren)name(optional): the substring of the namepostalCode(optional): the postal codecity(optional): the substring of the citycountry(optional): the country code (e. g.DEfor Germany). Possible values: see$countriesvariable in the configuration filedenomination(optional): the denomination. Possible values: see$denominationsvariable in the configuration filetype(optional): the type. Possible values: see$typesvariable in the configuration filehasWebsiteType(optional): the website type. Possible values: see$websitesvariable in the configuration fileoptions=includeSelf,recursive(optional):- If
parentis given andoptionscontainschildrenRecursive, the grandchildren are also included in the response. - If
parentis given andoptionscontainsincludeSelf, the parent is included in the response.
- If
The data of the church with the given id is returned in JSON. The entry id is the number in the URL of the details page.
Returns the (direct) children of the church with the given id in JSON.
Returns the follower history for the social networks of the church in csv or JSON.
type: csv or JSON (default)
- Clone the Git repository.
- Install the dependencies via
composer installandnpm install. - Run
npm run watchto automatically compile*.scssto*.cssand*.jsto*.min.jswhenever the file is changed. - Create a database and create the tables with
database-scheme.sql. - Create a
config/config.phpwith the database credentials and valid API keys/secrets (cp.config/config.sample.php).
- CSS: recommended configuration for stylelint
npm run csCSSto run a check for compliance with the guidelinesnpm run csfixCSSapplies fixes for violations automatically.
- JavaScript: JavaScript Standard Style, checked by eslint
npm run csJSto run a check for compliance with the guidelinesnpm run csfixJSapplies fixes for violations automatically.
- PHP: PSR12
composer csPHPto run a check for compliance with the guidelinescomposer fixPHPapplies fixes for violations automatically.
To run all checks, use composer cs.
- HTML and CSS, based on Bootstrap
- PHP with libraries OpenCage API, Slim, Symphony Translations, Twig
- JavaScript, especially the libraries Highcharts, Leaflet and tablesort
- Run
npm run production. - Run
composer install --optimize-autoloader --no-dev. - Upload the following to the production server:
- the directories
config,public,src,resources,vendor, and - the file
cron.php.
- the directories
- Create empty directories
cacheanddata.
