Skip to content

Latest commit

 

History

History
170 lines (130 loc) · 11.1 KB

program-2022.md

File metadata and controls

170 lines (130 loc) · 11.1 KB

Программа курса "Системное программирование" для групп 007са, 007сб, 907а, 907б.

На самом деле это фронтенд/веб-разработка.

Лабораторная №1: Список дел

а) Вёрстка HTML

html

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

б) работа с CSS

css

  • Написать стили для веб-приложения. Не обязательно, чтоб было как на картинке, главное сам процесс.
  • Постараться отцентрировать весь блок горизонтально и вертикально.
  • Будет плюсом, если сам список можно будет прокручивать без прокручивания самой страницы.
  • В процессе можно пользоваться презентацией.

в) Оживляем список дел, прикручиваем JS

  • Добавить возможность добавления новых элементов.
  • Добавить возможность удаления элементов.
  • Задание со звёздочкой: Сохранить элементы в localstorage.

г) Фильтрация элементов

filter

  • Сделать нажимаемыми ссылки внизу. Нажимаешь на ссылку, она становится жирной. Так устанавливается режим фильтрации. Можно реализовать это с помощью радиокнопок.
  • Сделать фильтрацию в соответствии с выбранным режимом. Нажали на ссылку, список обновился.
  • Рефакторинг: вынос кода, обновляющего список, в отдельную функцию render().

Лабораторная №2: Работа с API

а) Выбрать себе API по вкусу:

б) Реализовать форму ввода (поиск?), кнопку "отправить" и отображение результатов.

  • При отправке должен отображаться спиннер, который исчезает при получении результатов.
  • Типовой вид формы: search form

в) Реализовать дополнительные фичи:

  • Сортировку по какому-либо полю.
  • Фильтрация по категории.
  • Ограничение количества результатов на странице.
  • Типовой вид формы:

advanced search form

Программа для тех, кто уже знает JS + CSS + HTML

Лабораторные

Сделать 1 и 2 лабораторные на React.js.

Задачи на контрольную / диф. зачёт

1. Лайк

На странице отображается чёрное сердечко 🖤. Когда на него кликнули дважды (задержка <= 800 ms), сердечко становится красным ❤️. По техническим причинам нельзя пользоваться встроенным событием onDoubleClick.

2. Кликер

Написать кликер с возможностью уменьшения и увеличения:

Если число нечётное, то оно красное, иначе зелёное.

3. Измеритель времени реакции.

Страница показывает красную кнопку. На неё пока нельзя нажимать. Через случайное время (1-10 с) цвет кнопки меняется на зелёный и на неё надо нажать. После нажатия компонент пишет время между изменением цвета и нажатием (время реакции среднего человека 0.1-0.2 с).

4. Обратный таймер:

Таймер при нажатии кнопки "старт" идёт до 0 и останавливается. Можно остановить кнопкой "стоп".

5. Частоты слов

Многострочное поле ввода, а снизу выводится список слов и сколько раз это слово встретилось. Обновляется автоматически при изменении поля.

6. Калькулятор систем счисления

Калькулятор для перевода в другие системы счисления (2, 8, 16). Результат меняется при изменении полей.

7. Калькулятор температур

Сделать калькулятор перевода температур из Цельсия в Фаренгейты и обратно. При изменении одного поля меняется другое и наоборот.

8. Нотификации

Сверстать виджет нотификаций. Он показывает, сколько пришло новых сообщений. Колокольчик можно отобразить с помощью эмодзи 🔔. Число отображается в виде текста в круглом <div>.

9. Кнопка с закруглёнными краями

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

10. Светофор

Реализовать светофор, меняющийся раз в секунду. Задача со ✨: сделать светофор с показом секунд, как здесь.