{"id":13770164,"url":"https://github.com/comerc/pet_finder","last_synced_at":"2026-02-18T03:11:24.515Z","repository":{"id":41192120,"uuid":"315002180","full_name":"comerc/pet_finder","owner":"comerc","description":"Pet project with Flutter + Firebase + Hasura.","archived":false,"fork":false,"pushed_at":"2023-12-17T12:30:43.000Z","size":11276,"stargazers_count":65,"open_issues_count":1,"forks_count":23,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-05-11T02:45:18.722Z","etag":null,"topics":["bloc","flutter","graphql","hasura"],"latest_commit_sha":null,"homepage":"","language":"Dart","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/comerc.png","metadata":{"files":{"readme":"README.md","changelog":null,"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}},"created_at":"2020-11-22T09:33:49.000Z","updated_at":"2025-04-23T23:18:33.000Z","dependencies_parsed_at":"2024-01-06T20:54:38.090Z","dependency_job_id":null,"html_url":"https://github.com/comerc/pet_finder","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/comerc/pet_finder","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/comerc%2Fpet_finder","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/comerc%2Fpet_finder/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/comerc%2Fpet_finder/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/comerc%2Fpet_finder/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/comerc","download_url":"https://codeload.github.com/comerc/pet_finder/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/comerc%2Fpet_finder/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29566759,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-18T00:47:08.760Z","status":"online","status_checked_at":"2026-02-18T02:00:09.468Z","response_time":162,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["bloc","flutter","graphql","hasura"],"created_at":"2024-08-03T17:00:34.897Z","updated_at":"2026-02-18T03:11:19.503Z","avatar_url":"https://github.com/comerc.png","language":"Dart","funding_links":["https://www.patreon.com/comerc"],"categories":["Built with Hasura"],"sub_categories":[],"readme":"# Pet Finder\n\nВсе любят котиков!\n\nЕсли ты можешь помочь, ты должен помочь!\n\nPet project with Flutter + Firebase + Hasura.\n\n![alt text](assets/head.png)\n\n## How to Start\n\n```bash\n$ flutter packages pub run build_runner build --delete-conflicting-outputs\n$ cd data \u0026\u0026 docker-compose up -d\n```\n\n## For VSCode Apollo GraphQL (deprecated)\n\n```bash\n$ npm install -g apollo graphql\n```\n\ncreate `./apollo.config.js`\n\n```js\nmodule.exports = {\n  client: {\n    includes: ['./lib/**/*.dart'],\n    service: {\n      name: '\u003cproject name\u003e',\n      url: '\u003cgraphql endpoint\u003e',\n      // optional headers\n      headers: {\n        'x-hasura-admin-secret': '\u003csecret\u003e',\n        'x-hasura-role': 'user',\n      },\n      // optional disable SSL validation check\n      skipSSLValidation: true,\n      // alternative way\n      // localSchemaFile: './schema.graphql',\n    },\n  },\n}\n```\n\nhow to download `schema.json` for `localSchemaFile`\n\n```bash\n$ apollo schema:download --endpoint \u003cgraphql endpoint\u003e --header 'X-Hasura-Admin-Secret: \u003csecret\u003e' --header 'X-Hasura-Role: user'\n```\n\n## For VSCode Apollo Rover\n\n```bash\n$ npm install -g @apollo/rover\n$ rover graph introspect http://localhost:8080/v1/graphql \u003e schema.graphql\n```\n\n## Оптимизация времени сборки Firebase iOS SDK\n\nhttps://github.com/invertase/firestore-ios-sdk-frameworks\n\n## How to save DB-Schema\n\n```bash\n$ cd data\n$ rm -rf migrations\n$ hasura migrate create \"init\" --from-server --database-name default\n$ rm -rf metadata\n$ hasura metadata export\n```\n\n## How to restore DB-Schema\n\n```bash\n$ cd data\n$ hasura migrate apply\n$ hasura metadata apply\n```\n\nor\n\n```bash\n$ cd data\n$ cat backup.sql | docker exec -i pet-finder-postgres-1 psql -U postgres\n$ hasura metadata apply\n```\n\n## How to backup data\n\n```bash\n$ curl --location --request POST 'http://localhost:8080/v1alpha1/pg_dump' --header 'x-hasura-admin-secret: myadminsecretkey' --header 'Content-Type: application/json' --data-raw '{ \"opts\": [\"-O\", \"-x\", \"--schema\", \"public\", \"--schema\", \"auth\"], \"clean_output\": true}' -o backup.sql\n```\n\nor data only:\n\n```bash\n$ curl --location --request POST 'http://localhost:8080/v1alpha1/pg_dump' --header 'x-hasura-admin-secret: myadminsecretkey' --header 'Content-Type: application/json' --data-raw '{ \"opts\": [\"-O\", \"-x\", \"--data-only\", \"--schema\", \"public\", \"--schema\", \"auth\"], \"clean_output\": true}' -o backup.sql\n```\n\n## 👨‍🎨 Inspiration\n\n- https://github.com/gerfagerfa/pet_finder\n- https://github.com/comerc/flutter_idiomatic\n\nHope you guys enjoy it !  \n:wave::wave::wave:\n\n## Contacts\n\n- E-Mail: [andrew.kachanov@gmail.com](mailto:andrew.kachanov@gmail.com)\n- Telegram: [@AndrewKachanov](https://t.me/AndrewKachanov)\n\n## Support Me\n\n- [Patreon](https://www.patreon.com/comerc)\n- [QIWI](https://donate.qiwi.com/payin/comerc)\n\n## More Info\n\nЭто выпускная работа моих курсов по Flutter. Набрал группу учеников, мы занимались 3 месяца (всю осень 2020). Преследовал цель прокачать пробелы - учитель учится у своих учеников. Теперь умею готовить идиоматичный код, написал заметку: https://habr.com/ru/post/528106/\n\nКак промежуточный этап для основного проекта, смотрите https://github.com/comerc\n\n😺 We love cats!\n\n## YouTube-каналы про бездомных котиков\n\n- https://www.youtube.com/c/KatuChikSik\n\n## Фонды\n\n- https://rayfund.ru/animals/\n- https://www.fond-nika.ru/ourpets\n- https://www.fund4dogs.ru/index.php/nashi-pitomtsy\n\n## Приложения\n\n- https://teddyfood.com/ru/about/\n- https://saveus.by/\n\n## Как платформа для волонтёрской инициативы по пропитанию?\n\nНаткнулся на [Авито](https://www.avito.ru/kaliningrad/tovary_dlya_zhivotnyh/othody_ryby_2467581862):\n\nОтходы от рыбы пиламиды, много мясо остаётся головы хвосты и тд..\nКаждую неделю можно забирать минимум по 10 мешков, в один мешок отходы от 10-12 рыб. Рыба свежая всегда, привоз каждую неделю бывает и два раза в неделю, отдаём замороженную, в дороге не по течёт, это огромный плюс, может кому нужно для животных, другие берут для одобрения, да и другие делают котлеты.. и тд.. без разницы. Адрес: Калининград, Александра Невского 44, Магазин Пингвин 39, вывиска большая хорошо видно, есть парковка, если буду свободным помогу загрузить без проблем.\n!!( Многие звонят и пишут думают что отдаём рыбу как на первой фотки, но мы отдаём отходы от рыбы !)) отходы на второй фотки...))) в несколько плёночных мешков.\nСпасибо))\nЯ создал группу в ватсапе оставьте ваш номер и я вас добавлю и там о бо всём договоримся.\n\n## Draft v2\n\n[Mind Map](https://miro.com/app/board/uXjVONvbOHQ=/)\n\n- В рамках программы \"весеннее обострение - котики за 50 дней\"\n- Фокус: спасение питомцев от бездомной жизни (и ничего более)\n- Только котики и собачки (тяжело набрать критическую массу по другим питомцам)\n- Преемственность к v1 - вёрстка и state management\n- Переиспользование minsk8 - картография, animation, flutter_candies\n- Применение наработок flutter_idiomatic - соглашения и тесты (Unit, Widget, Integration)\n- Концепция \"from zero to hero\" - от нового branch-а к релизу на FlutterFlow \u0026 Hasura\n- Релизы: iOS, Android, FlutterWeb, SEO-web, telegram-bot, админка (отдельно), комьюнити (discourse.org)\n- Вовлечённость: не животные, а питомцы (с именами); не пользователи, а соучастники\n- Функционал:\n  - onboarding - краткое представление платформы\n  - лента питомцев с сортировкой (новые / популярные)\n  - блог питомца\n  - избранное\n  - фасетный поиск (с отрицанием)\n  - категории (таксономия)\n  - гео-поиск\n  - нотификация по сохранённым критериям поиска (рыбалка)\n  - роли: волонтёр, хозяин, модератор, администратор\n  - аутентификация и профиль для соучастников\n  - top волонтёров (с защитой от читерства - только пристроенные питомцы)\n  - лента новых постов в блогах питомцев - 15 минут славы Энди Уорхола\n  - личная переписка между волонтёром и хозяином с формализацией диалога\n  - настройки приложения\n  - потеряшки - второй список, легко добавить функционал в MVP\n- OpenSource\n- API (расширяемость)\n- Защита от форка (приложений и данных)\n- Промо: Habr, Dev.to, Hasura-Blog, FlutterFlow-Blog, ProductHunt, Kickstarter, YouTube-каналы\n- Посевной сарафан через гиков (\"все любят котиков\")\n- Стимулировать родителей завести питомца через вовлечение на платформу детей\n- Сбор и анализ данных для A/B и CI\n- Цифры:\n  - на улице котики живут в среднем 1-2 года, а в домашних условиях - кратно больше\n  - хозяева котиков живут заметно дольше и ярче\n  - воспитание детей через общение с питомцами\n  - во время пандемии увеличился спрос питомцев, но что будет с ними, когда хозяевам потребуется вернуться на работу?\n- Название платформы:\n  - нарицательное\n  - не привязано к локальному рынку (типа \"Кот Матроскин\")\n  - варианты: Меховички, Кошкин Дом, Зверопоиск, ...\n- Хотелки:\n  - Разблюдовка ресурсов (деньги и время) на содержание питомца\n  - Календарь \"техобслуживания\" с нотификацией (прививки-вакцинация и т.п.)\n  - \"Бортовой журнал\": взвешивание, стрижка когтей, чистка зубов, баня\n  - Инструкции по любительскому воспитанию питомцев, как рубрика для блогов (UGC)\n  - Бейджики, ачивки, звания, статусы и т.п. знаки отличия и поощрения\n  - QR-Code куда-то присунуть\n  - Телемедицина (например консультация с психологом)\n  - Конкурсы креатива с наградами от спонсоров\n  - IoT tracking - для выгула (координаты, подсчёт расстояния / шагомер)\n  - Потерялся друг\n  - Передержка / выгул / дневная няня / отель (частники, like Airbnb)\n  - Кинологические центры (если не коммерция)\n  - Видеохостинг нахаляву?\n  - Коллажи на фотки\n  - Рубрика \"нашли хозяина\"\n  - Дизайн \"видно, что сделал один чувак\"; к Мерседесу страшно подойти, а Жигули - родное\n  - Страничка для приюта, вместо волонтёра\n  - CUDA-сервер из своей квартиры\n  - Кластеры для карты\n- Аттрибуты объявления:\n  - порода / mixed\n  - можно с детьми\n  - цвет\n  - когтеточка\n  - возраст\n  - пол\n  - длина шерсти\n  - стерилизован\n  - приучен к лотку\n  - гео-локация\n  - документы\n  - прививки\n  - здоровый / больной / инвалид\n  - рост\n  - вес\n  - размер (крупный / средний / мелкий)\n- Справочник пород:\n  - Vocality\n  - Playfulness\n  - Heat Sensitivity\n  - Energy Level\n  - Training\n  - Friendliness to Dog\n- У одного питомца может быть много хозяев\n- Синонимы для \"питомцы\": меховички, любимцы\n- Похожие проекты (не про деньги):\n  - Animal and pet care diary - 500,000 - Дневник Питомца\n  - Adopte-moi - 100,000 - объявления\n  - Adopt Pet or Post for Adoption by Pavel Poley - 100,000 - объявления\n  - Pets Adoption: Adopt Dog, Cat and Other Pets by Selfappdeveloper - 50,000 - объявления\n  - YummyPets - 50,000 - инста для животных\n  - AnimalID - 50,000 - дневник заботы о животных\n  - PetFinder.my - 50,000 - объявления\n  - UPet - 50,000 - блоги\n  - zoo-click.com - 50,000 - \"соцмедиа и удобный сервис услуг\"\n- Меню - делать?\n- TensorFlow - для улучшения выдачи поиска питомца / блоги\n- Какая-то базовая механика / технология (GOOGL - PageRank, FB - Graph, etc.)\n- Исключить механику \"царя горы”\n- Варианты слогана:\n  - Если у вас есть питомец, вы возращаетесь не в дом, а домой.\n  - Приводя питомца домой, вы приобретёте самую преданную любовь на свете.\n  - Мы не одержимы питомцами, мы просто их очень любим.\n  - Друга выбирают не по породе.\n- Как оформлять, когда отдают несколько котят?\n- Бесплатно - ключевой момент, можно отдавать и породистых\n- Барахолка - как хобби в Греции\n- Визард для добавления нового объявления:\n  - фото\n  - карта\n  - обязательные аттрибуты\n  - необязательные аттрибуты\n- Привлечение контрибьютеров по примеру cultofmartians.com\n- getpicnic.app\n\n## I need a home\n\n![alt text](assets/i_need_a_home.png)\n\n## How to reset build\n\n```bash\n$ flutter clean\n$ flutter pub get\n$ cd ios\n$ rm -rf Pods\n$ rm Podfile.lock\n$ pod install --verbose\n```\n\n...then restart vscode\n\n## GraphQL Highlight Problem\n\n- https://github.com/apollographql/apollo-tooling/issues/1365\n- https://github.com/graphql/graphiql/issues/2981\n- https://github.com/microsoft/vscode/issues/73134\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcomerc%2Fpet_finder","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcomerc%2Fpet_finder","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcomerc%2Fpet_finder/lists"}