Стоимость: 280 руб.
Содержание
1. ОБЗОР СУЩЕСТВУЮЩИХ РЕШЕНИЙ
2. ПРОЕКТИРОВАНИЕ АРХИТЕКТУРЫ ПРИЛОЖЕНИЯ
2.1 Исследование программных средств для создания UML-диаграмм
2.2 Создание модели предметной области
2.3 Проектирование вариантов использования
2.4 Проектирование структуры базы данных
3. ПРОГРАММНАЯ РЕАЛИЗАЦИЯ ПРИЛОЖЕНИЯ
3.1 Модели и база данных
3.2 Контроллеры
3.3 Административная часть
ЗАКЛЮЧЕНИЕ
СПИСОК ЛИТЕРАТУРЫ
2. ПРОЕКТИРОВАНИЕ АРХИТЕКТУРЫ ПРИЛОЖЕНИЯ
…Нужна такая же работа?
Оставь заявку и получи бесплатный расчет
Несколько простых шагов
Оставьте бесплатную заявку. Требуется только e-mail, не будет никаких звонков
Получайте предложения от авторов
Выбирете понравившегося автора
Получите готовую работу по электронной почте
На странице представлен фрагмент
Реши любую задачу с помощью нейросети.
1. ОБЗОР СУЩЕСТВУЮЩИХ РЕШЕНИЙ
В настоящее время появляются новые приложения, мобильные и веб-сервисы, направленные на улучшение качества обслуживания, и существуют некоторые решения, которые касаются бронирования мест в ресторанах.
1. Сайт для бронирования столиков https://gettable.ru
Данный сайт позволяет пользователю выбрать интересующий его ресторан из множества доступных и забронировать в нем столик. Однако, здесь нельзя получить доступ к меню, этот сайт скорее является путеводителем по доступным ресторанам, но не индивидуальным приложением.
2. Сайты ресторанов https://www.opentable.com, http://www.oblakarestoran.ru
Данные сайты являются индивидуальными для определенных ресторанов и предоставляют информацию о заведении и меню, но здесь отсутствует виртуальная карта зала, и поэтому оценить зал и заказать определенный столик невозможно.
3. Веб-сервис https://jiffyx.
…
2.2 Создание модели предметной области
Одним из этапов проектирования системы является формирование однозначного терминологического словаря для предметной области. Для построения словаря предметной области нужно составить требования к проектируемой системе. Требования к системе обычно выглядят как фразы: «система должна делать то и не должна делать это». Такие требования анализируются, и из них выделяются существительные и характеризующие их прилагательные.
Требования к системе
1) Система – это комплексное решение в виде приложения и административного интерфейса к базе данных.
2) Система должна иметь интерфейс для клиентов.
3) Система должна иметь интерфейс для администратора (персонала ресторана).
4) Система предназначена для заказа столиков и еды.
5) Система должна иметь страницу с контактами и картой для отметки местоположения ресторана.
6) Система должна иметь страницу с информацией о ресторане и поварах.
…
2.3 Проектирование вариантов использования
С помощью вариантов использования можно описать функциональные требования к системе. Варианты использования помогают ответить на вопросы: «Что пользователи пытаются сделать с помощью системы? Чем система может быть им полезна?» Путь, по которому пользователь взаимодействует с системой, определяет получаемый результат.
Варианты использования позволяют начать непосредственное проектирование и приблизительно оценить будущие временные затраты на реализацию.
В вариантах использования следует отражать действия пользователя и реакцию на них системы. Эти действия можно разделить на 2 группы взаимодействия с системой:
– относящиеся к основному сценарию
– относящиеся альтернативному сценарию
Альтернативный сценарий включает действия, которые пользователь вынужден совершать, если возникли ошибки или что-то пошло не так. Варианты использования должны быть описаны в контексте модели предметной области, т.е.
…
3.1 Модели и база данных
Разрабатываемое приложение – это решение Visual Studio с двумя проектами, один из которых (MainPart) содержит модели сущности и логику предметной области, а второй (WebPart) – приложение MVC, состоящее из контроллеров и представлений.
Создание проектов MVC Framework начинаются с модели предметной области, так как именно с ней связаны все компоненты. В нашем приложении присутствуют следующие сущности:
Блюдо (Dish.cs)
public class Dish
{
public int DishId { get; set; }
public string Name { get; set; }
public string Ingredients { get; set; }
public string Category { get; set; }
public decimal Price { get; set; }
public byte[] ImageData { get; set; }
public string ImageMimeType { get; set; }
public boolean OutOfStock { get; set; }n
}
Заказ (Order.
…
3.2 Контроллеры
Контроллер – это центральный компонент MVC приложения, который обрабатывает запросы пользователя. После получения ввода пользователя, контроллер вызывает и координирует действия необходимых объектов и ресурсов, а затем возвращает ему результат, чаще всего, в виде представления.
Модель — это бизнес-логика приложения. Модель должна быть полностью независима от остальных компонентов приложения.
Представление отвечает за получение необходимых данных из модели и их корректное отображение пользователю [3].
…
3.3 Административная часть
Проектируемая система включает создание административного интерфейса для персонала ресторана. Для данной функции был создан специальный контроллер AdminController. В целях защиты, для получения доступа к методам этого контроллера, пользователю требуется ввести логин и пароль администратора.
Рис. 12. Интерфейс входа в административную панель
После успешного входа в систему, пользователю отображается главная страница админ-панели. Отсюда пользователь может перейти на несколько вкладок.
Меню: Администратор имеет возможность просматривать, изменять, добавлять и удалять блюда в меню.
Столики: Администратор имеет возможность просматривать, изменять, добавлять и удалять столики.
Бронирования: Администратор имеет возможность просматривать бронирования.
Рис. 13. Интерфейс страницы редактирования меню
Виртуальная карта зала: Администратор имеет возможность просматривать и изменять виртуальную карту зала.
…
ЗАКЛЮЧЕНИЕ
В рамках проделанной работы был спроектирован и реализован действующий прототип компонента системы автоматизации для бронирования столов в ресторане, обладающий функционалом как для клиентов ресторана, так и для его персонала. Перед проектированием были рассмотрены различные возможные решения поставленной задачи и выделены их плюсы и минусы.
В ходе выполнения работы были выбраны и изучены инструменты и технологии, применяемые к решению схожих задач, определены функциональные требования к системе, была спроектирована база данных и бизнес-логика.
В процессе разработки компонента системы были изучены следующие технологии: C#, Visual Studio, SQL, ASP.NET MVC5, NuGet, Entity Framework, HTML, CSS, JavaScript, jQuery, jQuery UI.
…
СПИСОК ЛИТЕРАТУРЫ
1. Daniel M. Solis. Illustrated C# 2010. New York City: Apress, 2010.
2. Фримен А. ASP.NET MVC 5 с примерами на C# 5.0. 5-е изд. Киев: Вильямс, 2015.
3. Nimit Joshi. Programming ASP.NET MVC 5. C# Corner, 2013.
4. Информация о Ajax.ActionLink и Html.ActionLink. URL: http://www.c-sharpcorner.com/UploadFile/abhikumarvatsa/ajax-actionlink-and-html-actionlink-in-mvc (Дата обращения: 15.04.2017)
5. Справочная информация по методам jQuery. URL: https://www.w3schools.com/jQuery/ajax_post.asp (Дата обращения: 02.05.2017)
6. API документация jQuery draggable. URL: http://api.jqueryui.com/draggable (Дата обращения: 10.05.2017)
Приложения
DishesController
namespace WebPart.
…
Узнайте сколько будет стоить выполнение вашей работы
Список использованной литературы
- 1. Daniel M. Solis. Illustrated C# 2010. New York City: Apress, 2010.
- 2. Фримен А. ASP.NET MVC 5 с примерами на C# 5.0. 5-е изд. Киев: Вильямс, 2015.
- 3. Nimit Joshi. Programming ASP.NET MVC 5. C# Corner, 2013.
- 4. Информация о Ajax.ActionLink и Html.ActionLink. URL: http://www.c-sharpcorner.com/UploadFile/abhikumarvatsa/ajax-actionlink-and-html-actionlink-in-mvc (Дата обращения: 15.04.2017)
- 5. Справочная информация по методам jQuery. URL: https://www.w3schools.com/jQuery/ajax_post.asp (Дата обращения: 02.05.2017)
- 6. API документация jQuery draggable. URL: http://api.jqueryui.com/draggable (Дата обращения: 10.05.2017)
- Приложения
- DishesController
- namespace WebPart.Controllers
- {
- public class DishesController : Controller
- {
- private IRestRepository repository;
- public int pageSize = 3;
- public DishesController(IRestRepository rep)
- {
- repository = rep;
- }
- public ViewResult RestaurantMenu(string category, int page = 1)
- {
- DishesListViewModel model = new DishesListViewModel
- {
- Dishes = repository.Dishes
- .Where(b => category == null || b.Category == category)
- .OrderBy(dish => dish.DishId)
- .Skip((page - 1) * pageSize)
- .Take(pageSize),
- PaginateInfo = new PaginateInfo
- {
- CurrentPage = page,
- ItemsPerPage = pageSize,
- TotalItems = category == null ?
- repository.Dishes.Count() :
- repository.Dishes.Where(dish => dish.Category == category).Count()
- },
- CurrentCategory = category
- };
- return View(model);
- }
- public FileContentResult GetImage(int dishId)
- {
- Dish dish = repository.Dishes
- .FirstOrDefault(d => d.DishId == dishId);