{"id":50119764,"url":"https://github.com/algorithm-ssau/2026-6301-1","last_synced_at":"2026-05-23T18:05:12.676Z","repository":{"id":342757624,"uuid":"1166756725","full_name":"algorithm-ssau/2026-6301-1","owner":"algorithm-ssau","description":null,"archived":false,"fork":false,"pushed_at":"2026-05-23T15:44:07.000Z","size":27629,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-23T16:27:13.606Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":null,"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/algorithm-ssau.png","metadata":{"files":{"readme":"README.md","changelog":null,"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":"2026-02-25T15:17:38.000Z","updated_at":"2026-04-30T09:52:38.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/algorithm-ssau/2026-6301-1","commit_stats":null,"previous_names":["algorithm-ssau/6301_team1","algorithm-ssau/2026-6301-1"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/algorithm-ssau/2026-6301-1","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/algorithm-ssau%2F2026-6301-1","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/algorithm-ssau%2F2026-6301-1/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/algorithm-ssau%2F2026-6301-1/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/algorithm-ssau%2F2026-6301-1/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/algorithm-ssau","download_url":"https://codeload.github.com/algorithm-ssau/2026-6301-1/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/algorithm-ssau%2F2026-6301-1/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33406489,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-23T04:15:53.637Z","status":"ssl_error","status_checked_at":"2026-05-23T04:15:53.242Z","response_time":53,"last_error":"SSL_read: 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":[],"created_at":"2026-05-23T18:04:33.078Z","updated_at":"2026-05-23T18:05:12.664Z","avatar_url":"https://github.com/algorithm-ssau.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003e💜 Здравствуйте, Александра Николаевна! 💜\u003c/h1\u003e \n\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"https://github.com/algorithm-ssau/6301_team1/blob/main/%D0%98%D0%B7%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D1%8F/%D0%98%D0%A2-%D0%BF%D1%80%D0%B0%D0%BA%D1%82%D0%B8%D0%BA%D1%83%D0%BC.png\"\u003e\n\u003c/div\u003e\n\n\u003ch2 align=\"center\"\u003e👾 Мы рады снова вас видеть! 👾\u003c/h2\u003e \n\n\u003cp align=\"center\"\u003eНа этой странице всё-всё о нашем проекте по дисциплине ИТ-практикум!\u003c/p\u003e \n\n\u003cp align=\"center\"\u003e🟣 Посмотрим, сможете ли вы составить своё расписание 🟣\u003c/p\u003e \n\n\n\n## 🟪 Содержание\n\n- [🟣 Описание функционала]()\n  \n- [🟣 Архитектура решения]()\n\n- [🟣 Техническая документация]()\n\n- [🟣 Вклад участников]()\n\n\n\u003cbr\u003e\n\n\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"https://github.com/algorithm-ssau/6301_team1/blob/main/%D0%98%D0%B7%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D1%8F/%D0%9E%D0%BF%D0%B8%D1%81%D0%B0%D0%BD%D0%B8%D0%B5%20%D1%84%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D0%BE%D0%BD%D0%B0%D0%BB%D0%B0%20%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%B0.png\"\u003e\n\u003c/div\u003e\n\n\u003cbr\u003e\u003cbr\u003e \n\n\u003ch2 align=\"center\"\u003e👾\u003c/h2\u003e \n\n\u003cp align=\"center\"\u003eМы создали интеллектуальный помощник в социальной сети ВКонтакте для того, чтобы взять на себя рутину планирования и сделать процесс обучения более осознанным и эффективным.\u003c/p\u003e \n\n\u003ch2 align=\"center\"\u003e👾\u003c/h2\u003e \n\n\u003cp align=\"center\"\u003eВ отличие от обычных календарей, наш бот не просто хранит расписание, а активно взаимодействует со студентом: он анализирует загруженные данные, прогнозирует учебную нагрузку и с помощью ИИ генерирует персонализированные материалы для подготовки.\u003c/p\u003e \n\n\u003ch2 align=\"center\"\u003e👾\u003c/h2\u003e \n\n\u003cp align=\"center\"\u003eОсновная задача бота – закрыть разрыв между постановкой задачи и её выполнением, превращая хаотичный список дел в понятную систему с напоминаниями, декомпозицией сложных проектов и интеллектуальными карточками для повторения.\u003c/p\u003e \n\n\u003cbr\u003e\u003cbr\u003e \n\n\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"https://github.com/algorithm-ssau/6301_team1/blob/main/%D0%98%D0%B7%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D1%8F/%D0%9E%D0%BF%D0%B8%D1%81%D0%B0%D0%BD%D0%B8%D0%B5%20%D1%84%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D0%BE%D0%BD%D0%B0%D0%BB%D0%B0%20(%D0%BA%D0%B0%D1%80%D1%82%D0%BE%D1%87%D0%BA%D0%B0).png\"\u003e\n\u003c/div\u003e\n\n\u003cbr\u003e\u003cbr\u003e \n\n\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"https://github.com/algorithm-ssau/6301_team1/blob/main/%D0%98%D0%B7%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D1%8F/%D0%90%D1%80%D1%85%D0%B8%D1%82%D0%B5%D0%BA%D1%82%D1%83%D1%80%D0%B0%20%D1%80%D0%B5%D1%88%D0%B5%D0%BD%D0%B8%D1%8F.png\"\u003e\n\u003c/div\u003e\n\n\u003cbr\u003e\u003cbr\u003e \n\n## 🟪 Анализ требований и ограничений\n\n\u003cbr\u003e\n\n| Требование |\tВлияние на архитектуру |\n| ------------- | ------------- |\n| **Работа в Google Colab** |\tМодульность, отсутствие привязки к конкретному серверу, возможность запуска в notebook-среде. |\n| **Использование русских нейросетей (GigaChat)**\t| Необходимость слоя абстракции для работы с API, обработка авторизации и токенов. |\n| **Хранение пользовательских данных** |\tЛегковесная БД (SQLite), совместимая с Colab и локальным запуском. |\n| **Понятный текстовый интерфейс** |\tРазделение логики и представления (архитектура MVC в упрощенном виде). |\n| **Интеграция с внешними сервисами (Google Calendar, Obsidian)** |\tПаттерн \"Адаптер\" для каждого внешнего сервиса. |\n| **Возможность масштабирования на 1-5 предметов** |\tМонолитная модульная архитектура (микросервисы избыточны). |\n\n\u003cbr\u003e\n\n## 🟪 Обоснование выбора архитектурного стиля\n\n\u003cbr\u003e\n\n1. Модульный монолит (Modular Monolith)\n\nМы выбрали модульный монолит как основной архитектурный стиль по следующим причинам:\n\n- 🟣 Простота разработки и отладки.\n\n- 🟣 Легкость развертывания.\n\n- 🟣 Возможность распараллелить разработку.\n\n- 🟣 При необходимости масштабирования.\n\n\u003cbr\u003e\n\n2. Луковая архитектура (Onion Architecture)\n\nДля организации кода внутри монолита используется луковая архитектура: \n\n🧅Ядро (Core) --\u003e 🧅Сервисы (Services) --\u003e 🧅Инфраструктура (Infrastructure) --\u003e 🧅Представление (Presentation) \n\n3. Паттерны проектирования\n\n\u003cbr\u003e\n\n| Паттерн |\tГде применяется? |\tЗачем? |\n| ------------- | ------------- | ------------- |\n| **Фасад (Facade)** |\tgigachat_connector.py |\tУпрощает работу со сложным API GigaChat. |\n| **Репозиторий (Repository)** |\tdatabase.py |\tАбстрагирует работу с БД, скрывая SQL-запросы. |\n| **Наблюдатель (Observer)** |\treminder_system.py |\tПроверка условий и отправка уведомлений. |\n| **Стратегия (Strategy)** |\tОбработка расписания |\tРазные способы ввода (ручной/OCR) реализованы как взаимозаменяемые алгоритмы. |\n| **Одиночка (Singleton)** |\tПодключение к БД |\tГарантирует одно соединение на всю программу. |\n\n\u003cbr\u003e\n\n## 🟪 Схема архитектуры\n\n\u003cbr\u003e\n\n\u003cpre\u003e\n┌─────────────────────────────────────────────────────────────┐\n│                   КЛИЕНТСКИЙ СЛОЙ                           │\n│  ┌─────────────────────────────────────────────────────┐    │\n│  │         main.ipynb (Текстовый интерфейс Colab)      │    │\n│  └─────────────────────────────────────────────────────┘    │\n└─────────────────────────────────────────────────────────────┘\n                              │\n                              ▼\n┌─────────────────────────────────────────────────────────────┐\n│                   СЛОЙ БИЗНЕС-ЛОГИКИ                        │\n│  ┌──────────────┐  ┌──────────────┐  ┌──────────────┐       │\n│  │ reminder_    │  │ task_helper  │  │ schedule_    │       │\n│  │ system.py    │  │ .py          │  │ service.py   │       │\n│  └──────────────┘  └──────────────┘  └──────────────┘       │\n└─────────────────────────────────────────────────────────────┘\n          │                   │                  │\n          ▼                   ▼                  ▼\n┌─────────────────────────────────────────────────────────────┐\n│                СЛОЙ API И ИНТЕГРАЦИЙ                        │\n│  ┌──────────────┐  ┌──────────────┐  ┌──────────────┐       │\n│  │ gigachat_    │  │    OCR-      │  │  Интеграция  │       │\n│  │ connector.py │  │   модуль     │  │   с Obsidian │       │\n│  └──────────────┘  └──────────────┘  └──────────────┘       │\n└─────────────────────────────────────────────────────────────┘\n          │                   │                  │\n          ▼                   ▼                  ▼\n┌─────────────────────────────────────────────────────────────┐\n│                СЛОЙ ДОСТУПА К ДАННЫМ                        │\n│  ┌─────────────────────┐  ┌─────────────────────┐           │\n│  │   database.py       │  │   Файловая система  │           │\n│  │   (SQLite)          │  │   data/             │           │\n│  └─────────────────────┘  └─────────────────────┘           │\n└─────────────────────────────────────────────────────────────┘\n          │                   │\n          ▼                   ▼\n┌─────────────────────────────────────────────────────────────┐\n│                   ВНЕШНИЕ СЕРВИСЫ                           │\n│  ┌──────────────┐  ┌──────────────┐  ┌──────────────┐       │\n│  │ GigaChat API │  │   VK API     │  │ Google Drive │       │\n│  └──────────────┘  └──────────────┘  └──────────────┘       │\n└─────────────────────────────────────────────────────────────┘\n\u003c/pre\u003e\n\n\u003cbr\u003e\n\n\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"https://github.com/algorithm-ssau/6301_team1/blob/main/%D0%98%D0%B7%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D1%8F/%D0%A2%D0%B5%D1%85%D0%BD%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B0%D1%8F%20%D0%B4%D0%BE%D0%BA%D1%83%D0%BC%D0%B5%D0%BD%D1%82%D0%B0%D1%86%D0%B8%D1%8F.png\"\u003e\n\u003c/div\u003e\n\n\u003ch2 align=\"center\"\u003e👾\u003c/h2\u003e \n\n\u003cp align=\"center\"\u003eС технической точки зрения наш проект – это интеллектуальный ORM-конвейер, объединяющий возможности обработки естественного языка, оптического распознавания символов и классического планировщика задач.\u003c/p\u003e \n\n\u003cbr\u003e\n\n\u003cdiv align=\"center\"\u003e\n\u003ctable\u003e\n  \u003ctr\u003e\n    \u003ctd align=\"center\"\u003e\n      \u003cimg src=\"https://github.com/algorithm-ssau/6301_team1/blob/main/%D0%98%D0%B7%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D1%8F/%D0%A2%D0%B5%D1%85%D0%BD%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B0%D1%8F%20%D0%B4%D0%BE%D0%BA%D1%83%D0%BC%D0%B5%D0%BD%D1%82%D0%B0%D1%86%D0%B8%D1%8F%20(%D0%BA%D0%B0%D1%80%D1%82%D0%BE%D1%87%D0%BA%D0%B0%201).png\" width=\"500\"/\u003e\n      \u003cbr /\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\n      \u003cimg src=\"https://github.com/algorithm-ssau/6301_team1/blob/main/%D0%98%D0%B7%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D1%8F/%D0%A2%D0%B5%D1%85%D0%BD%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B0%D1%8F%20%D0%B4%D0%BE%D0%BA%D1%83%D0%BC%D0%B5%D0%BD%D1%82%D0%B0%D1%86%D0%B8%D1%8F%20(%D0%BA%D0%B0%D1%80%D1%82%D0%BE%D1%87%D0%BA%D0%B0%202).png\" width=\"500\"/\u003e\n      \u003cbr /\u003e\n    \u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\u003c/div\u003e\n\n\u003cbr\u003e\n\n\u003ch2 align=\"center\"\u003e👾\u003c/h2\u003e \n\n\u003cp align=\"center\"\u003eСистема спроектирована так, чтобы быть интуитивно понятной пользователю в плане взаимодействия, с ней сможет справиться любой студент нашего университета.\u003c/p\u003e \n\n\n\u003cbr\u003e\u003cbr\u003e \n\n```mermaid\n%%{init: {'theme': 'default', 'themeVariables': {\n  'primaryColor': '#2c3e50',\n  'primaryTextColor': '#fff',\n  'primaryBorderColor': '#7f8c8d',\n  'lineColor': '#34495e',\n  'secondaryColor': '#34495e',\n  'tertiaryColor': '#fff'\n}}}%%\nmindmap\n  root((StudyMate AI))\n    ИИ и NLP\n      GigaChat API\n      YandexGPT\n      Промптинг\n    Базы данных\n      PostgreSQL\n      SQLite\n      Redis\n    Интеграции\n      Google Calendar\n      Obsidian\n      VK API\n    Инфраструктура\n      Google Colab\n      Docker\n      Git\n    OCR\n      Tesseract\n      Yandex Vision\n      Google Vision\n    Python 3.9\n      LangChain\n      Celery\n      OpenCV\n```\n\n\u003cbr\u003e\u003cbr\u003e \n \n\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"https://github.com/algorithm-ssau/6301_team1/blob/main/%D0%98%D0%B7%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D1%8F/%D0%92%D0%BA%D0%BB%D0%B0%D0%B4%20%D1%83%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA%D0%BE%D0%B2%20%D0%BA%D0%BE%D0%BC%D0%B0%D0%BD%D0%B4%D1%8B.png\"\u003e\n\u003c/div\u003e\n\n\u003cbr\u003e\u003cbr\u003e \n\n| Участник           | Роль | Зона ответственности |\n| ------------- | ------------- | ------------- |\n| **Свистун Софья** | ⚙️ Хранитель Git | Полное ведение репозитория: создание и заполнение ReadMe, контроль количества коммитов (минимум 45 на команду), управление организацией в Git. |\n| **Хархавкина Мария** | 📜 Летописец | Создание, ведение и заполнение итогового отчёта. Описание работы каждого члена команды. Подготовка научных тезисов (постановка задачи, подход, архитектура, результаты). |                                                                                        \n| **Мирошник Мария** | 🎤 Маг презентации | Выступление и полное оформление презентации (слайды 24+). Создание коммерческой презентации продукта (проблема, ЦА, ценность, демо). А также: добровольное согласие на получение пинков за всю команду. |                                                                            \n| **Микуров Дмитрий** | 💻 Фулл-стек разработчик | Разработка модулей: database.py (структура БД, работа с расписанием и дедлайнами), reminder_system.py (умные напоминания), task_helper.py (разбивка задач на шаги), а также главный интерфейс main.ipynb. |                             \n| **Кокорев Михаил** | 💻 Бэкенд-разработчик | Разработка модуля gigachat_connector.py: подключение к GigaChat API, отправка запросов, обработка ошибок, тестирование соединения. |  \n\n\u003cbr\u003e\n\n--- \n\n## 🟪 План реализации проекта\n\n\u003cbr\u003e \n\n- 🟣 а) Настройка подключения к GigaChat\n    Реализация модуля gigachat_connector.py.\n\n- 🟣 б) Проектирование базы данных\n    Создание структуры SQLite, написание модуля database.py.\n\n- 🟣 в) Разработка логики напоминаний и помощника\n    Создание модулей reminder_system.py и task_helper.py.\n\n- 🟣 г) Создание пользовательского интерфейса\n    Разработка main.ipynb.\n\n- 🟣 д) Интеграция и тестирование.\n\n- 🟣 е) Подготовка отчёта и презентации.\n\n\u003cbr\u003e \n\n---\n\n\u003cbr\u003e \n\n## 🟪 Интересные факты о проекте\n\n\u003cbr\u003e \n\n💟 Умные напоминания – бот не просто пишет \"у вас пара\", а генерирует дружеские сообщения, подбадривая студента.\n\n💟 Декомпозиция задач – большая курсовая работа разбивается на мелкие шаги, чтобы не было страха перед \"белым листом\".\n\n💟 Всё на одной платформе – расписание, дедлайны и напоминания собраны в единой базе данных.\n\n\u003cbr\u003e \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falgorithm-ssau%2F2026-6301-1","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Falgorithm-ssau%2F2026-6301-1","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falgorithm-ssau%2F2026-6301-1/lists"}