Просмотр исходного кода

docs: add a report on the development of the backend of the application

chern 2 недель назад
Родитель
Сommit
19ec58855d

+ 360 - 0
Документация/Отчет по разработке серверной части приложения.docx

@@ -0,0 +1,360 @@
+Министерство образования и науки Нижегородской области
+Государственное бюджетное профессиональное образовательное учреждение
+      <<Нижегородский Губернский колледж>>
+                                       
+Методическая комиссия Информатика и вычислительная техника
+
+
+
+                           Допущен к защите:
+                           преподаватель
+                           __________Ю.С. Мамшева
+                           <<___>>________2024 г.
+
+
+
+
+                                  ОТЧЕТ 
+СЕРВЕРНАЯ ЧАСТЬ ПРИЛОЖЕНИЯ ДЛЯ РЕСТОРАНА <<ЧЁРНАЯ ЖЕМЧУЖИНА>>
+по МДК 01.03 <<Разработка мобильных приложений>>
+                                       
+                                       
+
+
+Студент:_____________ А.Р. Чернощекова				25.10.2024
+		     (подпись)
+Преподаватель:_____________ Ю.С. Мамшева				25.10.2024
+		     (подпись)
+Специальность, группа: 09.02.07, 41П
+
+
+
+
+
+
+
+                         Нижний Новгород
+                                     2024
+   В качестве хранилища данных для приложения ресторана была выбрана Supabase.
+   Supabase  -  это полифункциональная платформа, объединяющая в себе несколько важных программных решений и упрощающая их реализацию, позволяя добавлять в приложения или сайты такие функции, как авторизация, хранилище файлов, обновление контента на сайте в реальном времени и т.п.
+   Supabase использует SQL-синтаксис  -  особый язык, ориентированный на взаимодействие с базами данных. Также Supabase имеет удобный визуальный редактор таблиц. С помощью него можно добавлять в базу новую информацию, не используя программный код. 
+   Supabase предлагает собственную библиотеку настроенных функций для подключения к БД, поиску информации внутри и добавлению новых данных программным путем, что делает его удобным для разработки приложений.
+   Реляционная модель проектированной базы данных будет содержать следующие таблицы (сущности): Пользователи, Отзывы, Изображения отзывов, Роли пользователей, Меню, Категории меню, Бронирования, Столы, Статус бронирования.
+                                                               Таблица 1
+                        Список сущностей
+                                      №
+                               Название
+                             Назначение
+                                       1
+Пользователи
+Хранит информацию о пользователях ресторана
+                                       2
+Отзывы
+Хранит отзывы клиентов о ресторане
+                                       3
+Изображения отзывов
+Хранит изображения, загруженные пользователями вместе с их отзывами
+                                       4
+Роли пользователей
+Содержит перечень возможных ролей пользователей приложения
+                                       5
+Меню
+Хранит информацию о блюдах, предлагаемых в ресторане
+                                       6
+Категории меню
+Хранит перечень категорий меню, позволяет организовать меню и облегчить поиск блюд
+                                       7
+Бронирования
+Хранит информацию о бронированиях столов
+                                       8
+Столы
+Хранит информацию о столах в ресторане
+                                       9
+Статус бронирования
+Хранит перечень статусов бронирования, позволяет отслеживать состояние каждого бронирования
+   
+   Для каждой таблицы (сущности) составим описание её атрибутов.
+                                                               Таблица 2
+         Атрибуты таблицы <<Пользователи>>
+Ключевое поле
+Название
+Назначение
+ПК (первичный ключ)
+Код пользователя
+Ключевое поле. Представляет собой первичный ключ. Это уникальное значение, соответствующее каждому пользователю
+ВК (внешний ключ)
+Уникальный идентификатор пользователя
+С помощью данного внешнего ключа будет определено уникальное значение, соответствующее каждому пользователю приложения
+
+Имя
+
+
+Фамилия
+
+
+E-mail
+
+
+Номер пользователя
+
+ВК (внешний ключ)
+Роль пользователя
+С помощью данного внешнего ключа будет определена роль пользователя при работе с приложением
+
+Фото пользователя
+
+
+                                                               Таблица 3
+               Атрибуты таблицы <<Отзывы>>
+Ключевое поле
+Название
+Назначение
+ПК (первичный ключ)
+Код отзыва
+Ключевое поле. Представляет собой первичный ключ. Это уникальное значение, соответствующее каждому отзыву
+ВК (внешний ключ)
+Код пользователя
+С помощью данного внешнего ключа будет определено, какой пользователь оставил данный отзыв
+
+Оценка
+
+
+Комментарий
+
+
+Дата и время отзыва
+
+
+                                                               Таблица 4
+   Атрибуты таблицы <<Изображения отзывов>>
+Ключевое поле
+Название
+Назначение
+ПК (первичный ключ)
+Код изображения
+Ключевое поле. Представляет собой первичный ключ. Это уникальное значение, соответствующее каждому изображению
+ВК (внешний ключ)
+Код отзыва
+С помощью данного внешнего ключа будет определено, к какому отзыву было прикреплено данное изображение
+
+URL изображения
+
+ - 
+                                                               Таблица 5
+    Атрибуты таблицы <<Роли пользователей>>
+Ключевое поле
+Название
+Назначение
+ПК (первичный ключ)
+Код роли
+Ключевое поле. Представляет собой первичный ключ. Это уникальное значение, соответствующее каждой роли
+
+Название
+
+
+                                                               Таблица 6
+                 Атрибуты таблицы <<Меню>>
+Ключевое поле
+Название
+Назначение
+ПК (первичный ключ)
+Код блюда
+Ключевое поле. Представляет собой первичный ключ. Это уникальное значение, соответствующее каждому элементу меню
+
+Название
+
+
+Описание
+
+
+Состав
+
+
+Цена
+
+ВК (внешний ключ)
+Категория
+С помощью данного внешнего ключа будет определено, к какой категории относится блюдо
+
+                                                               Таблица 7
+        Атрибуты таблицы <<Категории меню>>
+Ключевое поле
+Название
+Назначение
+ПК (первичный ключ)
+Код категории
+Ключевое поле. Представляет собой первичный ключ. Это уникальное значение, соответствующее каждой категории меню
+
+Название
+
+
+                                                               Таблица 8
+         Атрибуты таблицы <<Бронирования>>
+Ключевое поле
+Название
+Назначение
+ПК (первичный ключ)
+Код бронирования
+Ключевое поле. Представляет собой уникальное значение, соответствующее каждому бронированию
+ВК (внешний ключ)
+Код пользователя
+С помощью данного внешнего ключа будет определено, какой пользователь оформил бронь
+ВК (внешний ключ)
+Код стола
+С помощью данного внешнего ключа будет определено, какой стол пользователь выбрал для бронирования
+
+Дата и время начала
+
+
+Дата и время окончания
+
+
+Количество человек
+
+
+Комментарий заказчика
+
+ВК (внешний ключ)
+Статус бронирования
+С помощью данного внешнего ключа будет определен статус бронирования для отслеживания состояния записи
+
+                                                               Таблица 9
+                Атрибуты таблицы <<Столы>>
+Ключевое поле
+Название
+Назначение
+ПК (первичный ключ)
+Код стола
+Ключевое поле. Представляет собой уникальное значение, соответствующее каждому столу
+
+Количество мест
+
+
+                                                              Таблица 10
+  Атрибуты таблицы <<Статусы бронирования>>
+Ключевое поле
+Название
+Назначение
+ПК (первичный ключ)
+Код статуса
+Ключевое поле. Представляет собой уникальное значение, соответствующее каждому статусу
+
+Название
+
+
+   В таблице 11 представлены связи между таблицами базы данных.
+                                      №
+                          Название связи
+            Сущности, участвующие в связи
+                             Назначение
+                                       1
+                                     1:М
+Категории меню - Меню
+В одной категории меню может быть много блюд
+                                       2
+                                     1:М
+Роли пользователей  -  Пользователи
+У нескольких пользователей может быть одна роль
+                                       3
+                                     1:М
+Отзывы  -  Изображения отзывов
+В одном отзыве может быть несколько изображений
+                                       4
+                                     1:М
+Пользователи  -  Отзывы
+Один пользователь может оставить несколько отзывов о посещении ресторана
+                                       5
+                                     1:М
+Пользователи - Бронирования
+Один пользователь может оформить несколько бронирований
+                                       6
+                                     1:М
+Столы  -  Бронирования
+На один стол может быть оформлено несколько бронирований
+                                       7
+                                     1:М
+Статус бронирования - Бронирования
+Несколько бронирований могут иметь один статус бронирования
+
+   На рисунке 1 представлена ER-диаграмма проектируемой базы данных, содержащая все таблицы и связи базы данных.
+                                       
+        Рисунок 1 - ER-диаграмма базы данных
+
+   Далее были реализованы все таблицы спроектированной базы данных в Supabase с помощью визуального редактора таблиц.
+                                       
+                Рисунок 2 - Схема БД в Supabase
+   После создания таблиц каждая таблица была заполнена соответствующими данными.
+   В таблице 12 представлены созданные политики к таблицам.
+   
+                                                              Таблица 11
+              Политики доступа к таблицам
+                                      №
+                        Название таблицы
+                       Название политики
+                             Назначение
+                                       1
+                           Бронирования
+Enable insert for authenticated users only
+Добавление записей доступно только для авторизированных пользователей
+                                       2
+                                       
+Enable update access for authenticated users only
+Изменение данных доступно только для авторизированных пользователей
+                                       3
+                                       
+Enable read access for authenticated users only
+Чтение данных из таблицы доступно только для авторизированных пользователей
+                                       4
+                                   Меню
+Enable read access for all users
+Чтение данных из таблицы <<Меню>> доступно всем пользователям
+                                       5
+                                       
+Enable insert for authenticated users only
+Добавление данных в таблицу <<Меню>> доступно только для авторизированных пользователей
+                                       6
+                           Пользователи
+Enable update access for authenticated users only
+Изменение данных доступно только для авторизированных пользователей
+                                       7
+                                       
+Enable read access for authenticated users only
+Чтение данных доступно только для авторизированных пользователей
+                                       8
+                                       
+Enable delete access for authenticated users only
+Удаление данных из таблицы доступно только для авторизированных пользователей
+                                       9
+                                 Отзывы
+Enable insert for authenticated users only
+Добавление данных в таблицу доступно только для авторизированных пользователей
+                                      10
+                                       
+Enable delete access for authenticated users only
+Удаление данных доступно только для авторизированных пользователей
+                                      11
+                                       
+Enable update access for authenticated users only
+Изменение данных доступно только для авторизированных пользователей
+                                      12
+                                       
+Enable read access for all users
+Чтение данных доступно для всех пользователей
+                                      13
+                     Изображения отзывов
+Enable read access for all users
+Чтение данных доступно для всех пользователей
+                                      14
+                                       
+Enable delete access for authenticated users only
+Удаление данных доступно только для авторизированных пользователей
+                                      15
+                     Статус бронирования
+Enable read access for authenticated users only
+Чтение данных доступно для авторизированных пользователей
+                                      16
+                                  Столы
+Enable read access for all users
+Чтение данных доступно для всех пользователей
+   
+