diff --git "a/\320\222\320\276\321\200\320\276\320\261\321\214\320\265\320\262\320\234\320\220_\320\232\320\276\321\200\320\265\320\277\320\260\320\275\320\276\320\262\320\230\320\220_\320\237\320\276\321\200\321\202\321\204\320\276\320\273\320\270\320\276/\320\233\320\2401/lab1.md" "b/\320\222\320\276\321\200\320\276\320\261\321\214\320\265\320\262\320\234\320\220_\320\232\320\276\321\200\320\265\320\277\320\260\320\275\320\276\320\262\320\230\320\220_\320\237\320\276\321\200\321\202\321\204\320\276\320\273\320\270\320\276/\320\233\320\2401/lab1.md" new file mode 100644 index 0000000..94e5f80 --- /dev/null +++ "b/\320\222\320\276\321\200\320\276\320\261\321\214\320\265\320\262\320\234\320\220_\320\232\320\276\321\200\320\265\320\277\320\260\320\275\320\276\320\262\320\230\320\220_\320\237\320\276\321\200\321\202\321\204\320\276\320\273\320\270\320\276/\320\233\320\2401/lab1.md" @@ -0,0 +1,65 @@ +# Лабораторная работа №1 - Разработка концепции проекта + +### 1) Разработать документ, содержащий: + +**Название проекта:** Интернет-ресурс "Портфолио" +**Краткое описание проекта:** +Портфолио позволяет анализировать, систематизировать и объективно оценивать результаты работы, планировать дальнейшее развитие. Оно предоставляет возможность работодателю оценить профессиональный уровень студента, а студентам — стимулирует к развитию. + +**Цель проекта:** +Отслеживать динамику развития пользователя и поддерживать образовательную и профессиональную активность через информационную систему. + +--- + +### 2) Аналитический обзор + +**Конкуренты:** +1. [portfolioperm.ru](https://portfolioperm.ru) +2. [akt.eportfolio.kz](https://akt.eportfolio.kz/ru) +3. [portfolio.irro.ru](https://portfolio.irro.ru) +4. [kchgta.studentsonline.ru](https://kchgta.studentsonline.ru) + +**Сводная таблица сравнения:** + +| Характеристика | https://portfolioperm.ru | https://akt.eportfolio.kz/ru | https://portfolio.irro.ru | https://kchgta.studentsonline.ru | Ваш продукт | +|-------------------------------------|--------------------------|------------------------------|---------------------------|----------------------------------|----------------| +| Удобный интерфейс | + | - | + | - | + | +| Мобильная адаптация | + | - | + | - | + | +| SEO-оптимизация | + | - | - | + | + | +| Загрузка наград | - | + | - | + | + | +| Система рейтинга | - | + | + | - | + | +| Автоматическая проверка наград | + | + | + | - | + | +| Гибкая настройка уведомлений | - | - | - | + | + | +| Новости о мероприятиях | - | + | - | + | + | + +--- + +### 3) Результаты проекта + +**Формат реализации:** +Сайт + +**Ключевые функциональные требования:** +1. **Регистрация пользователя** — форма для ввода ФИО, email, даты рождения, пола и других данных, проверка на уникальность. +2. **Авторизация** — вход с использованием email и пароля. +3. **Восстановление пароля** — система для сброса пароля через email. +4. **Просмотр новостей** — доступ к новостям с возможностью фильтрации по дате, категории и ключевым словам. +5. **Просмотр профилей пользователей** — поиск по ФИО, фильтрация по городу и дате рождения. +6. **Главная страница** — рейтинг пользователей, информация о проекте, горячие новости. +7. **Личный кабинет** — доступ к личным данным, управление информацией. +8. **Рейтинг пользователей** — система оценки и звания. +9. **Новости и события** — отображение важной информации, предстоящих мероприятий. +10. **Гибкие настройки уведомлений** — возможность настройки уведомлений для пользователя. +11. **SEO-оптимизация** — адаптация под поисковые системы для привлечения пользователей. +12. **Мобильная адаптация** — удобный интерфейс для мобильных устройств. +13. **Защита данных** — использование HTTPS и шифрование паролей. +14. **Поддержка многоязычности** — система должна быть доступна на нескольких языках. + +--- + +**Задачи для выполнения:** +1. Разработка интерфейса с учетом удобства пользователей. +2. Реализация системы регистрации, авторизации и восстановления пароля. +3. Подготовка и запуск базы данных для хранения пользовательских данных и новостей. +4. Оптимизация сайта для мобильных устройств и SEO. +5. Реализация системы уведомлений и рейтингов. \ No newline at end of file diff --git "a/\320\222\320\276\321\200\320\276\320\261\321\214\320\265\320\262\320\234\320\220_\320\232\320\276\321\200\320\265\320\277\320\260\320\275\320\276\320\262\320\230\320\220_\320\237\320\276\321\200\321\202\321\204\320\276\320\273\320\270\320\276/\320\233\320\2401/\320\237\321\200\320\265\320\267\320\265\320\275\321\202\320\260\321\206\320\270\321\217 \320\277\320\276\321\200\321\202\321\204\320\276\320\273\320\270\320\276.pdf" "b/\320\222\320\276\321\200\320\276\320\261\321\214\320\265\320\262\320\234\320\220_\320\232\320\276\321\200\320\265\320\277\320\260\320\275\320\276\320\262\320\230\320\220_\320\237\320\276\321\200\321\202\321\204\320\276\320\273\320\270\320\276/\320\233\320\2401/\320\237\321\200\320\265\320\267\320\265\320\275\321\202\320\260\321\206\320\270\321\217 \320\277\320\276\321\200\321\202\321\204\320\276\320\273\320\270\320\276.pdf" new file mode 100644 index 0000000..aacdd7c Binary files /dev/null and "b/\320\222\320\276\321\200\320\276\320\261\321\214\320\265\320\262\320\234\320\220_\320\232\320\276\321\200\320\265\320\277\320\260\320\275\320\276\320\262\320\230\320\220_\320\237\320\276\321\200\321\202\321\204\320\276\320\273\320\270\320\276/\320\233\320\2401/\320\237\321\200\320\265\320\267\320\265\320\275\321\202\320\260\321\206\320\270\321\217 \320\277\320\276\321\200\321\202\321\204\320\276\320\273\320\270\320\276.pdf" differ diff --git "a/\320\222\320\276\321\200\320\276\320\261\321\214\320\265\320\262\320\234\320\220_\320\232\320\276\321\200\320\265\320\277\320\260\320\275\320\276\320\262\320\230\320\220_\320\237\320\276\321\200\321\202\321\204\320\276\320\273\320\270\320\276/\320\233\320\2402/ER.png" "b/\320\222\320\276\321\200\320\276\320\261\321\214\320\265\320\262\320\234\320\220_\320\232\320\276\321\200\320\265\320\277\320\260\320\275\320\276\320\262\320\230\320\220_\320\237\320\276\321\200\321\202\321\204\320\276\320\273\320\270\320\276/\320\233\320\2402/ER.png" new file mode 100644 index 0000000..ae719e0 Binary files /dev/null and "b/\320\222\320\276\321\200\320\276\320\261\321\214\320\265\320\262\320\234\320\220_\320\232\320\276\321\200\320\265\320\277\320\260\320\275\320\276\320\262\320\230\320\220_\320\237\320\276\321\200\321\202\321\204\320\276\320\273\320\270\320\276/\320\233\320\2402/ER.png" differ diff --git "a/\320\222\320\276\321\200\320\276\320\261\321\214\320\265\320\262\320\234\320\220_\320\232\320\276\321\200\320\265\320\277\320\260\320\275\320\276\320\262\320\230\320\220_\320\237\320\276\321\200\321\202\321\204\320\276\320\273\320\270\320\276/\320\233\320\2402/lab2.md" "b/\320\222\320\276\321\200\320\276\320\261\321\214\320\265\320\262\320\234\320\220_\320\232\320\276\321\200\320\265\320\277\320\260\320\275\320\276\320\262\320\230\320\220_\320\237\320\276\321\200\321\202\321\204\320\276\320\273\320\270\320\276/\320\233\320\2402/lab2.md" new file mode 100644 index 0000000..c5c6926 --- /dev/null +++ "b/\320\222\320\276\321\200\320\276\320\261\321\214\320\265\320\262\320\234\320\220_\320\232\320\276\321\200\320\265\320\277\320\260\320\275\320\276\320\262\320\230\320\220_\320\237\320\276\321\200\321\202\321\204\320\276\320\273\320\270\320\276/\320\233\320\2402/lab2.md" @@ -0,0 +1,404 @@ + +# Лабораторная работа №2 - Разработка базового расписания + +## 1) Прототипы экранных форм (не менее 7) + +### 1. Авторизация +- **Описание**: Экран для входа в систему. Включает поля для ввода email и пароля. +- **Элементы**: + - Поле для email + - Поле для пароля + - Кнопка "Войти" + - Кнопка "Забыл пароль" + - Сообщение об ошибке + +### 2. Регистрация +- **Описание**: Экран для регистрации нового пользователя. Требуется заполнить основные данные. +- **Элементы**: + - Поля для регистрации + - Кнопка "Зарегистрироваться" + - Кнопка "Уже есть аккаунт?" + +### 3. Главная с рейтингом +- **Описание**: Главная страница с рейтингом пользователей и основными новостями. +- **Элементы**: + - Список пользователей с рейтингом + - Лента новостей + - Ссылки на разделы сайта + +### 4. Новости +- **Описание**: Страница с новостями. Возможность просмотра списка и подробной информации о каждой новости. +- **Элементы**: + - Список новостей + - Кнопка для просмотра полной новости + +### 5. Новость +- **Описание**: Страница с полной информацией о выбранной новости. +- **Элементы**: + - Заголовок новости + - Текст новости + - Дата публикации + +### 6. Профиль +- **Описание**: Страница профиля пользователя. Показывает основные данные и рейтинг. +- **Элементы**: + - Фото профиля + - Имя пользователя + - Рейтинг и достижения + +### 7. Список пользователей (банк портфолио) +- **Описание**: Страница с списком пользователей и их краткими профилями. +- **Элементы**: + - Список пользователей + - Фильтры для сортировки + - Профиль пользователя + +--- + +## 2) Диаграмма сущностей (ER) +- Приложена картинка диаграммы сущностей (не менее 7 сущностей). + +--- + +## 3) Разработка API системы (не менее 10 функций) + +### 1. Получение списка новостей +- **HTTP METHOD**: GET +- **URL**: /api/news +- **Описание действий**: Возвращает список новостей с кратким описанием. +- **Входная информация**: + - page (int): Номер страницы. + - limit (int): Количество новостей на странице. +- **Выходная информация**: + ```json + { + "news": [ + { + "id": 1, + "title": "Новость 1", + "description": "Краткое описание", + "date": "2024-12-01" + } + ], + "pagination": { + "page": 1, + "total_pages": 5 + } + } + ``` + +### 2. Получение новости +- **HTTP METHOD**: GET +- **URL**: /api/news/{id} +- **Описание действий**: Возвращает полные данные о конкретной новости. +- **Входная информация**: + - id (int): ID новости. +- **Выходная информация**: + ```json + { + "id": 1, + "title": "Новость 1", + "description": "Краткое описание", + "content": "Полный текст новости", + "date": "2024-12-01" + } + ``` + +### 3. Получение списка пользователей +- **HTTP METHOD**: GET +- **URL**: /api/users +- **Описание действий**: Возвращает список пользователей с основной информацией. +- **Входная информация**: + - page (int): Номер страницы. + - limit (int): Количество пользователей на странице. +- **Выходная информация**: + ```json + { + "users": [ + { + "id": 1, + "full_name": "Иван Иванов", + "points": 1200, + "avatar_url": "https://example.com/avatar.jpg", + "rank": "Мастер" + } + ], + "pagination": { + "page": 1, + "total_pages": 3 + } + } + ``` + +### 4. Получение данных о пользователе +- **HTTP METHOD**: GET +- **URL**: /api/users/{id} +- **Описание действий**: Возвращает информацию о конкретном пользователе. +- **Входная информация**: + - id (int): ID пользователя. +- **Выходная информация**: + ```json + { + "id": 1, + "full_name": "Иван Иванов", + "points": 1200, + "avatar_url": "https://example.com/avatar.jpg", + "rank": "Мастер" + } + ``` + +### 5. Получение списка наград пользователей +- **HTTP METHOD**: GET +- **URL**: /api/rewards +- **Описание действий**: Возвращает список наград всех пользователей или выбранного пользователя. +- **Входная информация**: + - user_id (int): ID пользователя для фильтрации наград. +- **Выходная информация**: + ```json + { + "rewards": [ + { + "id": 1, + "user_id": 1, + "image_url": "https://example.com/reward.jpg", + "event_category": "Научная конференция", + "event_level": "Международный", + "uploaded_at": "2024-11-15", + "status": "Одобрено", + "points": 300 + } + ] + } + ``` + +### 6. Загрузка награды +- **HTTP METHOD**: POST +- **URL**: /api/rewards +- **Описание действий**: Загружает награду для пользователя. +- **Входная информация**: + ```json + { + "user_id": 1, + "event_category": "Хакатон", + "event_level": "Национальный", + "file": "base64_encoded_string" + } + ``` +- **Выходная информация**: + ```json + { + "message": "Награда успешно загружена", + "reward_id": 1 + } + ``` + +### 7. Получение списка отзывов +- **HTTP METHOD**: GET +- **URL**: /api/reviews +- **Описание действий**: Возвращает список отзывов. +- **Входная информация**: + - page (int): Номер страницы. + - limit (int): Количество отзывов на странице. +- **Выходная информация**: + ```json + { + "reviews": [ + { + "id": 1, + "user_name": "Иван Иванов", + "text": "Отличный сервис!", + "rating": 5 + } + ], + "pagination": { + "page": 1, + "total_pages": 2 + } + } + ``` + +### 8. Получение списка уведомлений +- **HTTP METHOD**: GET +- **URL**: /api/notifications +- **Описание действий**: Возвращает список уведомлений для текущего пользователя. +- **Входная информация**: + - user_id (int): ID пользователя. +- **Выходная информация**: + ```json + { + "notifications": [ + { + "id": 1, + "message": "Ваше мероприятие начнется через час", + "date": "2024-12-01T10:00:00Z" + } + ] + } + ``` + +### 9. Получение списка городов +- **HTTP METHOD**: GET +- **URL**: /api/cities +- **Описание действий**: Возвращает список доступных городов. +- **Входная информация**: Нет. +- **Выходная информация**: + ```json + { + "cities": [ + { + "id": 1, + "name": "Москва" + } + ] + } + ``` + +### 10. Получение списка уровней мероприятия +- **HTTP METHOD**: GET +- **URL**: /api/event-levels +- **Описание действий**: Возвращает доступные уровни мероприятий. +- **Входная информация**: Нет. +- **Выходная информация**: + ```json + { + "levels": [ + { + "id": 1, + "name": "Международный" + } + ] + } + ``` + +### Иерархическая структура работ (ИСР) + +#### 1. Разработка проектной документации +- 1.1. Разработка Технического Задания (ТЗ) + - 1.1.1. Сбор требований + - 1.1.2. Анализ бизнес-логики + - 1.1.3. Описание функциональных и нефункциональных требований +- 1.2. Согласование ТЗ с заказчиком +- 1.3. Подготовка прототипов экранных форм + - 1.3.1. Проектирование интерфейсов + - 1.3.2. Согласование с заказчиком + +#### 2. Разработка программного обеспечения +- 2.1. Разработка API системы + - 2.1.1. Разработка API для новостей + - 2.1.1.1. Получение списка новостей + - 2.1.1.2. Получение полной новости + - 2.1.2. Разработка API для пользователей + - 2.1.2.1. Получение списка пользователей + - 2.1.2.2. Получение данных пользователя + - 2.1.3. Разработка API для наград пользователей + - 2.1.3.1. Загрузка награды + - 2.1.3.2. Получение списка наград + - 2.1.4. Разработка API для отзывов + - 2.1.4.1. Получение списка отзывов + - 2.1.5. Разработка API для уведомлений + - 2.1.5.1. Получение списка уведомлений +- 2.2. Разработка интерфейсов + - 2.2.1. Авторизация + - 2.2.2. Регистрация + - 2.2.3. Главная с рейтингом + - 2.2.4. Новости + - 2.2.5. Новость + - 2.2.6. Профиль + - 2.2.7. Список пользователей +- 2.3. Интеграция с базой данных + - 2.3.1. Модели и миграции + - 2.3.2. Связь между сущностями +- 2.4. Разработка логики и бизнес-правил + - 2.4.1. Логика для новостей + - 2.4.2. Логика для пользователей + - 2.4.3. Логика для наград + - 2.4.4. Логика для отзывов + - 2.4.5. Логика для уведомлений + +#### 3. Тестирование +- 3.1. Разработка тестов + - 3.1.1. Юнит-тесты + - 3.1.2. Интеграционные тесты +- 3.2. Тестирование API +- 3.3. Приемо-сдаточные испытания + - 3.3.1. Тестирование пользовательских интерфейсов + - 3.3.2. Тестирование функциональности +- 3.4. Окончательное тестирование и сдача проекта заказчику + +--- + +Для оценки времени выполнения проекта, с учетом, что работа выполняется двумя людьми, можно воспользоваться методом PERT и строить расчет на основе длительности задач и их распределения между участниками. Давайте разбим каждую задачу по ее продолжительности, а также учитывая количество людей, которые работают над ней, что поможет более точно оценить трудозатраты. + +### Оценка времени выполнения проекта по методу PERT + +#### 1. Оценка задач + +Для каждой задачи укажем: +- **Продолжительность** задачи. +- **Количество человек**: Учитывая, что задачи выполняются двумя людьми, задачи будут делиться по времени. +- Для каждой задачи, вычислим **пессимистичный** (P), **оптимистичный** (O) и **средний** (M) расчет времени, где: + - P — наибольшая продолжительность, + - O — минимальная продолжительность, + - M — средняя продолжительность. + +#### Пример оценки задачи + +Задача 1.1: Разработка макетов сайта +- **Продолжительность**: 3 дня. +- **Кол-во людей**: 1 человек работает над задачей. + +Время для одной задачи на 2 человек будет оценено как: +- P = 3 дня, +- O = 3 дня, +- M = 3 дня. + +Эти оценки будут повторяться для всех задач, где работа выполняется 2 людьми. + +#### 2. Перерасчет по всем задачам + +| НОМЕР ИСР | НАЗВАНИЕ ЗАДАЧИ | ПЕССИМИСТИЧНОЕ ВРЕМЯ (P) | ОПТИМИСТИЧНОЕ ВРЕМЯ (O) | СРЕДНЕЕ ВРЕМЯ (M) | ПЕРИОД (ЧЕЛОВЕК-МЕСЯЦ) | +|-----------|-----------------|--------------------------|-------------------------|-------------------|-----------------------| +| 1.1 | Разработать макеты сайта и согласовать их | 3 дня | 3 дня | 3 дня | 0.17 чел.-мес. | +| 1.2 | Сверстать страницы | 3 дня | 3 дня | 3 дня | 0.17 чел.-мес. | +| 1.3 | Настроить веб-серверы и деплой | 2 дня | 2 дня | 2 дня | 0.11 чел.-мес. | +| 1.4 | Подготовить архитектуру приложения | 2 дня | 2 дня | 2 дня | 0.11 чел.-мес. | +| 1.5 | Спроектировать базу данных | 2 дня | 2 дня | 2 дня | 0.11 чел.-мес. | +| 1.6 | Реализовать регистрацию | 3 дня | 3 дня | 3 дня | 0.17 чел.-мес. | +| 1.7 | Реализовать авторизацию | 3 дня | 3 дня | 3 дня | 0.17 чел.-мес. | +| 1.8 | Реализовать верификацию аккаунта | 3 дня | 3 дня | 3 дня | 0.17 чел.-мес. | +| 1.9 | Реализовать главную страницу | 2 дня | 2 дня | 2 дня | 0.11 чел.-мес. | +| 1.10 | Реализовать страницу банк портфолио | 3 дня | 3 дня | 3 дня | 0.17 чел.-мес. | +| 1.11 | Реализовать страницу гостя | 5 дней | 5 дней | 5 дней | 0.28 чел.-мес. | +| 1.12 | Реализовать страницу личного кабинета | 5 дней | 5 дней | 5 дней | 0.28 чел.-мес. | +| 2.1 | Публикация проекта на тестовом сервере | 2 дня | 2 дня | 2 дня | 0.11 чел.-мес. | + +#### 3. Общие трудозатраты + +Теперь вычислим **общие трудозатраты проекта** в **человеко-месяцах**: +- Сложим все продолжительности всех задач: +- + 0.17 + 0.17 + 0.11 + 0.11 + 0.11 + 0.17 + 0.17 + 0.17 + 0.11 + 0.17 + 0.28 + 0.28 + 0.11 = 2.1 чел.-мес. + + +#### 4. Итоговая оценка + +Общие трудозатраты проекта с учетом выполнения всех задач двумя людьми составляют **2.1 человеко-месяца**. + +### Структура диаграммы Ганта + +| НОМЕР ИСР | НАЗВАНИЕ ЗАДАЧИ | Ответственный | 1-я неделя | 2-я неделя | 3-я неделя | 4-я неделя | 5-я неделя | +|-----------|------------------------------------------|-----------------------|------------|------------|------------|------------|------------| +| 1.1 | Разработать макеты сайта и согласовать | Корепанов | * * * | | | | | +| 1.2 | Сверстать страницы | Корепанов | * * * | | | | | +| 1.3 | Настроить веб-серверы и деплой | Воробьев | | * * | | | | +| 1.4 | Подготовить архитектуру приложения | Воробьев | | * * | | | | +| 1.5 | Спроектировать базу данных | Воробьев | | * * | | | | +| 1.6 | Реализовать регистрацию | Корепанов | | | * * * | | | +| 1.7 | Реализовать авторизацию | Корепанов | | | * * * | | | +| 1.8 | Реализовать верификацию аккаунта | Корепанов | | | * * * | | | +| 1.9 | Реализовать главную страницу | Воробьев | | | | * * | | +| 1.10 | Реализовать страницу банк портфолио | Воробьев | | | | * * * | | +| 1.11 | Реализовать страницу гостя | Корепанов | | | | | * * * | +| 1.12 | Реализовать страницу личного кабинета | Воробьев | | | | | * * * | +| 2.1 | Публикация проекта на тестовом сервере | Корепанов, Воробьев | | | | | * * | + diff --git "a/\320\222\320\276\321\200\320\276\320\261\321\214\320\265\320\262\320\234\320\220_\320\232\320\276\321\200\320\265\320\277\320\260\320\275\320\276\320\262\320\230\320\220_\320\237\320\276\321\200\321\202\321\204\320\276\320\273\320\270\320\276/\320\233\320\2402/\320\220\320\262\321\202\320\276\321\200\320\270\320\267\320\260\321\206\320\270\321\217.png" "b/\320\222\320\276\321\200\320\276\320\261\321\214\320\265\320\262\320\234\320\220_\320\232\320\276\321\200\320\265\320\277\320\260\320\275\320\276\320\262\320\230\320\220_\320\237\320\276\321\200\321\202\321\204\320\276\320\273\320\270\320\276/\320\233\320\2402/\320\220\320\262\321\202\320\276\321\200\320\270\320\267\320\260\321\206\320\270\321\217.png" new file mode 100644 index 0000000..5ca998a Binary files /dev/null and "b/\320\222\320\276\321\200\320\276\320\261\321\214\320\265\320\262\320\234\320\220_\320\232\320\276\321\200\320\265\320\277\320\260\320\275\320\276\320\262\320\230\320\220_\320\237\320\276\321\200\321\202\321\204\320\276\320\273\320\270\320\276/\320\233\320\2402/\320\220\320\262\321\202\320\276\321\200\320\270\320\267\320\260\321\206\320\270\321\217.png" differ diff --git "a/\320\222\320\276\321\200\320\276\320\261\321\214\320\265\320\262\320\234\320\220_\320\232\320\276\321\200\320\265\320\277\320\260\320\275\320\276\320\262\320\230\320\220_\320\237\320\276\321\200\321\202\321\204\320\276\320\273\320\270\320\276/\320\233\320\2402/\320\221\320\260\320\275\320\272 \320\277\320\276\321\200\321\202\321\204\320\276\320\273\320\270\320\276.png" "b/\320\222\320\276\321\200\320\276\320\261\321\214\320\265\320\262\320\234\320\220_\320\232\320\276\321\200\320\265\320\277\320\260\320\275\320\276\320\262\320\230\320\220_\320\237\320\276\321\200\321\202\321\204\320\276\320\273\320\270\320\276/\320\233\320\2402/\320\221\320\260\320\275\320\272 \320\277\320\276\321\200\321\202\321\204\320\276\320\273\320\270\320\276.png" new file mode 100644 index 0000000..543c064 Binary files /dev/null and "b/\320\222\320\276\321\200\320\276\320\261\321\214\320\265\320\262\320\234\320\220_\320\232\320\276\321\200\320\265\320\277\320\260\320\275\320\276\320\262\320\230\320\220_\320\237\320\276\321\200\321\202\321\204\320\276\320\273\320\270\320\276/\320\233\320\2402/\320\221\320\260\320\275\320\272 \320\277\320\276\321\200\321\202\321\204\320\276\320\273\320\270\320\276.png" differ diff --git "a/\320\222\320\276\321\200\320\276\320\261\321\214\320\265\320\262\320\234\320\220_\320\232\320\276\321\200\320\265\320\277\320\260\320\275\320\276\320\262\320\230\320\220_\320\237\320\276\321\200\321\202\321\204\320\276\320\273\320\270\320\276/\320\233\320\2402/\320\223\320\273\320\260\320\262\320\275\320\260\321\217.png" "b/\320\222\320\276\321\200\320\276\320\261\321\214\320\265\320\262\320\234\320\220_\320\232\320\276\321\200\320\265\320\277\320\260\320\275\320\276\320\262\320\230\320\220_\320\237\320\276\321\200\321\202\321\204\320\276\320\273\320\270\320\276/\320\233\320\2402/\320\223\320\273\320\260\320\262\320\275\320\260\321\217.png" new file mode 100644 index 0000000..943568f Binary files /dev/null and "b/\320\222\320\276\321\200\320\276\320\261\321\214\320\265\320\262\320\234\320\220_\320\232\320\276\321\200\320\265\320\277\320\260\320\275\320\276\320\262\320\230\320\220_\320\237\320\276\321\200\321\202\321\204\320\276\320\273\320\270\320\276/\320\233\320\2402/\320\223\320\273\320\260\320\262\320\275\320\260\321\217.png" differ diff --git "a/\320\222\320\276\321\200\320\276\320\261\321\214\320\265\320\262\320\234\320\220_\320\232\320\276\321\200\320\265\320\277\320\260\320\275\320\276\320\262\320\230\320\220_\320\237\320\276\321\200\321\202\321\204\320\276\320\273\320\270\320\276/\320\233\320\2402/\320\235\320\276\320\262\320\276\321\201\321\202\320\270.png" "b/\320\222\320\276\321\200\320\276\320\261\321\214\320\265\320\262\320\234\320\220_\320\232\320\276\321\200\320\265\320\277\320\260\320\275\320\276\320\262\320\230\320\220_\320\237\320\276\321\200\321\202\321\204\320\276\320\273\320\270\320\276/\320\233\320\2402/\320\235\320\276\320\262\320\276\321\201\321\202\320\270.png" new file mode 100644 index 0000000..ddd1536 Binary files /dev/null and "b/\320\222\320\276\321\200\320\276\320\261\321\214\320\265\320\262\320\234\320\220_\320\232\320\276\321\200\320\265\320\277\320\260\320\275\320\276\320\262\320\230\320\220_\320\237\320\276\321\200\321\202\321\204\320\276\320\273\320\270\320\276/\320\233\320\2402/\320\235\320\276\320\262\320\276\321\201\321\202\320\270.png" differ diff --git "a/\320\222\320\276\321\200\320\276\320\261\321\214\320\265\320\262\320\234\320\220_\320\232\320\276\321\200\320\265\320\277\320\260\320\275\320\276\320\262\320\230\320\220_\320\237\320\276\321\200\321\202\321\204\320\276\320\273\320\270\320\276/\320\233\320\2402/\320\235\320\276\320\262\320\276\321\201\321\202\321\214.png" "b/\320\222\320\276\321\200\320\276\320\261\321\214\320\265\320\262\320\234\320\220_\320\232\320\276\321\200\320\265\320\277\320\260\320\275\320\276\320\262\320\230\320\220_\320\237\320\276\321\200\321\202\321\204\320\276\320\273\320\270\320\276/\320\233\320\2402/\320\235\320\276\320\262\320\276\321\201\321\202\321\214.png" new file mode 100644 index 0000000..e5bfefd Binary files /dev/null and "b/\320\222\320\276\321\200\320\276\320\261\321\214\320\265\320\262\320\234\320\220_\320\232\320\276\321\200\320\265\320\277\320\260\320\275\320\276\320\262\320\230\320\220_\320\237\320\276\321\200\321\202\321\204\320\276\320\273\320\270\320\276/\320\233\320\2402/\320\235\320\276\320\262\320\276\321\201\321\202\321\214.png" differ diff --git "a/\320\222\320\276\321\200\320\276\320\261\321\214\320\265\320\262\320\234\320\220_\320\232\320\276\321\200\320\265\320\277\320\260\320\275\320\276\320\262\320\230\320\220_\320\237\320\276\321\200\321\202\321\204\320\276\320\273\320\270\320\276/\320\233\320\2402/\320\237\321\200\320\276\321\204\320\270\320\273\321\214.png" "b/\320\222\320\276\321\200\320\276\320\261\321\214\320\265\320\262\320\234\320\220_\320\232\320\276\321\200\320\265\320\277\320\260\320\275\320\276\320\262\320\230\320\220_\320\237\320\276\321\200\321\202\321\204\320\276\320\273\320\270\320\276/\320\233\320\2402/\320\237\321\200\320\276\321\204\320\270\320\273\321\214.png" new file mode 100644 index 0000000..4dac1c1 Binary files /dev/null and "b/\320\222\320\276\321\200\320\276\320\261\321\214\320\265\320\262\320\234\320\220_\320\232\320\276\321\200\320\265\320\277\320\260\320\275\320\276\320\262\320\230\320\220_\320\237\320\276\321\200\321\202\321\204\320\276\320\273\320\270\320\276/\320\233\320\2402/\320\237\321\200\320\276\321\204\320\270\320\273\321\214.png" differ diff --git "a/\320\222\320\276\321\200\320\276\320\261\321\214\320\265\320\262\320\234\320\220_\320\232\320\276\321\200\320\265\320\277\320\260\320\275\320\276\320\262\320\230\320\220_\320\237\320\276\321\200\321\202\321\204\320\276\320\273\320\270\320\276/\320\233\320\2402/\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\321\217.png" "b/\320\222\320\276\321\200\320\276\320\261\321\214\320\265\320\262\320\234\320\220_\320\232\320\276\321\200\320\265\320\277\320\260\320\275\320\276\320\262\320\230\320\220_\320\237\320\276\321\200\321\202\321\204\320\276\320\273\320\270\320\276/\320\233\320\2402/\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\321\217.png" new file mode 100644 index 0000000..080887a Binary files /dev/null and "b/\320\222\320\276\321\200\320\276\320\261\321\214\320\265\320\262\320\234\320\220_\320\232\320\276\321\200\320\265\320\277\320\260\320\275\320\276\320\262\320\230\320\220_\320\237\320\276\321\200\321\202\321\204\320\276\320\273\320\270\320\276/\320\233\320\2402/\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\321\217.png" differ diff --git "a/\320\222\320\276\321\200\320\276\320\261\321\214\320\265\320\262\320\234\320\220_\320\232\320\276\321\200\320\265\320\277\320\260\320\275\320\276\320\262\320\230\320\220_\320\237\320\276\321\200\321\202\321\204\320\276\320\273\320\270\320\276/\320\233\320\2403/UML.jpeg" "b/\320\222\320\276\321\200\320\276\320\261\321\214\320\265\320\262\320\234\320\220_\320\232\320\276\321\200\320\265\320\277\320\260\320\275\320\276\320\262\320\230\320\220_\320\237\320\276\321\200\321\202\321\204\320\276\320\273\320\270\320\276/\320\233\320\2403/UML.jpeg" new file mode 100644 index 0000000..dd2df2c Binary files /dev/null and "b/\320\222\320\276\321\200\320\276\320\261\321\214\320\265\320\262\320\234\320\220_\320\232\320\276\321\200\320\265\320\277\320\260\320\275\320\276\320\262\320\230\320\220_\320\237\320\276\321\200\321\202\321\204\320\276\320\273\320\270\320\276/\320\233\320\2403/UML.jpeg" differ diff --git "a/\320\222\320\276\321\200\320\276\320\261\321\214\320\265\320\262\320\234\320\220_\320\232\320\276\321\200\320\265\320\277\320\260\320\275\320\276\320\262\320\230\320\220_\320\237\320\276\321\200\321\202\321\204\320\276\320\273\320\270\320\276/\320\233\320\2403/lab3.md" "b/\320\222\320\276\321\200\320\276\320\261\321\214\320\265\320\262\320\234\320\220_\320\232\320\276\321\200\320\265\320\277\320\260\320\275\320\276\320\262\320\230\320\220_\320\237\320\276\321\200\321\202\321\204\320\276\320\273\320\270\320\276/\320\233\320\2403/lab3.md" new file mode 100644 index 0000000..a60d92c --- /dev/null +++ "b/\320\222\320\276\321\200\320\276\320\261\321\214\320\265\320\262\320\234\320\220_\320\232\320\276\321\200\320\265\320\277\320\260\320\275\320\276\320\262\320\230\320\220_\320\237\320\276\321\200\321\202\321\204\320\276\320\273\320\270\320\276/\320\233\320\2403/lab3.md" @@ -0,0 +1,3 @@ +# Лабораторная работа №3 - Разработка прототипа + +Видео: https://www.youtube.com/watch?v=VTLGgrGT2JI \ No newline at end of file diff --git "a/\320\222\320\276\321\200\320\276\320\261\321\214\320\265\320\262\320\234\320\220_\320\232\320\276\321\200\320\265\320\277\320\260\320\275\320\276\320\262\320\230\320\220_\320\237\320\276\321\200\321\202\321\204\320\276\320\273\320\270\320\276/\320\233\320\2403/\320\240\320\276\320\273\320\270.jpeg" "b/\320\222\320\276\321\200\320\276\320\261\321\214\320\265\320\262\320\234\320\220_\320\232\320\276\321\200\320\265\320\277\320\260\320\275\320\276\320\262\320\230\320\220_\320\237\320\276\321\200\321\202\321\204\320\276\320\273\320\270\320\276/\320\233\320\2403/\320\240\320\276\320\273\320\270.jpeg" new file mode 100644 index 0000000..cf93941 Binary files /dev/null and "b/\320\222\320\276\321\200\320\276\320\261\321\214\320\265\320\262\320\234\320\220_\320\232\320\276\321\200\320\265\320\277\320\260\320\275\320\276\320\262\320\230\320\220_\320\237\320\276\321\200\321\202\321\204\320\276\320\273\320\270\320\276/\320\233\320\2403/\320\240\320\276\320\273\320\270.jpeg" differ diff --git "a/\320\222\320\276\321\200\320\276\320\261\321\214\320\265\320\262\320\234\320\220_\320\232\320\276\321\200\320\265\320\277\320\260\320\275\320\276\320\262\320\230\320\220_\320\237\320\276\321\200\321\202\321\204\320\276\320\273\320\270\320\276/\320\233\320\2403/\320\241\321\202\321\200\321\203\320\272\321\202\321\203\321\200\320\275\320\260\321\217.jpeg" "b/\320\222\320\276\321\200\320\276\320\261\321\214\320\265\320\262\320\234\320\220_\320\232\320\276\321\200\320\265\320\277\320\260\320\275\320\276\320\262\320\230\320\220_\320\237\320\276\321\200\321\202\321\204\320\276\320\273\320\270\320\276/\320\233\320\2403/\320\241\321\202\321\200\321\203\320\272\321\202\321\203\321\200\320\275\320\260\321\217.jpeg" new file mode 100644 index 0000000..e5c648e Binary files /dev/null and "b/\320\222\320\276\321\200\320\276\320\261\321\214\320\265\320\262\320\234\320\220_\320\232\320\276\321\200\320\265\320\277\320\260\320\275\320\276\320\262\320\230\320\220_\320\237\320\276\321\200\321\202\321\204\320\276\320\273\320\270\320\276/\320\233\320\2403/\320\241\321\202\321\200\321\203\320\272\321\202\321\203\321\200\320\275\320\260\321\217.jpeg" differ