{"id":20638557,"url":"https://github.com/meetinger/viditasystemstesttask","last_synced_at":"2026-06-06T15:02:48.891Z","repository":{"id":203780857,"uuid":"595305800","full_name":"meetinger/ViditaSystemsTestTask","owner":"meetinger","description":"Тестовое задание telegram bot","archived":false,"fork":false,"pushed_at":"2023-02-03T00:52:59.000Z","size":809,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-16T09:43:04.102Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/meetinger.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,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-01-30T20:16:19.000Z","updated_at":"2024-01-30T11:35:03.000Z","dependencies_parsed_at":null,"dependency_job_id":"a79f2fe2-006d-4aef-bbf6-120886c78950","html_url":"https://github.com/meetinger/ViditaSystemsTestTask","commit_stats":null,"previous_names":["meetinger/viditasystemstesttask"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/meetinger/ViditaSystemsTestTask","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/meetinger%2FViditaSystemsTestTask","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/meetinger%2FViditaSystemsTestTask/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/meetinger%2FViditaSystemsTestTask/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/meetinger%2FViditaSystemsTestTask/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/meetinger","download_url":"https://codeload.github.com/meetinger/ViditaSystemsTestTask/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/meetinger%2FViditaSystemsTestTask/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33986901,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-06T02:00:07.033Z","response_time":107,"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":[],"created_at":"2024-11-16T15:18:28.452Z","updated_at":"2026-06-06T15:02:48.861Z","avatar_url":"https://github.com/meetinger.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ViditaSystemsTestTask\n\n## Тестовое задание ViditaSystems\n\n### Установка и настройка\n\n1. Склонируйте репозиторий при помощи команды `git clone https://github.com/meetinger/ViditaSystemsTestTask`\n   и перейдите в директорию репозитория\n2. Создайте нового бота в https://t.me/BotFather\n3. Отредактируйте файлы .env_template и .env_docker_template и переименуйте их в .env и .env_docker соответственно\n    1. `BOT_TOKEN`=ваш_токен_из_BotFather\n    2. `WEBHOOK_PORT`=порт_для_вебхуков\n    3. `WEBHOOK_URL`=url_для_вебхуков\n    4. `UPDATE_METHOD`=метод_обновления(webhook или pooling), в случае pooling 4-ый пункт можно пропустить\n4. Создайте ключ шифрования и SSL сертификат с помощью команды:\u003cbr /\u003e\n   `openssl req -newkey rsa:2048 -sha256 -nodes -keyout private.key -x509 -days 3650 -out cert.pem`\u003cbr /\u003e\n   На шаге `Common Name (e.g. server FQDN or YOUR name) []`\u003cbr /\u003e\n   введите IP-адрес или домен сервера, на который будут приходить вебхуки\n5. Соберите образ контейнера с помощью команды `sudo docker build .`\n6. Запустите контейнеры с помощью команды `sudo docker-compose up -d`\n7. Проверяем работу бота\n\n### Использование бота\n\n1. `/start` для регистрации в боте\n2. `/set_category \u003cимя категории\u003e` создаёт категорию\n3. `/categories` показать существующие категории\n    1. Вы можете удалить категорию, нажав на соответствующую кнопку\n4. После нажатия на кнопку категории, появится календарь для выбора даты\u003cbr /\u003e\n   \u003cimg src=\"readme_src/img/calendar.png\" width=\"512px\"\u003e\u003cbr /\u003e\n5. После выбора даты появится список текущих статей расходов\u003cbr /\u003e\n   \u003cimg src=\"readme_src/img/expenses_list.png\" width=\"512px\"\u003e\u003cbr /\u003e\n    1. Вы можете удалить статью расходов, нажав на соответствующую кнопку\n    2. Вы можете добавить статью расходов, нажав на соответствующую кнопку\u003cbr /\u003e\n       \u003cimg src=\"readme_src/img/add_expense.png\" width=\"485px\"\u003e\u003cbr /\u003e\n6. `/cancel` завершить выполнение текущей команды\n7. `/total` показать расходы за всё время\n8. `/set_utc_offset \u003cвремя в минутах относительно UTC\u003e` установить часовой пояс\n9. `/enable_notifications` и `/disable_notifications` включить и отключить уведомления соответственно:\n    1. ВНИМАНИЕ!!! Если не установить часовой пояс командой `/set_utc_offset \u003cвремя в минутах относительно UTC\u003e`,\n       то уведомления работать не будут!\n10. В случае, если уведомления включены, то пользователь в конце дня получит уведомление со всеми расходами за сегодня\u003cbr /\u003e\n    (В реальности пользователь получит уведомление в 23:59, на картинке демонстрация как это выглядит)\u003cbr /\u003e\n    \u003cimg src=\"readme_src/img/notifications.png\" width=\"512px\"\u003e\u003cbr /\u003e\n\n### Структура базы данных:\n\u003cimg src=\"readme_src/img/db.png\" width=\"512px\"\u003e\u003cbr /\u003e\n\n### Дополнительные фичи:\n\n1. Возможность отключения уведомлений\n2. Учёт часового пояса пользователя\n3. Удобный выбор даты в виде календаря\n\n### Тестирование кода\n\nПока не сделано(\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmeetinger%2Fviditasystemstesttask","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmeetinger%2Fviditasystemstesttask","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmeetinger%2Fviditasystemstesttask/lists"}