Клиент-серверное приложение на платформах Spring и React
Изучение методики разработки клиент-серверного веб-приложения для ведения библиографических списков литературы для рабочей программы дисциплины. Библиотека React как инструмент для построения пользовательских интерфейсов. Клиентская часть приложения.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 18.02.2019 |
Размер файла | 6,9 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
4 СТП ОмГУПС-1.2-2005. Работы студенческие учебные и выпускные квалификационные: общие требования и правила оформления текстовых документов. - Омский Государственный Университет Путей Сообщения. Омск, 2005. 28 с.
Приложение А
(обязательное)
Классы для запуска сервера и контроллер
@Configuration @ComponentScan @EnableAutoConfiguration public class BibliographyApplication { @Bean public MultipartConfigElement multipartConfigElement() { MultipartConfigFactory factory = new MultipartConfigFactory(); factory.setMaxFileSize("128KB"); factory.setMaxRequestSize("128KB"); return factory.createMultipartConfig(); } public static void main(String[] args) { SpringApplication.run(BibliographyApplication.class, args); } }
Листинг А.1 - Класс для запуска сервера и бин для конфигурации multipart
@Controller public class BibliographyController { BibliographyService service; @Autowired public BibliographyController(BibliographyRepository bibliographyRepository, DisciplinesRepository disciplines) { this.service = new BibliographyService(bibliographyRepository, disciplines); } @RequestMapping(path = "/") public String index() { return "index"; } @RequestMapping(path = "/import", method = RequestMethod.POST) @ResponseBody public Iterable<Bibliography> importFromBIBTeX( @RequestParam("type") String type, @RequestParam("discipline") String disciplineId, @RequestParam("file") MultipartFile file) throws IOException { File convFile = new File(file.getOriginalFilename()); convFile.createNewFile(); FileOutputStream fos = new FileOutputStream(convFile); fos.write(file.getBytes()); fos.close(); return this.service.saveFromBibtext(convFile, type, Long.parseLong(disciplineId)); } @RequestMapping(path = "/check", method = RequestMethod.GET) @ResponseBody public int checkUrl(@RequestParam("url") String url) { try { OkHttpClient client = new OkHttpClient(); Request request = new Request.Builder() .url(url) .build(); Response response = client.newCall(request).execute(); return response.code(); } catch (IOException e) { return -1; } } }
Листинг А.2 - REST-контроллер
Приложение Б
(обязательное)
Классы данных
@Entity(name = "disciplines") public class Discipline { @Id @GeneratedValue(strategy = GenerationType.AUTO) @Column(name = "discipline_id") private Long disciplineId; @Column(name = "discipline_title") private String disciplineTitle; @OneToMany(targetEntity = Section.class, mappedBy = "discipline", cascade = CascadeType.ALL) @JsonIgnore Set<Section> sections = new HashSet<Section>(); @OneToMany(targetEntity = Bibliography.class, mappedBy = "discipline", cascade = CascadeType.ALL) @JsonIgnore @OrderBy(value = "id") Set<Bibliography> bibliographies = new HashSet<>(); @OneToMany(targetEntity = InternetSource.class, mappedBy = "discipline", cascade = CascadeType.ALL) @JsonIgnore @OrderBy(value = "id") Set<InternetSource> internetSources = new HashSet<>(); public Discipline() { } public Discipline(String disciplineTitle, Set<Section> sections, Set<Bibliography> bibliographies) { this.disciplineTitle = disciplineTitle; this.sections = sections; this.bibliographies = bibliographies; } }
Листинг Б.1 - Сущность disciplines в JPA
@Entity(name = "sections") public class Section { @Id @GeneratedValue(strategy = GenerationType.AUTO) @Column(name = "section_id") private Long sectionId; private String title;
@ManyToOne @JoinColumn(name = "discipline_id", nullable = false) @JsonIgnore private Discipline discipline;
@ManyToMany(mappedBy = "sections", cascade = CascadeType.ALL) @JsonIgnore private Set<Bibliography> bibliographySet = new HashSet<Bibliography>(); }
Листинг Б.2 - Сущность sections в JPA
@Entity public class Bibliography { @Id @GeneratedValue @Column(name = "bib_id") private Long id; @Column(name = "type") private String type; private String title; private String source; private String year; private String authors; @Column(name = "publish_place") private String publishPlace; @ManyToMany @JoinTable(name = "sections_for_bibliography", joinColumns = @JoinColumn(name = "bibliography_id"), inverseJoinColumns = @JoinColumn(name = "section_id")) private Set<Section> sections = new HashSet<Section>(); private String publisher; @ManyToOne @JoinColumn(name = "disc_id") private Discipline discipline; public Bibliography() { } public Bibliography(String type, String title, String source, String authors, String publishPlace, Set<Section> sections) { this.type = type; this.title = title; this.source = source; this.authors = authors; this.publishPlace = publishPlace; this.sections = sections; } }
Листинг Б.3 - Сущность bibliography в JPA
@Entity @Table(name = "internet_sources") public class InternetSource { @Id @GeneratedValue(strategy = GenerationType.AUTO) private Long id; private String url; @ManyToOne @JoinColumn(name = "disc_id") private Discipline discipline; }
Листинг Б.4 - Сущность internet_sources в JPA
Приложение В
(обязательное)
Класс для считывания BibTeX-файлов
public class BibliographyParser { Reader fileReader; DisciplinesRepository disciplinesRepository; public BibliographyParser(File file, DisciplinesRepository disciplinesRepository) throws FileNotFoundException { this.fileReader = new FileReader(file); this.disciplinesRepository = disciplinesRepository; } //Тип литературы создается и идентификатор дисциплины будет получен извне public List<Bibliography> parse(String type, Long disciplineId) throws ParseException, FileNotFoundException { BibTeXParser parser = new BibTeXParser(); BibTeXDatabase db = parser.parse(fileReader); Collection<BibTeXEntry> entries = db.getEntries().values(); List<Bibliography> bibliography = new ArrayList<>(); for (BibTeXEntry entry: entries) { //Создается сущность и задаются значения полей Bibliography entity = new Bibliography(); entity.setTitle(entry.getField(BibTeXEntry.KEY_TITLE).toUserString()); entity.setPublishPlace(entry.getField(BibTeXEntry.KEY_ADDRESS).toUserString()); entity.setPublisher(entry.getField(BibTeXEntry.KEY_PUBLISHER).toUserString()); entity.setYear(entry.getField(BibTeXEntry.KEY_YEAR).toUserString()); entity.setSource(entry.getField(BibTeXEntry.KEY_URL).toUserString()); entity.setType(type); //Тип литературы entity.setDiscipline(disciplinesRepository.findOne(disciplineId)); //В BibTeX авторы перечисляются через AND, в данном случае придется заменить эти слова запятыми String authors = entry.getField(BibTeXEntry.KEY_AUTHOR) .toUserString().replaceAll("\\s+AND+\\s", ", "); entity.setAuthors(authors); bibliography.add(entity); } return bibliography; } }
Листинг В.1 - Реализация класса BibliographyParser
Размещено на Allbest.ru
...Подобные документы
Создание клиент-серверного приложения "Чат" с помощью среды визуальной разработки приложений Borland C++ Builder версии 6. Описание функциональности приложения: наличие клиент-серверной архитектуры, обмен короткими сообщениями, а также передача файлов.
курсовая работа [302,0 K], добавлен 30.01.2012Разработка системы, базирующейся на протоколе LIMone, для обмена мгновенными сообщениями и пересылки файлов в процессе деловой переписки. Реализация системы в виде клиент-серверного приложения. Расчет экономических показателей программного продукта.
дипломная работа [4,7 M], добавлен 22.08.2016Сетевое программное обеспечение: общее понятие, содержание, функции. Этапы развития теории компьютерных сетей. Проектирование в среде программирования Borland Builder C++ клиент серверного приложения с использованием сокетов, листинг данной программы.
курсовая работа [191,5 K], добавлен 07.01.2015Изучение истории достижений корпорации Oracle. Разработка клиент-серверного приложения на языке Delphi XE, реализующего возможность управления персоналом на предприятии. Основные структуры данных. Создание инструкции работы с приложением "Отдел кадров".
дипломная работа [974,7 K], добавлен 08.06.2013Многоуровневые архитектуры клиент–сервер. Диаграммы классов, реализующих уровни презентации, бизнес–логики и базы данных приложения. Словесное описание процесса выполнения транзакций. Создание, изменение и удаление хранимых процедур, их выполнение.
курсовая работа [3,4 M], добавлен 23.03.2013Разработка конфигурации службы. Исследование вычислительной эффективности алгоритма оптимизации. Программная реализация клиент-серверного приложения. Алгоритм решения непрерывной задачи загрузки рюкзака. Подключение веб-сервиса к клиентскому приложению.
курсовая работа [1,4 M], добавлен 21.01.2017Разработка клиент-серверного приложения, позволяющего взаимодействовать друг с другом с использованием доступа к базам данных. Проектирование связи сервера с базой данных с помощью технологии ODBC. Разработка интерфейса программы, ее тестирование.
курсовая работа [352,0 K], добавлен 24.08.2016Основные концепции разработки приложения в трёхуровневой архитектуре. Проектное решение, реализующее модель реляционной БД. Спецификация на разработку интерфейса. Описание выполнения транзакций прибытия и убытия судна. Инсталляционные файлы приложения.
курсовая работа [4,0 M], добавлен 26.12.2011Основные концепции разработки приложения в архитектуре MVVM. Проектирование базы данных, предназначенной для сбора информации о дорожно-транспортных происшествиях. Классификация и типы архитектуры "клиент–сервер", ее основные достоинства и недостатки.
курсовая работа [4,1 M], добавлен 25.11.2015Создание многоуровневого приложения с Web-интерфейсом выставления оценки фильму и просмотра оценок других пользователей. Клиентская часть приложения. Разработка многопользовательского веб-приложения на ASP.NET MVC 3 с разграничением доступа к данным.
курсовая работа [949,7 K], добавлен 22.02.2015Характеристика подходов к построению CRM-систем. Разработка клиент-серверного приложения, которое предоставляет возможность управления взаимоотношениями с клиентами на платформе ASP.NET Web Froms. Проработка некоторых аспектов безопасности CRM-систем.
курсовая работа [686,2 K], добавлен 24.04.2015Создание клиент-серверного приложения на основе технологии CORBA. Проектирование многоуровневой системы, в которой клиент при помощи банкомата выполняет необходимые операции. Способы реализации серверов в разных каналах для ускорения обработки данных.
лабораторная работа [1,1 M], добавлен 08.06.2009Разработка компьютерной сети. Спецификация и расчет себестоимости спроектированной сети. Выбор инструментальных средств для реализации разрабатываемого клиент-серверного приложения. Описание логической структуры программного продукта, основные алгоритмы.
курсовая работа [942,1 K], добавлен 19.03.2012Проектирование информационной модели данных, серверной и клиентской частей приложения. Обеспечение коллективного доступа. Составление оптимального набора тестов. Разработка инструкций по сопровождению и эксплуатации клиент–серверного приложения.
дипломная работа [2,7 M], добавлен 07.07.2012Разработка веб-приложения, реализующего функции электронного дневника. Возможность для клиента регистрироваться, смотреть расписание, вести электронный дневник. Сохранение сервером полученных данных в базу на основе MySQL. Описание работы программы.
курсовая работа [1,1 M], добавлен 27.03.2013Последовательность разработки системы для оптимизации работы магазина интерьерных товаров, позволяющей хранить данные в одной базе и работать с ней с помощью удобного интерфейса клиентского приложения. Тестирование информационной системы. Листинг модулей.
дипломная работа [2,9 M], добавлен 07.07.2012Разработка базы данных для информационной системы "Библиотека". Системный анализ, инфологическое, даталогическое и физическое проектирование. Программирование бизнес-логики, разработка клиентского приложения. Создание web-приложения, web-доступ.
курсовая работа [3,3 M], добавлен 15.09.2014Анализ технологий, применяемых для построения современных ЛВС. Моделирование функционирования локальной вычислительной сети по технологии Fast Ethernet. Разработка клиент-серверного приложения и программного обеспечения, работающего в сети APMов.
курсовая работа [2,0 M], добавлен 23.11.2011Разработка клиент-серверного приложения под управлением Windows на языке программирования Delphi, реализующего функции дистанционного обучения (тесты). Основная форма программы, которая состоит из меню, панели активации пользователя и панели чата.
курсовая работа [4,3 M], добавлен 15.04.2019Особенности настройки корпоративной сети предприятия. Разработка приложения, обеспечивающего эффективную работу клиент-серверной сети железнодорожной кассы. Защита от несанкционированного доступа, специфика шифрования паролей и ряд других средств защиты.
курсовая работа [5,9 M], добавлен 30.01.2014