
Курсовая работа Головков И.Е. 12002108
.pdf
Аналогично (страница с формой добавления и списком хранимых сущностей, страница детального просмотра, редактирования и удаления)
устроено взаимодействие с записями блога и специальными предложениями.
Советующие страницы представлены на рисунках 15-19.
Рисунок 15 – Страница добавления и списка специальных предложений
Рисунок 16 – Список специальных предложений
21

Рисунок 17 – Информация и форма изменения специального предложения
Рисунок 18 – Страница добавления и списка постов блога
Рисунок 19 – Информация и форма изменения поста блога
22
В результате проведенного тестирования приложения было установлено, что оно соответствует заявленным требованиям и функциональности. Тестирование приложения играет важную роль в обеспечении его надежности и эффективности перед выпуском в эксплуатацию.
23
Заключение В результате курсовой работы была разработана автоматизированная
информационная система под названием для магазина спортивного инвентаря,
предназначенная для управления учета товаров в магазине спортивных товаров.
Основанное на Spring Web-технологиях приложение предоставляет удобный интерфейс для администраторов и менеджеров по продажам, позволяя им эффективно управлять каталогом товаров, брендами, постами в блоге и специальными предложениями.
Система включает в себя функционал для создания, просмотра, редактирования и удаления товаров, брендов, постов в блоге и специальных предложений.
Благодаря интеграции с платежными системами, клиенты могут безопасно и удобно оформлять заказы на сайте магазина. Кроме того, приложение предоставляет возможность проведения акций и специальных предложений, что способствует увеличению продаж и привлечению новых клиентов.
Интерфейс приложения разработан с учетом удобства пользователя, что обеспечивает простоту и эффективность в работе. В ходе выполнения работы были использованы знания, полученные как на лекциях, так и на практических занятиях, что подчеркивает важность усвоения теоретического материала для успешного решения практических задач. Курсовая работа оформлена согласно всем методическим рекомендациям.
24
|
|
|
Список использованных источников |
|
|
||
1. |
Spring |
Framework |
Documenation. |
– |
Режим |
доступа: |
|
https://docs.spring.io/spring-framework/reference/index.html |
|
|
|||||
2. |
Documentation |
- |
Thymeleaf. |
– |
Режим |
доступа: |
https://www.thymeleaf.org/documentation.html
3.Overview (Lombok). – Режим доступа: https://projectlombok.org/api/
4.PostgreSQL: Documentation – Режим доступа: https://www.postgresql.org/docs/current/index.html
5.Java Documentation – Режим доступа: https://docs.oracle.com/en/java/
25
Приложение А
Контроллеры
package com.sportline.controller;
import lombok.AllArgsConstructor;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping;
@Controller
@AllArgsConstructor
@RequestMapping("sportline") public class BasicController {
@GetMapping("")
public String getHomePage() { return "sportline/basic/home";
}
}
package com.sportline.controller;
import com.sportline.model.entity.BlogPost; import com.sportline.service.BlogService; import lombok.AllArgsConstructor;
import org.springframework.stereotype.Controller; import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.*;
@Controller
26
@AllArgsConstructor
@RequestMapping("/sportline/blog") public class BlogController {
private static final String REDIRECT_LIST = "redirect:/sportline/blog"; private static final String REDIRECT_ITEM = "redirect:/sportline/blog/{id}";
private BlogService blogService;
@PostMapping("")
public String postBlogPost(@ModelAttribute("blogPost") BlogPost blogPost) { blogService.create(blogPost);
return REDIRECT_LIST;
}
@PutMapping("/{id}")
public String putBlogPost(@PathVariable("id") long id, @ModelAttribute("blogPost") BlogPost blogPost) {
blogService.updateById(blogPost, id); return REDIRECT_ITEM;
}
@DeleteMapping("/{id}")
public String deleteBlogPost(@PathVariable("id") long id) { blogService.deleteById(id);
return REDIRECT_LIST;
}
@GetMapping("")
public String getBlogPosts(Model model,
27
@ModelAttribute("blogPost") BlogPost blogPost, @RequestParam(name = "pageNum", required = false,
defaultValue = "0") int pageNum,
@RequestParam(name = "pageSize", required = false, defaultValue = "4") int pageSize) {
model.addAttribute("blogPostsPage", blogService.findAllByPage(pageNum, pageSize));
model.addAttribute("blogPostsList", blogService.findAllByPage(pageNum, pageSize).getContent());
return "sportline/blog/list";
}
@GetMapping("/{id}")
public String getBlogPost(Model model, @PathVariable("id") long id) {
model.addAttribute("blogPostItem", blogService.getById(id)); return "sportline/blog/item";
}
}
package com.sportline.controller;
import com.sportline.model.entity.Brand; import com.sportline.service.BrandService; import lombok.AllArgsConstructor;
import org.springframework.stereotype.Controller; import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.*;
28
@Controller
@AllArgsConstructor
@RequestMapping("/sportline/brands") public class BrandController {
private static final String REDIRECT_LIST = "redirect:/sportline/brands"; private static final String REDIRECT_ITEM = "redirect:/sportline/brands/{id}";
private BrandService brandService;
@PostMapping("")
public String postBrand(@ModelAttribute("brand") Brand brand) { brandService.create(brand);
return REDIRECT_LIST;
}
@PutMapping("/{id}")
public String putBrand(@PathVariable("id") long id, @ModelAttribute("brand") Brand brand) {
brandService.updateById(brand, id); return REDIRECT_ITEM;
}
@DeleteMapping("/{id}")
public String deleteBrand(@PathVariable("id") long id) { brandService.deleteById(id);
return REDIRECT_LIST;
}
@GetMapping("")
29
public String getBrands(Model model, @ModelAttribute("brand") Brand brand,
@RequestParam(name = "pageNum", required = false, defaultValue = "0") int pageNum,
@RequestParam(name = "pageSize", required = false, defaultValue = "4") int pageSize) {
model.addAttribute("brandsPage", brandService.findAllByPage(pageNum, pageSize));
model.addAttribute("brandsList", brandService.findAllByPage(pageNum, pageSize).getContent());
return "sportline/brand/list";
}
@GetMapping("/{id}")
public String getBrand(Model model, @PathVariable("id") long id) {
model.addAttribute("brandItem", brandService.getById(id)); return "sportline/brand/item";
}
}
package com.sportline.controller;
import com.sportline.model.entity.Product; import com.sportline.model.entity.Status; import com.sportline.service.BrandService; import com.sportline.service.ProductService; import lombok.AllArgsConstructor;
import org.springframework.stereotype.Controller;
30