Обучение C#

Формула программиста

основатель — Волосатов Евгений Витольдович
Только до конца месяца: Вступление в Клуб Формулистов с 50% + 20% скидкой.
Робот Шарп работает!
Open shop Доска объявлений

Доска объявлений

Создание Доски объявлений с использованием фреймворка YII2.

Автор: Жданов В.В.

Данный курс - практикум по созданию сайта с использованием фреймворка YII2.
Цель: создание небольшого сайта с нуля до "коробочного" варианта, готового к размещению на хостинге.
Теории здесь не много, больше практической работы по принципу: "произвел действие - получил результат".
Также по максимуму используем функционал фреймворка YII2.

Программируем - и кайфуем!



Список уроков | фото | видео

# Название видеоурока Видео / Тесты Решило Рейтинг Доступ
1 FREE О проекте и про инструменты 00:08:31
12 чел. ★ 4.9 Free
  На этом уроке мы рассмотрим тематику разработки и настроим инструменты

2 FREE Создание проекта YII2 00:13:49
10 чел. ★ 5 Free
  На этом уроке мы создадим проект нового сайта, установим YII2 и запустим новый сайт на нашем локальном домене

3 FREE Комфортная конфигурация 00:08:16
10 чел. ★ 5 Free
  На этом уроке мы настроим удобные для человека ссылки и поменяем название сайта при помощи настроек config/web.php
4 FREE Схема базы данных 00:14:25
10 чел. ★ 5 Free
  На этом уроке мы создадим схему базы данных для нашего проекта
5 FREE Подключение к базе данных пользователя и миграция пользователей 00:13:36
10 чел. ★ 5 Free
  На этом уроке мы создадим базу данных, подключим ее к нашему проекту и создадим таблицу пользователей
при помощи механизма миграций
6 FREE Аутентификация - захешированный пользователь из БД 00:16:58
9 чел. ★ 5 Free
  На этом уроке мы подкорректируем модель User  и реализуем аутентификацию на сайте через базу данных
7 FREE Информация о пользователе 00:13:28
8 чел. ★ 5 Free
  На этом уроке создадим таблицу и модель Информация о пользователе
8 FREE MVC - немного теории 00:12:09
8 чел. ★ 5 Free
  На этом уроке мы рассмотрим теоретические основы работы MVC и создадим новый контроллер в нашем проекте
9 MVC - информация о пользователе 00:09:33
8 чел. ★ 5 ^
  На этом уроке мы получим данные о пользователе из базы в представление
10 Пользователь - кто зарегистрирован сейчас? 00:09:22
8 чел. ★ 4.9 ^
  На этом уроке мы получим информацию о текущем зарегистрированном пользователе, а также сделаем рефакторинг кода
11 Новый пользователь - заготовка и меню 00:09:17
8 чел. ★ 5 ^
  На этом уроке мы создадим действие и представление для добавления пользователя,
а также добавим пункт меню "Регистрация"
12 Новый пользователь - модель для формы 00:15:43
8 чел. ★ 5 ^
  На этом уроке мы создадим модель параметров формы добавления пользователя
13 Новый пользователь - дизайн формы начало 00:16:37
8 чел. ★ 5 ^
  На этом уроке мы зададим поля формы добавления пользователя
14 Новый пользователь - дизайн формы: поля и колонки 00:09:17
8 чел. ★ 5 ^
  На этом уроке мы добавим все поля формы, кнопку сохранения, а также разместим поля в две колонки

15 Новый пользователь - сохранение нового пользователя 00:20:06
8 чел. ★ 5 ^
  На этом уроке мы напишем алгоритм сохранения записи о пользователе и информации о нем
16 Красивая аутентификация на сайте 00:07:37
8 чел. ★ 5 ^
  На этом уроке мы поменяем дизайн формы входа на сайт
17 Что доступно Юпитеру? 00:10:21
8 чел. ★ 5 ^
  На этом занятии мы научимся управлять доступом к пунктам главного меню
18 Объявления - создание базы и модели 00:09:51
8 чел. ★ 5 ^
  На этом уроке мы создадим таблицу bulletins при помощи миграций и сгенерируем для данной таблицы класс ActiveRecord
19 Объявления - контроллер, представление и много записей 00:13:46
8 чел. ★ 5 ^
  На этом уроке мы создадим контроллер и представление для работы с объявлениями,
а также сделаем связь записей о пользователях и объявлениях типа "один-ко-многим"
20 Объявление - функциональный дизайн страницы 00:14:17
8 чел. ★ 5 ^
  На этом уроке мы сделаем дизайн страницы наших объявлений, который поможет нам работать с объявлениями в дальнейшем
21 Объявление - ограничение доступа 00:09:25
8 чел. ★ 5 ^
  На этом уроке мы ограничим доступ неавторизированного пользователя к странице управления объявлениями, а также решим некоторые технические вопросы
22 Объявление - поля для пользовательских форм 00:09:44
8 чел. ★ 5 ^
  На этом уроке мы создадим класс BulletinsForm и определим, какие поля будут использоваться при создании объявления
23 Объявление - форма добавления объявлений 00:17:03
8 чел. ★ 5 ^
  На этом уроке мы создадим представление для добавления объявлений и действие контроллера, запускающего это представление
24 Объявление - сохранение в черновик 00:10:39
8 чел. ★ 5 ^
  На этом уроке мы реализуем механизм сохранения нового объявления в черновик
25 Объявление - список 00:18:42
8 чел. ★ 5 ^
  На этом уроке мы реализуем вывод сохраненных в базе объявлений в список
26 Объявление - всё на публику 00:12:16
8 чел. ★ 5 ^
  На этом уроке мы сделаем наши объявления опубликованными
27 Объявление - публикация на главной странице 00:15:27
8 чел. ★ 5 ^
  На этом уроке мы разместим наши опубликованные объявления на главной странице сайта
28 Объявление - скрыть нельзя удалить 00:12:40
7 чел. ★ 5 ^
  На этом уроке мы реализуем возможность помещать объявления в группу удаленных, восстанавливать их оттуда, а также отключать их просмотр
29 Объявление - статусный рефакторинг 00:08:45
7 чел. ★ 5 ^
  НА этом уроке мы сделаем рефакторинг методов работы со статусом объявлений
30 Объявление - рефакторинг редактирования 00:12:58
7 чел. ★ 5 ^
  На этом уроке мы реализуем редактирование путем небольшого видоизменения функции добавления записи
31 Объявление: запрос - в функцию & кнопка для изображений 00:09:52
7 чел. ★ 5 ^
  На этом уроке мы сделаем рефакторинг метода index и добавим кнопки для перехода в режим работы с изображениями
32 Изображения - микс из миграций 00:12:35
7 чел. ★ 5 ^
  На этом уроке мы через механизм миграций создадим таблицу photo и добавим поле для аватары в таблицу bulletins
33 Изображения - снова MVC 00:10:47
7 чел. ★ 5 ^
  На этом уроке мы создадим модель, контролер и представление для работы с фото
34 Изображения - работа с моделью 00:17:16
7 чел. ★ 5 ^
  На этом уроке мы передадим модель нашего объявления в представление
35 Работаем над ошибками - YII2 в помощь 00:13:03
7 чел. ★ 5 ^
  На этом уроке мы разберемся, как работать над ошибками и читать сигналы дебаггера YII2
36 Изображения - где живут картинки 00:15:34
7 чел. ★ 5 ^
  На этом уроке мы создадим папку для изображений, разместим там изображение по умолчанию, а также создадим универсальные параметры пути и изображения по умолчанию
37 Изображения - модель формы 00:11:10
7 чел. ★ 5 ^
  На этом уроке мы создадим модель PhotoForm для работы с изображениями
38 Изображение - загрузочное представление 00:15:37
7 чел. ★ 5 ^
  На этом занятии мы создадим форму представления, через которое будет загружаться изображение
39 Изображение - загрузка файла на сайт 00:17:29
7 чел. ★ 5 ^
  На этом уроке мы реализуем алгоритм загрузки изображений на сайт
40 ПРОМЕЖУТОЧНЫЙ ВИДЕО ОБЗОР без видео
4 чел. ★ 5 ^
  Мы уже многое сделали на нашем видеокурсе, и автору очень важно
узнать Ваше мнение о данном курсе и получить обратную связь
в форме видео-презентации и ответов на вопросы.

Сделай видео-презентацию своего сайта.
41 Изображение - сохранение пути в базу 00:14:17
4 чел. ★ 5 ^
  На этом уроке мы реализуем сохранение пути к файлу изображений в базу данных
42 Изображение - управление картинками 00:08:36
4 чел. ★ 5 ^
  На этом уроке мы займемся дизайном - создадим выпадающее меню управления изображением
43 Изображение - JS - немного теории и пижонства 00:16:29
4 чел. ★ 5 ^
  На этом уроке мы рассмотрим работу JS на yii2
44 Изображение - JS - глобализация 00:26:49
4 чел. ★ 5 ^
  На этом уроке мы перенесем все скрипты JS в отдельный файл, а также реализуем открытие и скрытие элементов ввода информации
45 Изображение - JS - сохранение информации в базу 00:22:42
4 чел. ★ 5 ^
  На этом уроке мы научим нашу систему сохранять информацию об изображениях в базу
с использованием технологии ajax

46 Изображение - JS - извлечение методом ajax 00:09:51
4 чел. ★ 5 ^
  На этом уроке мы научим ajax получать информацию об изображениях из базы
47 Изображение - аватарка - вывод на главной странице 00:15:26
4 чел. ★ 5 ^
  На этом уроке мы реализуем вывод главных изображений каждого объявления
(далее - аватарки) на главной странице
48 Изображение - аватарка - работа над ошибками связей 00:09:33
4 чел. ★ 5 ^
  На данном уроке мы исправим ошибки вывода фотографий, очистим базу и заново загрузим в нашу базу
фотографии в одно из объявлений
49 Изображение - аватарка - как стать главной 00:18:13
4 чел. ★ 5 ^
  На этом уроке мы создадим код, делающий любое фото главным
50 Изображение - удаление - ни шагу без подтверждения! 00:09:13
4 чел. ★ 5 ^
  На этом уроке мы реализуем всплывающее окно подтверждения действия
и протестируем результаты выбора различных вариантов
51 Изображение - удаление - удаление файла и записи 00:15:49
4 чел. ★ 5 ^
  На этом уроке мы реализуем удаление файлов изображений и записей о них из базы данных
52 Главная страница - подробности - ссылки и заготовка представлени 00:09:05
4 чел. ★ 5 ^
  На этом уроке мы создадим ссылки для объявлений на главной странице и заготовку представления для подробного вывода
информации объявления
53 Главная страница - подробности - больше подробностей 00:11:37
4 чел. ★ 5 ^
  На этом уроке мы выведем максимум информации на страницу подробностей объявления
54 Главная страница - подробности - расширяя информацию 00:15:15
4 чел. ★ 5 ^
  На этом уроке мы внесем в наш код изменения, которые позволят сохранять объявления с большим количеством информации
55 Главная страница - оформление - дизайн объявления 00:10:02
4 чел. ★ 5 ^
  На этом уроке мы зададим стиль дизайна объявления
56 Главная страница - оформление - дизайн элементов базовой страницы 00:11:44
4 чел. ★ 5 ^
  На этом уроке мы выведем информацию о себе в элементе footer и сделаем главное меню стильным и красивым
57 Главная страница - оформление - ловим цвет пикселя 00:06:00
4 чел. ★ 5 ^
  На этом уроке мы рассмотрим использование инструментов определения цвета пикселя (Пипетка)
58 Главная страница - оформление - смотрим все изображения 00:15:27
4 чел. ★ 5 ^
  На этом уроке мы реализуем просмотр всех изображений объявления "не хуже, чем на Avito"
59 Главная страница - оформление - стильный логотип 00:09:56
4 чел. ★ 5 ^
  На этом уроке мы реализуем вывод логотипа в иконку проекта и в пункт меню перехода на главную страницу
60 Главная страница - оформление - оповещения через баннер 00:11:19
4 чел. ★ 5 ^
  На этом уроке мы создадим баннер для оповещений, новостей
61 Разделы (темы) - немного теории 00:11:07
4 чел. ★ 5 ^
  На этом уроке мы рассмотрим вопрос тематик объявлений на нашем сайте, а также составим план (структуру) таблицы тем Themes и связующей таблицы ThemesBulletins
62 Разделы (темы) - миграции с внешними ключами 00:18:49
4 чел. ★ 5 ^
  На этом уроке мы создадим миграции таблиц themes и themesbulletins, сами эти таблицы и их модели ActiveRecord с внешними связями
63 Обратная связь - мозговой штурм - внештатные ситуации 00:09:19
3 чел. ★ 5 ^
  В данном уроке попрошу Вас выполнить небольшую самостоятельную работу и дать обратную связь.
64 Разделы (темы) - вывод тем в объявлении 00:16:29
3 чел. ★ 5 ^
  На этом уроке мы реализуем вывод тем на странице объявления
65 Разделы (темы) - меню тематик 00:10:55
3 чел. ★ 5 ^
  На этом уроке мы реализуем вывод ссылок на темы на главной странице и подсчет объявлений в каждой теме
66 Разделы (темы) - тематические выборки 00:15:13
3 чел. ★ 5 ^
  На этом уроке мы реализуем выбор объявлений по темам и вывод их на основную страницу
67 Разделы (темы) - полезные переходы 00:11:48
2 чел. ★ 5 ^
  На этом уроке мы реализуем возвращение со страницы объявлений на предыдущую страницу, а также переходы по темам объявления по типу хештегов
68 Разделы (темы) - администрирование - теория и заготовки 00:09:03
2 чел. ★ 5 ^
  На этом уроке мы создадим контроллер для администрирования разделов (тем) и представление index
69 Разделы (темы) - администрирование - все темы в таблицу 00:10:55
2 чел. ★ 5 ^
  На этом уроке мы выведем существующие темы в таблицу и зададим им элементы управления
70 Разделы (темы) - администрирование - подтверждение удаления 00:15:58
2 чел. ★ 5 ^
  На этом уроке мы реализуем алгоритм подтверждения удаления и создадим соответствующее представление
71 Разделы (темы) - администрирование - удаление разделов и чистка связей 00:09:07
2 чел. ★ 5 ^
  На этом уроке мы окончательно удалим раздел, а перед этим удалим все его связи с объявлениями
72 Разделы (темы) - администрирование - Обычный ThemesForm 00:10:23
2 чел. ★ 5 ^
  На этом уроке мы создадим модель ThemesForm, заготовку действия Add в контроллере Themes и представление под него
73 Разделы (темы) - исправление подсчета и отображение текущей темы 00:08:28
2 чел. ★ 5 ^
  Hа этом уроке мы исправим ошибку подсчета, обнаруженную в процессе прохождения курса,
а также отобразим текущую тему, по которой выборка объявлений, в баннере

74 Разделы (темы) - администрирование - "темное" представление 00:11:49
2 чел. ★ 5 ^
  На этом уроке мы создадим поля для редактирования или добавления темы в представлении themes\add
75 Разделы (темы) - администрирование - волшебный выпадающий список 00:09:17
2 чел. ★ 5 ^
  На этом уроке мы создадим выпадающий список выбора родительской темы
76 Разделы (темы) - администрирование - сохранение темы 00:19:30
2 чел. ★ 5 ^
  На этом уроке мы реализуем сохранение добавляемых и редактируемых тем
77 Разделы (темы) - администрирование - рефакторинг и валидация 00:07:02
2 чел. ★ 5 ^
  На этом уроке мы сделаем рефакторинг нашего представления add и валидацию данных формы ThemesForm
78 Связи объявлений и тем - заготовка 00:12:50
2 чел. ★ 5 ^
  На этом уроке мы создадим действие в контроллере BulletinsController и представление,
которые помогут нам работать со связями объявлений и тем
79 Связи объявлений и тем - добавление новой темы 00:22:38
2 чел. ★ 5 ^
  На этом уроке мы научим нашу систему добавлять новую тему в объявление (делать связь темы и объявления)
80 Связи объявлений и тем - темы, которых не было 00:11:33
2 чел. ★ 5 ^
  На этом уроке мы научим нашу систему выводить в список добавляемых в объявление тем только те, которые не прикреплены к нашему объявлению
81 Связи объявлений и тем - темы, которых не будет 00:10:57
1 чел. ★ 5 ^
  На этом уроке мы научим нашу систему удалять из объявлений темы, к которым наше объявление привязывать не надо
82 Глобальный поиск - поле поиска в меню 00:17:09
^
  На этом уроке мы добавим поле поиска в навигационное меню сайта, а также решим вопрос с активными пунктами меню.
83 Глобальный поиск - ищем глобально 00:17:08
^
  На этом уроке мы создадим алгоритм поиска по вводимому в поле search контенту
  Итого:   83 видеоурока 17 час. 42 мин.
0 чел. ★ 5  
  Финалисты:   Пока никто не закончил этот курс .

Начинаем практику по языку C#





Если вы пришли без приглашения -
введите тысяча двадцать четыре (цифрами).
Чтобы стать хорошим программистом — нужно писать программы. На нашем сайте очень много практических упражнений.

После заполнения формы ты будешь подписан на рассылку «C# Вебинары и Видеоуроки», у тебя появится доступ к видеоурокам и консольным задачам.

Несколько раз в неделю тебе будут приходить письма — приглашения на вебинары, информация об акциях и скидках, полезная информация по C#.

Ты в любой момент сможешь отписаться от рассылки.


Научился: Записал видеообзор курса "Доска объявлений" как получилось судить вам, но не судите строго))
Трудности: скришот требует, а где я его возьму? я видео снимал, зачем тогда скрин? ну ладно выложу первый кадр



Научился: Делать видеообзор) В общем красноречивей скажет мой ролик. всем приятного просмотра. А Валере спасибо за курс, ждём продолжения. Курс очень клёвый, нужный, полезный и всякое такое) Всем добра!
Трудности: Сделать видеообзор