Сразу обращу внимание, что для серьёзных проектов так строить инфраструктуру нельзя, весь этот проект создавался только для развлечения и убивания времени, ну и презентации на всяких школьных проектных конференциях.
Замечание
17.11.2019 15:55
Мне написали в личные сообщения, что на протяжении статьи не очень понятно, о каких именно домашних заданиях идёт речь.
Уточню сразу, что все задания, о которых я рассказываю в статье, заполняются как в обычном дневнике, а старые задания «исчезают».
Именно так пользователь получает те задания, которые ему будет нужно сделать.
Бот был написан на PHP, а ради эксперемента я решил получать обновления не с помощью вебхуков CallBack API, а используя LongPoll.
Из-за того, что я ни разу не писал ботов, используя этот метод получения обновлений, меня терзали смутные сомнения на счёт того, смогу ли я на PHP написать сего бота, но в итоге всё получилось. Теперь перейду к тому, как у меня зарождались идеи и как я их реализовывал.
СУПЕРСКИЙ СПОСОБ 😱 Лайфхак, как быстро выполнить домашнюю работу? 😎
Первой у меня, вообще, родилась идея написать бота для того, чтобы в нём хранить домашку. Ну как хранить. Что-то по типу заметок, но внутри VK, так как в заметки я редко захожу, да и не очень удобны они для меня.
Для того, чтобы реализовать банального бота с домашкой я создал одну таблицу в базе данных, в которой хранились название предмета, сама домашка и на какое число всё это счастье задано. Это описывать не очень интересно, поэтому опущу этот момент, но приведу мощную ER-диаграмму того, как выглядела база данных в самом начале.
Потом я подумал, а почему бы не дать возможность другим людям пользоваться ботом. Ну и дал людям эту возможность. Немного поменял базу данных, но таблица, вокруг которой всё это крутится осталась почти неизменной.
Из ER-диаграммы можно понять, что каждый пользователь принадлежит какой-то группе. Вход в уже существующую группу осуществляется по токену, а для каждой новой генерируется свой уникальный токен. И сами задания тоже относятся к той или другой группе, чтобы пользователи не видели хаос из своих и чужих заданий.
Дописал код, здесь тоже ничего интересного, в принципе нет. Только сделал ещё так, чтобы старые задания не показывались, дабы не удалять вручную всё это дело, но, думаю, запрос SELECT в SQL написать достаточно просто.
А теперь пришло время для веселья: я начал добавлять функции, которые будут тормозить общую очередь сообщений, поэтому я принял решение выносить их в отдельные скрипты, так как в многопоточность я пока что не могу, но выбрал LongPoll. (И есть ли она при таком использовании PHP?)
И вот эти функции: рассылка сообщений всем участникам группы и генерация QR-кодов, в которых зашифрован ключ для вступления в группу.
ДЗ ПО ГЕЙМИНГУ: МАЙНКРАФТУ, DOTA 2, STANDOFF2, DARK SOULS, PUBG, МАРИО, И ГТА И ДРУГИМ!
Для этого я просто создал ещё одну таблицу в базе данных, в которую заношу текст рассылки и кому она предназначена. База в итоге приняла такой вид.
А генерация QR-кодов вынесена вообще в отдельный процесс, который тоже получает обновления от VK об исходящих сообщениях, и смотрит, в каком из сообщений есть ключ от группы.
Пока всё выглядит всё более-менее адекватно, но потом я пошёл нарушать реляционную модель, занося JSON в базу данных.
Что же за JSON я могу заносить в базу? Я заношу параметр attachments, который получаю от VK, и дальше обрабатываю при рассылках сообщений, дабы не загружать основной процесс.
В итоге всё это дело выглядит вот так.
Примерно таким же методом потом я добавил прикрепление файлов к заданиям в боте. Задание добавляется сразу, а файлы постепенно прикрепляются, если подходят по формату и проходят по размеру для Telegram Bot Api. Файлы я загружаю в Telegram через кластер ботов и сохраняю id файла.
Храню я файлы в Телеграме из-за того, что на сервере, на котором я всё это держу, не очень много места, а расширяться для меня очень сложно финансово.
Вся база начала выглядеть вот так:
Но теперь передо мной встала задача: как я буду отдавать файлы пользователям обратно? Тут я сделал почти такую же логику, как и с добавлением файлов.
Потом ещё добавился и бот для Телеги, но это я описывать пока не буду.
В принципе, я считаю, что структура базы данных неплохая, но что-то мне здесь не нравится. Возможно, кому-то из новичков будет полезно посмотреть как можно проектировать структуру БД по ходу развития идеи, а мне будет интересно послушать критику по организации моей базы и принять что-то на вооружение.
Статейка небольшая, но может на себя обрушить критику.
Клац 1
«Фулл до 5 вечера у меня на столе!»
Все исходники бота выложу на гит после защиты проекта, да и статью не грех будет написать.
Клац 2
Некоторые идеи, которые касаются работы с файлами, мне подсказали в чате Хабра в телеге, меня часто можно там увидеть.
Источник: habr.com
Онлайн школа-Modern(помощь с ДЗ, Репетиторство)
Онлайн-школа»Modern» — это сервис по контролю и помощи в выполнении домашнего задания.
Вы будете спокойны в том, что ваш ребёнок правильно и полностью выполнит ДЗ.
Не придется искать отдельного репетитора по каждому предмету.
У ребёнка и у вас появится больше свободного времени.
Вы будете спокойны в том, что ваш ребёнок правильно и полностью выполнит ДЗ.
Не придется искать отдельного репетитора по каждому предмету.
У ребёнка и у вас появится больше свободного времени.
Индивидуальное занятие( 1 час)
12 500 ₽ 10 000 ₽
Индивидуальное занятие (2 часа)
17 500 ₽ 15 000 ₽
Занятие с репетитором
1 000 ₽ 750 ₽
О нашей школе
У Вашего ребёнка проблемы с учебой в школе А у вас не хватает времени для выполнения домашнего задания с ним Мы можем Вам помочь Мы работаем следующим образом: 1Вы выбираете подходящий для Вас тариф(занятие индивидуальное, парное или групповое) 2Определяем удобное для Вашего ребенка время 3Прикрепляем за Вами преподавателя. Занятия проводятся каждый будний день. Наша школа направлена на развитие у школьников самостоятельности и ответственности Подробнее
Иван Евгеньевич прекрасный учитель математики, алгебры, геометрии и физики. Мои дети в данный момент обучаются дистанционно. Иван Евгеньевич очень грамотно и доступно обьясняет им новые темы и мальчишкам очень нравятся его уроки. Благодарим за интересные уроки!
Я хочу выразить большую благодарность Ивану за помощь в решении школьной домашней работы. Ребёнок за 2 часа делает всю домашнюю работу без ругани, спокойно, вникая в каждый предмет. Очень дисциплинирует такой подход. Иван всегда спокойно сопровождает, но не подсказывает. Отношения с ребёнком супер! Оценки 4 и 5.
Источник: vk.link
Дз через ВК
Девочки, вот скажите мне, может я чего-то не понимаю, может сейчас это уже норма. Сын учится в 6 классе, уже не в первый раз учитель по биологии дает им задание на дом через ВККак так? Разве это нормально. И при этом за невыполнение грозит двойкой.Да какое он имеет право. Т.е. теперь получается, что ребенок просто обязан быть зарегистрирован в соц.сетях? Это что за нафиг. Может это я не права.
Симферополь
Интересные разделы сообщества
Комментарии
1 год 10 месяцев
Наша школа перешла на безбумажный документооборот, то есть д/з можно смотреть только на сайте мосрегуслуг через ЕСИА ( МО), дети по учетной записи. Так как не у всех есть интернет и не все зарегистрировались как положено, половина класса получает д/з посредством контакта, вотсапа и просто смс, у кого реально нет интернета и есть кнопочные телефоны. Дети могли бы сами записывать, 2 класс, но как учительница наша не добивалась, без результатов.
Что же касаемо выбора источника рассылки — то почему бы нет, если это действительно удобно. Важен результат
Источник: www.baby.ru