{"id":20169062,"url":"https://github.com/semyon-dev/znai-krai","last_synced_at":"2025-04-10T02:16:27.777Z","repository":{"id":38080196,"uuid":"250634284","full_name":"semyon-dev/znai-krai","owner":"semyon-dev","description":"Бэкенд и API проекта \"Знай край\"","archived":false,"fork":false,"pushed_at":"2023-06-01T20:34:50.000Z","size":4048,"stargazers_count":5,"open_issues_count":1,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-10T02:16:18.149Z","etag":null,"topics":["backend","go","google-sheets","goolge-maps","mongodb","nonprofit-organizations","znai-krai"],"latest_commit_sha":null,"homepage":"https://znai-krai.zekovnet.ru/","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/semyon-dev.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","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-03-27T19:59:31.000Z","updated_at":"2024-01-11T08:48:41.000Z","dependencies_parsed_at":"2024-06-19T22:52:29.986Z","dependency_job_id":"89b6d4fa-27a1-48f8-bf45-a45f419f827e","html_url":"https://github.com/semyon-dev/znai-krai","commit_stats":{"total_commits":182,"total_committers":5,"mean_commits":36.4,"dds":"0.11538461538461542","last_synced_commit":"d123304909ad2bae0b84fc7568782c38389ed3b2"},"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/semyon-dev%2Fznai-krai","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/semyon-dev%2Fznai-krai/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/semyon-dev%2Fznai-krai/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/semyon-dev%2Fznai-krai/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/semyon-dev","download_url":"https://codeload.github.com/semyon-dev/znai-krai/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248142906,"owners_count":21054671,"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":["backend","go","google-sheets","goolge-maps","mongodb","nonprofit-organizations","znai-krai"],"created_at":"2024-11-14T01:11:15.618Z","updated_at":"2025-04-10T02:16:27.744Z","avatar_url":"https://github.com/semyon-dev.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Знай край\nБэкенд социального и некоммерческого проекта Руси Сидящей - Знай Край. Проект был начат [на хакатоне Новой Газеты](https://projector2020.te-st.ru/).\n\n\u003cimg src=\"https://github.com/semyon-dev/znai-krai/blob/master/img.png\" alt=\"drawing\" width=\"500\"/\u003e\n\n### Используемые технологии на бэкенде\n* Golang v1.14\n* MongoDB\n* Gin\n* Google Sheets API\n* Google Maps API\n* Yandex Search API\n\n### Ссылки\n* Сайт проекта [znai-krai.zekovnet.ru](https://znai-krai.zekovnet.ru/)\n* Публичный API https://api.znai-krai.zekovnet.ru/ и https://api-znaikrai.herokuapp.com/\n* Исходный код сайта: https://github.com/kniazevgeny/znaikrai\n\n### Лицензия\nznai-krai is licensed under the [Creative Commons Attribution NonCommercial ShareAlike (CC-NC-SA)](https://github.com/semyon-dev/znai-krai/blob/master/LICENSE)\n\nЛицензия позволяет другим перерабатывать, исправлять и развивать проект на некоммерческой основе, до тех пор пока они упоминают оригинальное авторство и лицензируют производные работы на аналогичных лицензионных условиях. Все новые работы, основанные на этом проекте, должны иметь эту же лицензию, поэтому все производные работы также должны носить некоммерческий характер.\n\n### Contributing\nМы открыты к предложениям и изменениям, вы можете испрользовать issues или [связаться с нами](https://t.me/semyon_dev).\n\n### Запуск\n\nНеобходимо добавить переменные окружения (можно через .env в корне проекта)\n\nПодробнее смотрите пакет config\n\n`go run main.go`\n\nИли скомпилировать в единый бинарник:\n\n`go build main.go`\n\n### Документация к API методам\n##### Публичные методы\n\nПротокол: HTTP, формат данных: JSON\n\n\u003cdetails\u003e\n\u003csummary\u003eметоды для получения ФСИН учреждений\u003c/summary\u003e\n\nВсе сразу \n  \n```\nGET /places\n```\nОтвет: массив мест:\n```\n[\n     {\"_id\": \"5ed2c5fd0c4a85b90ef09431\",\n      \"name\": \"ФКУ «ИК № 10 ГУФСИН по Приморскому краю»\",\n      \"type\": \"Исправительная колония\",\n      \"position\": {\n        \"lat\": 43.987453,\n        \"lng\": 132.337293\n      },\n      \"coronavirus\": false,\n      \"number_of_violations\": 0},\n]\n```\nПояснение:\n`_id` - уникальный id места (нужен для /places/:id) \\\n`name` - полное название учреждения \\\n`type` - тип колонии \\\n`position` - геолокация \\\n`coronavirus` - имеется ли информация о коронавирусе \\\n`number_of_violations` - кол-во нарушений по нашей информации \\\n\nКонкретное место:\n```\nGET /places/\u003cid\u003e\n```\nПример ответа для запроса /places/5ed2c5fd0c4a85b90ef09431:\n```\n{\n  \"place\": {\n    \"_id\": \"5ed2c5fd0c4a85b90ef09431\",\n    \"name\": \"ФКУ «ИК № 10 ГУФСИН по Приморскому краю»\",\n    \"type\": \"Исправительная колония\",\n    \"position\": {\n      \"lat\": 43.987453,\n      \"lng\": 132.337293\n    },\n    \"coronavirus\": false,\n    \"number_of_violations\": 0,\n    \"location\": \"Михайловский район, пос. Горное\",\n    \"notes\": \"\",\n    \"phones\": [\n      \"+7 (42346) 3-82-33\",\n      \"+7 (42346) 3-81-31\"\n    ],\n    \"hours\": \"пн-пт 8:00–16:12\",\n    \"website\": \"http://25.fsin.su/kontaktnaya-informatsiya-po-uchrezhdeniyam-kraya.php?clear_cache=Y\",\n    \"address\": \"Россия, Приморский край, Михайловский район, поселок Горное, улица Ленина, 25\",\n    \"warning\": \"\",\n    \"violations\": null,\n    \"corona_violations\": null\n  }\n}\n```\nПомимо параметров из /places будут:\n`location` - местоположение (Город, поселок и тд)\n`notes` - заметки учреждения (из википедии)\n`phones` - массив телефонов\n`hours` - часы работы\n`website` - веб сайт\n`address` - полный адрес\n`warning` - предупреждение (например, место нуждается в проверке)\n`violations` - нарушения\n`corona_violations` - информация о коронавирусе\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eметоды для получения нарушений\u003c/summary\u003e\n\nНарушения (в том числе по короне) есть только для конкретных учреждений\n\n* получение всех нарушений у которых есть информация по коронавирусу \\\n`GET /corona_places`\n\n* получение всех нарушений \\\n`GET /violations`\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eметоды для получения аналитики\u003c/summary\u003e\n  \n* пояснения по разным параметрам (скорее для аналитики) \\\n`GET /explanations`\n\n* аналитика по разным параметрам (общая статистика) \\\n`GET /analytics`\nПример ответа:\n```\n{\n  \"total_count\": 4995,\n  \"total_count_appeals\": 377,\n  \"total_count_appeals_corona\": 105,\n  \"violations_stats\": {\n    \"communication\": {\n      \"total_count\": 1124,\n      \"total_count_appeals\": 967,\n      \"count_by_years\": {\n        \"2014\": 54,\n        \"2015\": 103,\n        \"2016\": 99,\n        \"2017\": 76,\n        \"2018\": 104,\n        \"2019\": 2\n      },\n      \"subcategories\": {\n        \"can_prisoners_submit_complaints\": {\n          \"total_count\": 175,\n          \"total_count_appeals\": 366,\n          \"values\": {\n            \"Да\": 84,\n            \"Затрудняюсь ответить\": 107,\n            \"Нет\": 175\n          }\n        },\n       ...\n}\n```\nПараметры:\n`total_count` - общее кол-во нарушений по всех заявкам и типам\n`total_count_appeals` - общее кол-во заявок\n`total_count_appeals_corona` - общее кол-во заявок по коронавирусу\n`violations_stats` - категории аналитики, внутри:\n`subcategories` - подкатегории\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eДругое\u003c/summary\u003e\n  \n* получение всех вопросов для создания новых нарушений со стороны клиента `(/form)` \\\n`GET /formQuestions`\n\n\u003c/details\u003e\n\n\n##### Закрытые методы ([свяжитесь](https://t.me/semyon_dev), чтобы получить доступ)\n\u003cdetails\u003e\n\u003csummary\u003eЗакрытые методы\u003c/summary\u003e\n  \n* сообщение новых нарушений (форм, заявок)\n```\nPOST /form\nplace_id string\nПараметры нужно получать из GET /formQuestions\n```\n\n* создание сообщений по коронавирусу (форм - заявок)\n```\nPOST /form_corona\nПараметры:\nname_of_fsin string (название МЛС)\nplace_id string\nregion string\ncontacts string\ninfo string\n```\n\n* сообщение ошибок/багов\n```\nPOST /report\nПараметры:\nemail string\nbug string\nplace_id string\nname_of_fsin string\n```\n\n* подписка на email рассылку\n```\nPOST /mailing\nПараметры:\nname string (Имя)\nemail string (обязательный параметр)\n```\n\n* Deprecated: отзывы с Google Maps\n```\nGET /reviews/\u003cname\u003e\n```\n\n\u003c/details\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsemyon-dev%2Fznai-krai","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsemyon-dev%2Fznai-krai","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsemyon-dev%2Fznai-krai/lists"}