ソースを参照

docs: add a technical task

chirikh 1 ヶ月 前
コミット
07110bce78

+ 133 - 0
Документация/Техническое задание_ЧернощековаАР_41П_Ресторан.docx

@@ -0,0 +1,133 @@
+Министерство образования и науки Нижегородской области
+Государственное бюджетное профессиональное образовательное учреждение
+      <<Нижегородский Губернский колледж>>
+                                       
+Методическая комиссия Информатика и вычислительная техника
+
+
+
+                           Допущен к защите:
+                           преподаватель
+                           __________Ю.С. Мамшева
+                           <<___>>________2024 г.
+
+
+
+
+                    ТЕХНИЧЕСКОЕ ЗАДАНИЕ 
+НА РАЗРАБОТКУ МОБИЛЬНОГО ПРИЛОЖЕНИЯ ДЛЯ РЕСТОРАНА
+по МДК 01.03 <<Разработка мобильных приложений>>
+                                       
+                                       
+                                       
+                                       
+                                       
+Студент:_____________ Чернощекова А.Р.				02.10.2024
+		     (подпись)
+Специальность, группа: 09.02.07, 41П
+
+
+
+
+
+
+
+
+                         Нижний Новгород
+                                     2024
+   Мобильное приложение для ресторана охватывает множество аспектов, связанных с управлением клиентскими взаимодействиями и внутренними процессами заведения. Приложение предоставляет пользователям возможность просматривать меню, резервировать столики, управлять личным кабинетом, оставлять отзывы о заведении.
+   Клиенты могут зарегистрироваться в приложении, указав свои контактные данные и предпочтения, что позволяет создать персонализированный опыт. Также приложение должно уведомлять клиентов о статусе их бронирования  -  подтверждено оно или отменено.
+   Столики в ресторане имеют различные характеристики, такие как количество мест и статус (свободен или занят), что позволяет эффективно управлять загрузкой заведения. Персонал ресторана также взаимодействует с приложением: администраторы могут управлять бронированиями, изменять меню.
+   Приложение должно иметь систему оценок и отзывов, позволяя пользователям делиться своим опытом и помогать другим в выборе ресторана.
+   Важным аспектом является интеграция с системой управления ресторана, что позволяет синхронизировать данные о бронированиях, меню в реальном времени. Это обеспечивает актуальность информации и помогает избежать конфликтов в расписании.
+   Таким образом, мобильное приложение становится важным инструментом для повышения эффективности работы ресторана и улучшения клиентского опыта.
+   Актуальность:
+ Увеличение спроса на удобство: современные пользователи стремятся к максимальному удобству и скорости в повседневной жизни. Мобильные приложения позволяют быстро и без лишних усилий бронировать столики, что значительно улучшает клиентский опыт.
+ Рост популярности онлайн-бронирования: с увеличением числа пользователей смартфонов и доступности интернета, онлайн-бронирование стало стандартом в ресторанной индустрии. Приложение предоставляет пользователям возможность забронировать столик в любое время и из любого места.
+ Конкуренция на рынке: рынок ресторанов становится всё более конкурентным. Наличие мобильного приложения может стать значительным конкурентным преимуществом, позволяя привлечь новых клиентов и удержать существующих.
+ Эффективное управление резервациями: приложение упрощает процесс управления бронированиями как для клиентов, так и для ресторана. Это снижает вероятность ошибок и недоразумений, связанных с резервированием столиков.
+   Цель проекта:
+   Разработать интуитивно понятное мобильное приложение для ресторана, которое позволит пользователям легко бронировать столики, просматривать меню и получать актуальные предложения. Приложение должно повысить удобство взаимодействия с рестораном, увеличить количество бронирований и улучшить клиентский опыт, способствуя развитию бизнеса и укреплению лояльности клиентов.
+   Задачи проекта:
+ Разработка интуитивно понятного интерфейса.
+ Реализация функционала бронирования столиков.
+ Интеграция с системой управления рестораном.
+ Обеспечение безопасности пользовательских данных.
+   За разработку мобильного приложения для ресторана ответственен студент ГБПОУ <<Нижегородский Губернский колледж>> группы 41П специальности 09.02.07 Информационные системы и программирование Чернощекова Анастасия Романовна.
+   Выбор паттерна проектирования:
+   Существует несколько основных паттернов проектирования:
+ MVC (Model-View-Controller);
+ MVP (Model-View-Presenter);
+ MVVM (Model-View-ViewModel).
+   Рассмотрим преимущества и недостатки каждого из приведенного выше паттерна проектирования:
+ MVC (Model-View-Controller)
+Структура:
+ Model  -  управляет данными и бизнес-логикой;
+ View  -  отображает данные пользователю;
+ Controller  -  обрабатывает пользовательский ввод и взаимодействует с Model и View.
+   Преимущества:
+ Четкое разделение обязанностей;
+ Упрощает тестирование и поддержку.
+   Недостатки:
+ Может привести к сложному коду, если контроллеры становятся слишком большими.
+ Трудности при работе с двусторонней связью между View и Model.
+ MVP (Model-View-Presenter)
+Структура:
+ Model  -  аналогично MVC, управляет данными;
+ View  -  отображает данные и отправляет пользовательский ввод Presenter;
+ Presenter  -  логика управления, взаимодействует с Model и обновляет View.
+Преимущества:
+ Легче тестировать, так как Presenter можно тестировать независимо от View;
+ Четкая структура, где Presenter контролирует логику.
+Недостатки:
+ Может потребоваться больше кода для реализации, чем в MVC.
+ Взаимодействие между Presenter и View может быть сложным.
+ MVVM (Model-View-ViewModel)
+   Структура:
+ Model  -  управляет данными и бизнес-логикой;
+ View  -  отображает данные и связывается с ViewModel;
+ ViewModel  -  содержит логику представления, связывает Model и View, обеспечивает двустороннюю привязку данных.
+   Преимущества:
+ Двусторонняя привязка данных упрощает синхронизацию состояния между View и Model.
+ Упрощает тестирование, так как ViewModel можно тестировать независимо от UI.
+ Легче реализовывать сложные пользовательские интерфейсы с использованием реактивного программирования.
+   Недостатки:
+ Может быть сложнее для понимания, особенно для новичков.
+ Необходимость в дополнительных библиотеках для реализации привязки данных.
+   Для разработки мобильного приложения для ресторана был выбран паттерн проектирования MVVM, так как позволяет легко синхронизировать данные между Model и View без необходимости вручную обновлять каждый элемент интерфейса. ViewModel может содержать всю логику, связанную с представлением, что делает код более читаемым и понятным. Также данный паттерн хорошо сочетается с реактивными библиотеками, что позволяет создавать более отзывчивые приложения. При этом упрощается процесс тестирования, так как ViewModel можно тестировать без взаимодействия с UI.
+   Функциональные требования:
+ Регистрация и авторизация пользователей:
+ Возможность регистрации через email, номер телефона или социальные сети.
+ Восстановление пароля.
+ Управление личным кабинетом пользователя:
+ Редактирование личных данных.
+ Просмотр истории бронирований.
+ Просмотр меню:
+ Отображение актуального меню ресторана с описанием блюд и ценами.
+ Фильтрация по категориям (закуски, десерты, напитки и т.д.).
+ Бронирование столиков:
+ Выбор даты и времени бронирования.
+ Просмотр доступных столиков (с возможностью выбора конкретного места).
+ Подтверждение бронирования с отображением деталей (дата, время, количество человек).
+ Управление бронированиями:
+ Возможность просмотра активных бронирований.
+ Функция изменения или отмены бронирования.
+ Отзывы и рейтинги:
+ Возможность оставлять отзывы о посещении ресторана.
+ Специальные предложения и акции:
+ Информация о текущих акциях и специальных предложениях.
+   Нефункциональные требования:
+ Производительность:
+ Быстрая загрузка страниц и данных.
+ Минимальное время отклика при взаимодействии с приложением.
+ Безопасность:
+ Шифрование данных пользователей.
+ Защита от несанкционированного доступа.
+ Удобство использования:
+ Интуитивно понятный интерфейс.
+ Адаптивный дизайн для различных устройств.
+Для реализации мобильного приложения был выбран язык программирования Kotlin и Supabase, в качестве серверной части приложения и базы данных.
+Язык программирования Kotlin является официальным языком разработки для Android, что обеспечивает полную поддержку всех функций и библиотек платформы. Также предлагает более лаконичный и выразительный синтаксис, что сокращает объем кода и снижает вероятность ошибок. А поддержка функционального программирования, расширяемых функции делает разработку более гибкой и удобной.
+Supabase  -  это альтернатива Firebase, основанная на PostgreSQL, которая предоставляет множество функций для работы с данными, включая SQL-запросы, что упрощает работу с реляционными данными. Supabase легко интегрируется с мобильным приложением, предоставляя RESTful API и возможность работы в реальном времени через подписки. Встроенные механизмы аутентификации и авторизации позволяют быстро настроить безопасный доступ к данным пользователей. Supabase предоставляет удобные инструменты для управления базой данных через веб-интерфейс, а также возможность создания миграций и управления схемами данных.
+Выбор Kotlin для разработки мобильного приложения на Android в сочетании с Supabase в качестве базы данных создает гибкую архитектуру. Это позволяет эффективно управлять данными, обеспечивать высокую производительность и безопасность, а также ускорять процесс разработки.
+