Программирование
1я неделя
срок 6 недель = 3 + 5 + 20 дней
5 направлений

Учебники

Самоучитель PHP программулин
Онлайн учебник по PHP 7.2
Учебник по PHP htmlAcademy
Руководство по PHP Метанит


доработка cms +
магазин +
Жилые комплексы +
Образование +
интеграция через json

wordpress: разработка плагинов

php + myadmin
доработка cms - разделение модулей на административные и публичные - роли, права доступа к данным
магазин модули магазина конструктор магазинов
ЖКХ - барахолка, поквартирка, карты оцифрованных ЖК
Образование - электронный журнал - доработка под многие года, группы, студентов, преподавателей, колледжи - социальная образовательная площадка - библиотека с таксономией дисциплин
интеграция через json и встраиваемые коды-объекты интеграция с 1С интеграция со справочниками

6 недель

1 нед - дизайн
разработка логотипов
основы js теория
js - функции и лямда-функции
2 нед
js - объекты, методы, прототипы, классы
настройка git под проект
собрать html макет страниц проекта
проект БД, схема и первичное наполнеие


cms

   

Задача

Разобраться в устройстве:
-  одной точки входа. посмотреть файл .htaccess
-  принципах mvc
-  Изучить структуру БД проекта
-  псмотреть устройство index файла
-  Разобраться в кодах модулей core и login
Добавить сайту форум:
-  по аналогии с модулем товаров.
-  добавить таблицу для записей с картинками.
-  Добавить таблицу веток форума (категории или темы).
-  Предусмотреть возможность вложения веток форума друг в друга.
-  Добавить форму через которую можно добавлять записи. метод add_reply
-  Создать модуль выводящий все ветки форума и сообщения выбранной ветки.
-  -  методы all_categories и branch
Разделить модули на публичные, кабинеты и административные
-  в таблицу модулей добавить поле admin (значения 0 1 2 или public private admin)
-  не административные модули при добавлении должны быть доступны неавторизованному пользователю без необходимости правок модуля core
-  административные модули должны находится в папке /module/admin/ + module_name
-  модули кабинетов должны находится в папке /module/private/
-  Кабинеты (private) модули - должны быть доступны только зарегистрированным пользователям с правами manager.
-  Поместить модуль manager значением для роли manager.
-  Добавить простой административный модуль - доступный только пользователям с административными правами.
Переместить публичные модули в папку /public/ с сохранением работоспособности сайта
-  для этого надо будет поменять модуль core
Добавить административный модуль редактирования модулей
-  модуль должен принадлежать к числу административных
-  должен позволять создавать новые модули и привязывать к ним таблицу
-  заносить данные о новом модуле в БД - устанавливать уровнь доступа к нему
-  в зависимости от уровня доступа модуля - создавать для него каталог в соответствующем каталоге.
-  В каталог модуля записывать файлы controller view
-  -  с минимально необъодимым функционалом для отображения информации из привязанной таблицы

Цель

Написать cms на принципах mvc (модель представление контроллер)
на базе сайта https://stores.q-pax.ru/

План

2 нед
Разобраться в устройстве cms
3 нед
Добавить сайту форум
4 нед
Разделить модули на публичные, кабинеты и административные
5 нед
Переместить публичные модули в папку /public/
6 нед
модуль редактирования модулей
интерфейс управления правами и модулями в административной части
разграничение доступа по материалам (author)


магазин (для повторения курса с нуля)

Задача

Создание базы данных:
-  Описание предметной области в сущностях и свойствах
-  графическое моделирование базы данных со связями между таблицами
-  -  таблицы, свойства, типы свойств связи между таблицами.
-  создание структуры базы данных в СУБД
-  Наполнение таблиц первичными данными

создание файловой архитектуры проекта
-  файл меню сайта - ссылки на страницы сайта:
-  -  категории товаров верхнего уровня + новостную страницу
-  индексный файл выбора категорий товаров
-  файл списка товаров одной категории
-  файл детального просмотра товара
-  файл ядра - подключения к БД
-  страница корзины
-  оформление заказа доставки и оплаты
-  страница личного кабинета пользователя с архивом всех заказов и их статусом
-  страница кабинета должна быть доступна только авторизоавнным пользователям, неавторизованных перебрасывать на страницу авторизации
-  файл списка новостей
-  файл детальной новости

-  создать каталоги:
-  -  js - для всех скриптов
-  -  css - все стили вёрстки
-  -  image - все картинки шаблона
-  -  upload - для загрузки всех файлов создаваемых объектов
-  -  request - скрипты обрабатывающие ajax запросы от браузера
-  -  -  работа с пользователями login logout register
-  -  -  работа с товарами и категориями add_cart edit_goods edit_category
-  -  -  работа с новостями и баннерами edit_news edit_banner
-  -  template - папка c файлами head header footer
-  -  admin - страницы управления контентом:
-  -  -  категорий, товаров, пользователей, баннеров, новостей, заказов

структура html документа по блокам
-  Создание шаблона страниц
-  -  head - подключающий файлы и метаинформацию документа
-  -  header - находится в верхней части содержит:
-  -  -  логотип, название компании, контактные телефоны,
-  -  -  ссылку на форму авторизации или аватар + ФИО + ссылка на личный кабинет + -  -  -  выход
-  -  -  меню сайта
-  -  footer - находится в нижней части экрана
-  -  -  контактная информация, ссылки на соц сети, копирайт

-  Внутренние блоки обёртки content или wrapper
-  -  баннер с каруселью картинок
-  -  Заголовок текущей страницы
-  -  Контейнеры
-  -  -  контейнер с множеством блоков плиткой
-  -  -  контейнер Вертикальный
-  -  -  контейнер горизонтальный
-  -  дата новости
-  -  форма
-  -  картинка + текст
-  -  табы + внутренние блоки с информацией
-  -  Кнопки покупки
-  -  Корзина с товарами
-  -  запись комментария: дата пользователь текст
-  -  пагинатор

-  Стилизация каждого визуального блока
-  -  задание осей flex
-  -  выравнивание отступами

-  Медиа запросы стилей для адаптивной вёрстки каждого блока (десктоп, планшет, -  мобильный вариант)
-  Наполнение страниц блоками информации

Скрипты вывода информации из БД
-  Выборка из БД
-  разбор результата выборки
-  -  Вывести циклами списковую информацию
-  -  Вывести через условные операторы детальную информацию
-  -  сформировать селекты для форм
-  -  наполнить формы редактирования
-  Добавление фильтров
-  Создание пагинатора (бесконечного)

обработчики на javascript для всех форм или для каждой отдельной формы
-  найти форму - повесить на неё событие
-  добавить обработчик собирающий информацию и отправляющий на скрипт из папки request
-  получить и обработать ответ:
-  -  проверить и разобрать json
-  -  вывести ошибки
-  -  оповестить о результате
-  -  добавить результат к блоку

Скрипты добавления и редактирования объектов
-  Получение данных $_POST
-  Валидация полученных данных
-  Создание запроса INSERT
-  Создание запросов на UPDATE
-  защита от xss-атак - подготовка запросов
-  Запись переданных файлов в upload $_FILE
-  Логирование ошибок
-  Выовод результата в ответ на запрос

Цель

написать онлайн магазин
с возможностью регистрации и авторизации пользователей,
двухуровневой системой категорий товаров и товарами
со страницами корзины, заказов
с блоком карусели на главной странице
страницы новостей с комментариями
все страницы должны быть оформлены в едином стиле
-  Должно быть общее меню сайта на каждой странице

План

1 нед Архитектура проекта
2 нед Вёрстка
3 нед Бэкенд
4 нед Фронтенд
5 нед Администрирование

План развёрнуто

1 нед Архитектура проекта
-  Создание и наполнение БД
-  Создание файловой структуры
-  Создание шаблона страниц
-  Создание контейнеров
2 нед Вёрстка
-  Создание блоков контента
-  Визуальная стилизация блоков
-  Наполнение страниц блоками информации
-  Создание форм
-  -  категорий, товаров, новостей, баннеров
-  Кнопки покупки
-  Корзина с товарами
3 нед Вывод информации с бэкенда
-  Вывод списковой информации
-  Вывод детальной информации
-  скрипт создания корзины
-  добавление товара в корзину
-  скрипт перевода корзины в заказ
4 нед Фронтенд (взаимодействие клиент-сервер)
-  Создание пагинатора
-  Создание js обработчиков для всех форм
-  авторизация, регистрация
-  добавление товара в корзину
-  изменение корзины
-  оформление заказа
-  добавление комментариев
-  добавление и редактирование остальных сущностей
5 нед Административная часть сайта
-  скрипты добавления и редактирования записей БД
-  Отладка и рефакторинг проекта

Образование

   

Задача:

написать электронный журнал
Приложение реализуют связи между:
Семестрами(год + начало/конец), пользователи, роли, группы, дисциплины, посещаемость, учебными заведениями, конкретными занятиями, оценками. (дополнительно аудитории)
пользователь принадлежит группе, роль выдаётся на всю группу.
Конкретное занятие имеет тип (лекция или практика), дату приведения и привязывается к дисциплине и группе. (дополнительно аудитории.)
Должна быть форма авторизации и возможность выхода.
У студента - возможность просмотра своих оценок и посещаемости.
Доступ к формам добавления и редактирования.
Преподаватель: добавление занятий к дисциплине, отмечать посещаемость.
Куратор заведения: добавление групп, пользователей (студентов, преподавателей), дисциплин.
Администратор: добавление пользователей (кураторы, администраторы), учебные заведения.
года и семестры при необходимости создания - должны создаваться автоматически.
Таблица посещаемости должна быть адаптивной - в мобильной версии отображается только одна колонка занятия за одну дату - которую ожно выбрать в дополнительном фильтре: дата занятия.

Реализовать выгрузки в файл:
состав группы.
Состояние по оценка всей группы, по выбранной дисциплине
Все оценки студента.
посещаемость группы по дисциплине
Пример: https://education.q-pax.ru/visits/

План

3 нед
Создать структуру БД. Наполнить данными.
Сделать для нескольких групп
Для нескольких дисциплин
4 нед
сделать редактируемую таблицу связи - посещаемость дисциплин, практик студентом
Выставление оценок
5 нед
сделать для нескольких преподавателей
на несколько лет
форма фильтрации по группам, годам(выставлять текущий), дисциплинам
6 нед
реализовать с разделением по нескольким колледжам
Сделать выгрузку результата по группе в файл
адаптированный вид, для мобильного - возможность видеть не всю таблицу, а занятие за одно число - дополнительный фильтр

Жилищный комплекс

Цель

Создать сайт с возможностью посмотреть существующую карту районов и жилых комплексов.
Посмотреть планировки в жилом комплексе
Возможностью для жильцов подключиться к информационному пространству добрососедства в своём жилом комплексе
У совета дома или главного по дому должна быть возможность модерации сообщества - исключение торговых агентов не проживающих в данном комплексе.
с возможностью для жильцов обмениваться товарами и услугами.
Возможностью социума давать местному бизнесу обратную связь, улучшая качество товаров и услуг.

Задача

Площадка должна обрабатывать несколько групп домов, как отдельные замкнутые системы.
Написать форум + внутренний магазин обмена, где жильцы одной группы домов могут выставлять на продажу товары и услуги с фото и описанием.
У сайта есть публичная часть, и закрытая
На публичной части размещается районированная карта города и формы регистрации и авторизации.
Закрытая часть для авторизованных пользователей состоит из Личного кабинета, страницы настроек профиля. Есть три типа личных кабинетов: Собственник, Представитель совета дома, Администратор.
Администратор не ограничен одним комплексом домов.
В закрытой части у каждого комплекса есть: форум с ветками администрируемые советом дома, малая карта домов, поквартирная развёртка домов с поэтажным планом.
магазин товаров и услуг с категориями. Категории администрирует совет дома.
Страница со списком услуг, страница редактирования услуги, любой авторизованный пользователь может выставить свою услугу.
Страница добавления и редактирования товара. Любой авторизованный пользователь может управлять своими услугами.
У совета дома есть доступ к дополнительным скрытым свойствам объектов домов (квартир) - которые они сами заполняют.
У администратора есть доступ к системным настройкам относящимся ко всей системе в целом.

План

3 нед
создать структуру БД
наполнить таблицы данными
Создать общий шаблон header + menu + footer для всех страниц
создать структуру страниц для вывода списков: районов города, микрорайонов, жилых комплексов (кварталов) + магазины микрорайона.
4 нед
сделать страницу вывода домов в квартале
- небольшими изображениями домов сверху, либо схемы
вывести на основных страницах информацию из БД
Сделать формы регистрации и авторизации.
Написать обработчики форм.
Добавить роли: пользователь, член совета дома, менеджер магазина, администратор.
5 нед
Создать страницу развёртки дома (крупное фото, план и сетка квартир из БД)
Привязка пользователей к квартирам.
Страница редактирования квартиры - заполняет пользователь.
Возможность разместить: 3 товара, услугу, потребность - товар или услуга.
За домом закрепляются ветки форума - управление доступом: для всего микрорайона, для квартала, для дома.
По дому выводить дополнительную информацию - интегрально предоставляемые и требуемые услуги жильцов, список товаров
6 нед
Совету дома
предоставить доступ к просмотру и редактированию дополнительной информации: по квартирам и в целом по дому,
возможность создавать у дома дополнительные ветки форума.
ЛК - администратора для управления информацией по комплексам и районам.
например загрузка картинок домов и т.д.

Интеграция с внешней системой через json

3 нед
4 нед
5 нед
6 нед