ТЗ

ТЗ


ГЛАВНАЯ СТРАНИЦА - СТРАНИЦА КУРСОВ


1. Тип

Чекбокс с возможностью выбора обоих значений. Если не чекнуто оба чекбокса, то показывать курсы так, как будто выбрано оба чекбокса.


2. Город

Список с автокомплит. Можно выбрать только одно значение.

Пример: https://alevs2r.github.io/autocomplete/demo/index.html

Пункт Город активен только если в Типе (1) 'Оффлайн'- checked.


3. Категория

Чекбоксы с возможностью выбора нескольких значений. Если не выбрано ничего - то показывать курсы так, как будто выбрано всё. 

Возможные значения:

- Веб-разработка

- Разработка под iOS

- Разработка под Android

- Десктоп-разработка


4. Технология

Выпадающий список. Можно выбрать только одно значение. Не меняется в зависимости от того что выбрано в пункте 3. 


5. Уровень

Чекбокс 'Для начинающих'

Если выбран - показывать курсы только для начинающих, если не выбран - для всех. 


6. Стоимость

Два поля с возможностью ввода цифр от нуля до 9 999 999. Отрицательные вводить нельзя.

Пример: https://catalog.onliner.by/notebook?price%5Bto%5D=222222222.00&display_resnb%5Bfrom%5D=1024x576 (поле 'Минимальная цена в предложениях магазинов')


7. Старт курса

Date Picker. Работает так, что выборе даты N, то показываются все курсы, у которых дата старта позже, чем дата N. 


8. Сортировка по дате старта или по стоимости (сортировка по увеличению). Выпадающий список с одним значением

Если по дате старта, то показывается ближайшая

Если по стоимости, то показывается самая дешевое


9. Картинка со сслыкой на курс


10. Ссылка на курс


11. Ссылка на школу


12. ДЛя онлайн курсов показывать 'онлайн', для оффлайн курсов - город.


13. Блок с пятью топ-курсами. В админке должна быть возможность указывать для курса что он входит в топ курса на позиции N. 


14. То же самое что и в 15, только для школ. 


15. Пагинация по 5 - 10 на страницу. 






Дефолтные состояния всех фильтров - показывать все курсы. 

1. По дефолту ничего не выбрано. Показывать всё. 

2. По дефолту ничего не выбрано. Показывать всё.

3. По дефолту ничего не выбрано. Показывать всё.

4. По дефолту ничего не выбрано. Показывать всё.

5. По дефолту ничего не выбрано. Показывать всё.

6. По дефолту пустое поле. Показывать всё.

7. По дефолту - сегодняшняя дата.

8. По дефолту - по дате старта. 


При изменении любого из фильтров сразу обновлять страницу. 

 


Фильтры применяются по принципу И. 





Описание базы данных.

Сущности:

1. Школа

2. Курс

У каждой школы есть множество курсов. Курс может принадлежать только к одной школе. 

Курс не может быть и оффлайн, или онлайн - либо то либо то.

Курс принадлежит только одному городу.

Курс может принадлежать к нескольким категориям. Например, курс по Java принадлежит и к мобильной разработке, и к веб-разработке. То есть фильтр номер 3 должен выводить курс по Java и при выборе мобильной разработки, и при выборе веб-разработки.


<<<<< КОНЕЦ ОПИСАНИЯ СТРАНИЦЫ КУРСОВ >>>>>>>>>>>



АДМИНКА (либо отдельная для schools.techrocks.ru либо внутри существующего сайта для techrocks.ru/schools)


1. Предусмотреть возможность добавления всех полей для сущности Курсов (CRUD операции - create, read, update, delete)

2. UserRoles : a. School Manager(CRUD - только для своих курсов) b. Admin (Андрей, Женя, Ты - CRUD со всеми курсами)


3. Возможность сделать дубликат курса (?????).







Report Page