Перейти к основному содержанию
EDU-MMCS
Вы используете гостевой доступ (Вход)

Modern Web Technologies-2

  1. В начало
  2. Курсы
  3. Осенний семестр
  4. Фундаментальная информатика и ИТ
  5. MWT-2
  6. Task 3
  7. Task 3

Task 3

Открыто с: суббота, 3 октября 2026, 00:00
Срок сдачи: суббота, 17 октября 2026, 00:00
Требуемые условия завершения
# Task 1. Online Shop with a Cart

**Maximum score: 15**

## Goal

Build a front-end online shop application with a cart in vanilla JavaScript: learn to keep the application state in a data model and re-render the UI from it.


## What to build

A single-page application (HTML + CSS + JS). No back end is needed: only static files served by a local Node.js server (see "How to run").

### Functional requirements

1. **Product catalog.** Show 5–6 products. Each product has a name, a price and an "Add to cart" button.
2. **Adding to the cart.** Clicking the button puts the product into the cart. If it is already there, increase its quantity instead of adding a second row.
3. **Changing the quantity.** Every cart line has "+" and "−" buttons; the quantity changes by one.
4. **Cart display:**
   - the list of selected products: name, unit price, quantity, line total;
   - the total number of items in the order;
   - the order grand total.
5. **Removal.** Decreasing the quantity to zero removes the line (or provide a separate "Remove" button — your choice).
6. **Empty cart.** While nothing is selected, show a clear message (for example, "Your cart is empty") and the totals are 0.

### Quality requirements

- The grand total is always recomputed from the data rather than kept in a separate hand-maintained counter.
- No errors or warnings in the browser console (F12 → Console).
- The cart state lives in the JS model; the DOM is re-rendered from the model — as in the "Theater" lesson.
- Products can be stored as an array of objects, for example:

  ```js
  { id: 1, title: "Laptop", price: 750, quantity: 0 }
  ```

### Recommended project structure

```
shop/
├── index.html
├── styles.css
└── js/
    ├── products.js        # model: the product list and the cart logic
    ├── cartComponent.js   # renders the catalog and the cart (like roomComponent.js)
    └── index.js           # entry point (like index.js)
```

Modules are wired up with `<script type="module" src="js/index.js"></script>`.

## How to run

ES modules (`import`/`export`) do not work when a file is opened directly through `file://`, so a local server is required. Any npm package will do, and you do not have to install it into the project:

```bash
npx serve .
# or
npx http-server .
```

Then open the address printed in the console.
◄ Task 2
Task 4 ►

Блоки

Пропустить Навигация

Навигация

  • В начало

    • Страницы сайта

      • Мои курсы

      • Теги

    • Мои курсы

    • Курсы

      • Осенний семестр

        • Прикладная математика и информатика

        • Фундаментальная информатика и ИТ

          • ВИМ в ИИ

          • MWT-2

            • General Info

            • Task 1

            • Task 2

            • Task 3

              • ЗаданиеTask 3

            • Task 4

          • CS102 ДМ

          • SciComp 2026

          • Probability Theory and Mathematical Statistics

          • Научные Вычислительные Пакеты

          • DataSc101

          • NLP (7 семестр)

          • ДГНМ

          • Compiler Development

          • CMVSM

        • Математика, механика

        • Педагогическое образование

        • Магистратура

          • Разработка мобильных приложений и компьютерных игр

        • Аспирантура

        • Вечернее отделение

        • Другое

        • Этика ИИ

        • ОНС-Н_1

        • Прогр-ММ-2

        • Прогр-ММ-1

        • АБиМ-ИИБ26

        • МСиТВ_АБМ_2026

        • Python Eng

        • Экзамен ИКТ

        • ТестИИ

        • Информатика-Осень-ПМИ-2

        • Информатика-осень-ПМИ-1

      • Весенний семестр

        • Прикладная математика и информатика

        • Фундаментальная информатика и ИТ

        • Математика, механика

        • Педагогическое образование

        • Магистратура

          • Разработка мобильных приложений и компьютерных игр

        • Аспирантура

        • Вечернее отделение

        • Другое

      • Воскресная компьютерная школа

        • Пользователь компьютера плюс

        • Пользователь прикладных программ

        • Программирование I ступень

        • Программирование II ступень

        • Программирование III ступень

        • Архив

      • Воскресная математическая школа

        • Открытое тестирование РНОМЦ и мехмата ЮФУ

          • Открытое тестирование РНОМЦ и мехмата ЮФУ - 2026

          • Открытое тестирование РНОМЦ и мехмата ЮФУ - 2025

        • Олимпиадная математическая школа

        • Повышение квалификации

        • Доступная математика

        • Лаборатория математического онлайн-образования мех...

        • Осенняя универсиада

        • Научно-практическая конференция

        • ВМШ

          • ВМШ -2025

          • ВМШ - 2026

        • Летняя олимпиадная математическая школа РНОМЦ и ме...

      • Государственная итоговая аттестация

      • Дополнительное образование

      • Олимпиады

      • Видеолекции

      • Разное

      • Архив курсов

      • Заочная школа мехмата ЮФУ

Дополнительные блоки

Вы используете гостевой доступ (Вход)
MWT-2
Сводка хранения данных
Скачать мобильное приложение
Яндекс.Метрика