Содержание курса
Общая информация
5 уроков
1.
Микросервисная и Монолитная архитектура
↗
2.
rest Курс по Dart
↗
3.
Установка всех необходимых инструментов
↗
4.
rest Установка Flutter, Dart SDK
↗
5.
Работа с исходным кодом репозитория Git
↗
Реализация сервиса auth
26 уроков
1.
Понятие Аутентификация и Авторизация
↗
2.
auth: Установка PostgreSQL с помощью Docker compose.
↗
3.
auth: Создаем микро-сервис auth
↗
4.
auth: Создаем пакет logger - для логирования
↗
5.
auth: Создаем пакет config - конфигурация сервера
↗
6.
auth: Создаем Di контейнер для хранения обьектов
↗
7.
auth: Подключаем Drift к проекту, создаем пакет database
↗
8.
auth: Создаем пакет: handler - управления роутами
↗
9.
auth: Создаем сервис для хеширование паролей
↗
10.
auth: Создаем сервис для шифрование данных в БД
↗
11.
auth: Создаем сервис для создания JWT токенов
↗
12.
auth: SignUp — запрос для регистрации пользователя.
↗
13.
auth: Настраиваем и тестируем в Postman
↗
14.
auth: Реализация сервиса для работы с БД
↗
15.
auth: Создаём утилиты для обработки запросов
↗
16.
auth: /sign-up — регистрация пользователя
↗
17.
auth: Тестируем в Postman регистрацию пользователя
↗
18.
auth: /sign-in - авторизация пользователя
↗
19.
auth: JWTMiddleware - перехват запроса и проверка токенов
↗
20.
auth: GET /user - получение данных пользователя
↗
21.
auth: PATH /user - обновление данных пользователя
↗
22.
auth: DELETE /user - удаление пользователя
↗
23.
auth: /refresh-token - обновление токенов
↗
24.
auth: RateLimit - защита сервера, ограничение запросов
↗
25.
Межсервисный обмен - удаление постов, при удалении User
↗
26.
auth: Интеграция сервиса auth в docker-compose.
↗
Реализация сервиса data
13 уроков
1.
data: Запуск PostgreSQL для сервиса data
↗
2.
Инициализация сервиса data
↗
3.
data: Подключаем Drift к проекту, создаем пакет database
↗
4.
data: Добавление промежуточного ПО для работы с JWT
↗
5.
data: Создаем пакет: handler - управления роутами
↗
6.
data: POST /posts Создание поста
↗
7.
data: GET /posts - Получение поста
↗
8.
data: DELETE /posts - удаление поста
↗
9.
data: GET /posts - получение всех постов + пагинация
↗
10.
data: Развернем БД Redis
↗
11.
data: Redis - Кеширование постов
↗
12.
data: Межсервисный обмен - удаление постов
↗
13.
data: Интеграция сервиса data в docker-compose.
↗
Интеграция веб сервера nginx
2 урока
1.
Для чего нужен NGINX
↗
2.
Интеграция веб сервера NGINX.
↗
Deploy (деплой) проекта на удаленный сервер.
4 урока
1.
Покупка VDS (Virtual Dedicated Server).
↗
2.
Создание SSH соединения в VSCode с VDS
↗
3.
Установка Docker и Docker compose на VDS.
↗
4.
Развернем проект на удаленной виртуальной машине.
↗
Создаем клиент на Flutter.
39 уроков
1.
Установка и настройка Android Studio
↗
2.
Создаем интерфейсы AppRunner и AppBuilder, и их имплементации.
↗
3.
Добавляем пакеты injectable + get_it + build_runner
↗
4.
Инжектим AppConfig в зависимости от типа сборки dev, prod, test.
↗
5.
Добавляем плагин dio для работы с сетью. Инжектим DioContainer.
↗
6.
Добавляем пакет freezed. Создаем сущность UserEntity.
↗
7.
Создаем абстрактный класс AuthRepository для работы с Auth
↗
8.
Создадим и внедрим моковую реализацию MockAuthRepository
↗
9.
Создадим глобальный AuthCubit для управления авторизацией
↗
10.
Создадим AuthBuilder для наблюдения за состоянием авторизации.
↗
11.
Инициализируем AuthCubit, добавляем GlobalProvides.
↗
12.
Создадим рутовый экран и в нем реализуем AuthBuilder
↗
13.
Верстка экрана LoginScreen. Часть 1
↗
14.
Верстка экрана LoginScreen. Рефакторинг. Часть 2
↗
15.
Реализуем моковую авторизацию. Проверка AuthBuilder.
↗
16.
Реализуем моковую регистрацию.
↗
17.
Добавляем UserDto (Data Transfer Object)
↗
18.
Реализация NetworkAuthRepo и получение реальных данных
↗
19.
Реализация "Регистрации" в сервисе Auth. Метод signUp().
↗
20.
Сохраняем состояние AuthCubit. Используем hydrated_bloc.
↗
21.
Исправляем ошибку при сохранении стейта.
↗
22.
Создание единой сущности для обработки ошибок ErrorEntity.
↗
23.
Реализация метода для обновления токенов
↗
24.
Создадим и добавим AuthInterceptor (перехватчик запросов)
↗
25.
Перехват статуса 401 и обновление токенов в Interceptor
↗
26.
Переносим Dio в абстрактную сущность
↗
27.
Реализация личного кабинета пользователя
↗
28.
Исправление алгоритма обновления токенов
↗
29.
Реализация обновления данных пользователя
↗
30.
Добавляем состояние для обработки событий изменения UserEntity.
↗
31.
Реализуем возможность для пользователя поменять пароль.
↗
32.
Реализуем получение и отображение всех постов пользователя.
↗
33.
Учимся создавать подписку на изменения AuthCubit
↗
34.
Создадим AppDialog с виджетом Form и валидацией полей.
↗
35.
Реализуем возможность создавать новые посты.
↗
36.
Реализуем отображение полной информации о посте
↗
37.
Реализуем удаление поста
↗
38.
Исправление ошибки обновления токенов в AuthInterceptor
↗
39.
Выпуск сертификата и благодарность ☺️
↗
Реализация сервиса AUTH (УСТАРЕЛ) V1
19 уроков
1.
Установка PostgreSQL с помощью Docker compose.
↗
2.
Установка Flutter, Dart SDK, Conduit для написания бекенда.
↗
3.
Создание сервиса AUTH на Dart, запуск и подключение в PostrgeSQL
↗
4.
Создание первых роутов, получение информации из бекенда.
↗
5.
Создаем модель User и научимся обрабатывать информацию в запросе
↗
6.
Инициализация базы данных. Создание таблицы User.
↗
7.
Создание пользователя в БД. Получаем токены и хеш пароля.
↗
8.
Авторизация пользователя на сервере. Поиск в PostgreSQL, пароли.
↗
9.
Реализуем метод refreshToken, для обновление токенов.
↗
10.
Устраняем критическую уязвимость получения токенов.
↗
11.
Создаем класс-обертку (wrapper) для класса Response.
↗
12.
Создадим TokenController для автоматической проверки токена
↗
13.
Реализация AppUserController, метод getProfile.
↗
14.
Реализация AppUserController, метод updateProfile.
↗
15.
Реализация AppUserController, метод updatePassword.
↗
16.
Создаем VOLUME докер контейнера db_auth, для хранения БД
↗
17.
Инициализируем основной порт в БД PostrgeSQL
↗
18.
Рефакторинг, вынесем значение Environment в отдельный класс.
↗
19.
Интеграция сервиса AUTH в docker-compose. Заполняем Dockerfile.
↗
Реализация сервиса DATA (УСТАРЕЛ) V1
9 уроков
1.
Развернем базу данных PostgreSQL для сервиса DATA
↗
2.
Создание сервиса DATA
↗
3.
Что такое Отношения (Relation) в реляционных базах данных.
↗
4.
Создаем модели Author и Post. Настраиваем Relation.
↗
5.
PostController. Реализация метода создания поста
↗
6.
PostController. Реализуем получение поста по id.
↗
7.
PostController. Реализация метода удаления поста по Id
↗
8.
PostController. Реализация метода получение всех постов.
↗
9.
Интеграция сервиса DATA в docker-compose.
↗
Интеграция веб сервера nginx (УСТАРЕЛ) V1
2 урока
1.
Для чего нужен NGINX
↗
2.
Интеграция веб сервера NGINX.
↗
Доработки, рефакторинг, обновления (УСТАРЕЛ) V1
5 уроков
1.
Доработки, рефакторинг, обновление бекенда
↗
2.
Доработка бека, реализуем правильный алгоритм работы с постами
↗
3.
Пагинация постов, реализация на бекенде
↗
4.
Пагинация постов, реализуем Bloc для управления пагинацией
↗
5.
Пагинация постов, реализуем в UI с помощью NotificationListener
↗