Открытый вебинар «Онлайн-интенсив «Создание Telegram-бота для заказа кофе в заведении и оплаты онлайн». День 2» 22.01.2020 в 20:00 | OTUS >
+7 499 938-92-02
Проходил 22 января 2020 года в 20:00

Открытый вебинар
Онлайн-интенсив «Создание Telegram-бота для заказа кофе в заведении и оплаты онлайн». День 2

Открытый вебинар онлайн

Рассматриваем Coffee2go - Telegram Bot + Dotsplatform.com: знакомимся с Laravel Notificattion, учимся отправлять сообщения в telegram, slack и пишем telegram-бота для создания заказа кофе в заведении и оплаты онлайны.
Преподаватель
Егор Герасимчук

Запись

О курсе

Framework Laravel
85 000 ₽
Начало в октябре

Разработчики, обладающие навыками профессиональной работы с PHP-фреймворком Laravel, — сегодня одни из самых востребованных и малочисленных специалистов в сфере IT. Этот инструмент не просто упрощает жизнь и решает проблемы, связанные с тестированием, интеграцией соц.сетей и систем оплат. Работать с ним удобно и приятно любому, кто освоит все его возможности. Поэтому мы не смогли пройти мимо и создали профессиональную программу подготовки …

Программа курса
Модуль 1
Знакомство с фреймворком. Пишем базовый функционал
Модуль 2
Продолжаем усложнять логику проекта
Модуль 3
API
Модуль 4
Проектная работа
Знакомство с фреймворком. Пишем базовый функционал
В качестве объекта разработки можно написать таск-трекер или ту же систему бронирования мест в кино.
Установка и «Hello, world» // ДЗ
изучить способы установки приложения (напрямую через Composer, Homestead/Valet);
изучить структуру файлов и реализацию MVC;
запустить первый приветственный контроллер;
познакомиться с простой маршрутизацией;
обсудить применимость фреймворка;
установить Laravel IDE Helper.
Домашние задания: 1
ДЗ
Рабочая среда для фреймворка и будущий проект. 1. Необходимо подготовить среду для дальнейшей разработки. Разрешается использовать Homestead или Laravel Sail.
Развернуть фреймворк у себя в выбранной среде
В качестве ДЗ можно сдавать скриншот рабочей среды

2. Выбрать цель для курсового проекта из нижепредложенных или предложить свою

Новостной портал
Доска объявлений
Сервис ToDo
Telegram-бот поиска информации по конструкциям выбранного языка (PHP, Go, C и т.д.)
Сайт знакомств

Выбрать проект
Оповестить преподавателя
Обосновать выбор: какие функции вы хотите реализовать в рамках проекта?
Фронтэнд // ДЗ
поработать с CSS и JS в Laravel;
познакомиться с vite;
познакомиться с Blade;
изучить принципы работы приложения с фронтэнд-фреймворками.
Домашние задания: 1
ДЗ
Создать несколько фронт-страниц. Для выбранной Вами темы нужно создать несколько страниц под управлением фронтэнд инструментов Laravel

1. Главная
2. Страница пользователя
3. Страница регистрации (прототип, без самой регистрации)
4. Абстрактная статическая страница
Хранилище для Laravel-продукта // ДЗ
познакомиться с Artisan;
научиться накатывать миграции;
узнать про Namespacing и MVC в Laravel.
Домашние задания: 1
ДЗ
Спроектировать базы данных и создать миграции. 1. Спроектировать базу данных
2. Создать миграции для таблиц
3. Воспроизвести требуемую структуру через миграции
Eloquent ORM // ДЗ
познакомиться с Eloquent;
создать базовые модели;
разобрать связи между моделями
Домашние задания: 1
ДЗ
Создание моделей. сформировать модели, которые потребуются в продукте:
- модель пользователя и его ролей
- модель данных разных частей страницы
- например, модель задачи для ToDo
написать фабрики и сиды для моделей
Маршруты и представления
углубиться в логику маршрутизации;
изучить правила обработки запросов;
писать кастомные правила.
Контроллеры // ДЗ
углубиться в работу с контроллерами;
узнать, что такое FSUC и почему он плох;
познакомиться с понятиями и реализацией посредников.
Домашние задания: 1
ДЗ
Администраторский интерфейс. 1. Написать логику управления страницами
2. Написать логику управления одной-двумя выбранными сущностями
DI
вспомнить суть концепции IoC;
изучить реализацию DI в Laravel;
использовать DI-контейнеры.
Авторизация и аутентификация // ДЗ
знать правила и порядок авторизации и аутентификации пользователей в Laravel;
добавлять к своему приложению разграничение прав;
реализовывать авторизацию по токему.
Домашние задания: 1
ДЗ
Учим приложение распознавать пользователя. 1. Написать логику для авторизации и аутентификации
2. Разделить права на доступ к админ-интерфейсу
3. Дать пользователям возможность редактировать созданные ими же функции
Тестирование // ДЗ
выполнять тесты в Laravel;
покрывать приложение тестами при помощи различных инструментов.
Домашние задания: 1
ДЗ
Тестируем приложение. Нарастить покрытие тестами Вашего проекта
Постараться увеличить покрытие (нормой считается 80%)
Продолжаем усложнять логику проекта
Изучаем обёртки для работы с различным функционалом, знакомимся с посредниками, командами, шинами и доменами логики.
Логирование и полезные функции фреймворка // ДЗ
собирать информацию о работе приложения;
объяснить что умеет фреймворк, чтобы не писать велосипеды.
Домашние задания: 1
ДЗ
Логирование в Telegram. 1. Создать свой telegram бот через https://telegram.me/BotFather
2. Создать канал для логирования ошибок
3. Добавить свой аккаунт и аккаунт бота из пункта 1 в канал из пункта 2.
4. Создать канал логирования в настройках ларавел и настроить нужный драйвер (используйте стандартный обработчик из monolog)
5. Отправлять только сообщения об ошибках (и более высоких уровней) в телеграм канал
Middleware // ДЗ
познакомиться с идеей middleware;
расширить знания о посредниках.
Домашние задания: 1
ДЗ
Создаем своего посредника. Создайте посредника для своего приложения. Для примера, можно создать посредника, который будет ставить нужную локаль (ru, en) взависимости от переданаого параметра в урле
- /en/dashboard - Locale EN
- /ru/dashboard - Locale RU
Кэширование // ДЗ
ускорить работу с данными;
применять различные механизмы кэширования;
писать логику для работы с ними;
поддерживать сервисные процессы кэширования.
Домашние задания: 1
ДЗ
Применить кэширование. 1. Применить кэширование на уровне логики;
2. Перенести хранение сессий в Memcached;
3. * Замерить производительность с кэшем и без него;
4. * Реализовать прогрев кэша.
Пакеты // ДЗ
упаковывать функционал в packages;
создавать полноценные модули.
Домашние задания: 1
ДЗ
Создание своего пакета. 1. Создать файл composer.json вручную или с помощью команды composer init.
2. Создать ServiceProvider своего пакета.
3. Создать код своего пакета и, если есть необходимость, зарегистрировать нужные биндинги в ServiceProvider.
4. Подключить свой пакет к Laravel приложению, добавив в его composer.json секцию с репозиториями или добавив свой пакет на packagist.org.
Команды и шина // ДЗ
отделять групп атомарных действий в команды.
Домашние задания: 1
ДЗ
Создать команду для своего приложения. Необходимо добавить команде:
Описание
Аргументы
Опции
Очереди // ДЗ
сделать следующий шаг в развитии механизма команд.
Домашние задания: 1
ДЗ
Асинхронные процессы. Настраиваем пайплайн (в зависимости от проекта сущности будут меняться)

1. Пользователь выполняет действие (создание задачи, размещение новости и т.п.)
2. В очереди публикуется событие
3. На событие реагирует 1 и более слушателей (примеры: телеграм-оповещение, email, push-уведомление, создание лога и т.д.)
DDD в Laravel // ДЗ
познакомиться с Domain Driven Development;
применять концепцию в своих проектах на Laravel.
Домашние задания: 1
ДЗ
Доменная модель. 1. Выделить поддомены в вашем приложении. Реорганизацию кода делаать не нужно (по желанию), можно описать словами.
2. Для каждого из поддоменов выделить агрегаты (блок схема)
3. Переделать модели Eloqent в защитном стиле DDD - в агрегаты. Не обязательно все, можно несколько.
4. Добавить Value Objects и использовать в аграгатах
API
Переходим к тесной работе со Stateless-логикой и микросервисами в частности.
Контракты и фасады
углубиться в контракты и фасады;
применять техники инкапсуляции функционала и его структурирования.
Envoy и развёртывание // ДЗ
деплоить приложение на Laravel;
применять для деплоя встроенный функционал.
Домашние задания: 1
ДЗ
Deployment. 1. Развернуть имитацию Production-среды по подобию Dev
2. Организовать автоматическую выкатку приложения
Scout и полнотекстовый поиск
узнать про понятие полнотекстового описка;
научить приложение быстро искать информацию.
Переходим к Stateless // ДЗ
вспомнить про различия Stateless и Stateful;
работать с API.
Домашние задания: 1
ДЗ
CRUD API. Создать API для сущности(-ей), учитывая аспекты CRUD-операций и типов HTTP-запросов.
Lumen
познакомиться с light-weight версией фреймворка;
узнать об аспектах реализации SOA при помощи Lumen.
Passport API // ДЗ
научиться улучшенной авторизации на уровне API;
изучить Passport.
Домашние задания: 1
ДЗ
Написание API . 1. Выделить часть приложения, которую можно вынести в API (например, создание задачи в ToDo)
Создать CRUD-API для внешней системы
Задокументировать его (*swagger)

2. Добавить в API функционал авторизации клиентов по токену
Тестирование API // ДЗ
тестировать интеграционные составляющие.
Домашние задания: 1
ДЗ
Работа с API. 1. Создать простой API для отображения личного кабинета пользователя в мобильном приложении. Учесть аспекты авторизации
2. Покрыть тестами API. Обратить внимание на тестирование функционала авторизации API. Помнить про нормы покрытия
Планирование задач // ДЗ
организовывать работу систем обслуживания приложения;
планировать технические и системные скрипты.
Домашние задания: 1
ДЗ
Регулярные задачи. 1. Вынести задачи кэширования в cron (прогрев, сброс и т.п.)
2. * Учесть возможность запуска приложения на N серверах в кластере
Проектная работа
Разрабатываем курсовой проект на базе фреймворка Laravel. Вы можете предложить свой проект или выбрать из предлагаемых вам.
Выбор темы и организация проектной работы
выбрать и обсудить тему проектной работы;
спланировать работу над проектом;
ознакомиться с регламентом работы над проектом.
Домашние задания: 1
ДЗ
Проектная работа. 1. Предложить идею;
2. Собрать команду разработки;
3. Утвердить идею и команду с преподавателем;
4. За неделю до защиты прислать презентацию и скринкаст по проекту;
5. Защитить проект.
Консультация по проектам и домашним заданиям
получить ответы на вопросы по проекту, ДЗ и по курсу.
15 августа, 20:00 — 21:30
Лектор: Роман Науменко
Защита проектных работ
защитить проект и получить рекомендации экспертов.
29 августа, 20:00 — 21:30
Лектор: Роман Науменко
Подведение итогов курса
узнать, как получить сертификат об окончании курса, как взаимодействовать после окончания курса с OTUS и преподавателями, какие вакансии и позиции есть для выпускников (опционально - в России и за рубежом) и на какие компании стоит обратить внимание.

Преподаватель

Егор Герасимчук
Co-Founder/CTO DotsPlatform
Certified Laravel Developer

8 лет опыта работы
Магистр Черниговского Национального Технического Университета

Участвовал в создании одной из крупнейших украинских CRM систем One Box
4 года работал на американском высоконагруженном проекте football.com
С 2014 Co-Founder/CTO в украинском стартапе Mister.Am (сервис заказа и доставки еды, работает в 13 городах Украины)
В 2014 стал победителем всеукраинского конкурса по программированию UAWebChallenge в номинации backend разработчик
В 2018 были сервисом номер 1 по доставленным заказам в Украине, на базе проекта создали SAAS-решение для ресторанов

Основной девиз: Простота — залог надежности.