-
Notifications
You must be signed in to change notification settings - Fork 0
AnatoliyPostnov/LibraryMicroservice
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Задание Focus Start: Реализация ORM для работника библиотеки. Программа состоит из пяти сервисов: 1. libraryOrchestrator - сервис, который принимает запросы от клиента и перенаправляется их на другие сервисы. 2. bookService - сервис учета книг. 3. clientService - сервис учета пользователей. 4. receivedBookService - сервис, позволяющий управлять процессом взаимодействия пользователей с книгами. (например, взять книгу, сдать книгу и т.п.) 5. emailSender - сервис для отправки сообщений пользователям. Отправляет сообщение, если пользователь держит книгу более месяца. Программа обладает следующей функциональностью: 1. Добавление книг в базу данных. 2. Поиск книг по разным условиям. 3. Удаление книг по разным условиям. 4. Поиск авторов всех книг. 5. Добавление пользователей в базу данных. 6. Возможность взять книгу пользователем. 7. Возможность сдать книгу пользователю. 8. Контроль за книгами: а) можно получить все книги, которые были взяты пользователями. б) можно посмотреть всю историю взятых и сданных книг по конкретному пользователю. в) можно получить все книги, которые были взяты пользователями. в) в программе постоянно крутится Scheduled, который отслеживает все книги, которые были взяты более чем один месяц назад и отправляет пользователям извещение о том, что книги нужно сдать. 10 Для взаимодействия с ORM доступен следующий интерфейс: 1. Добавить несколько книг: метод - POST; адрес - http://localhost:8080/add/books; пример Body - [ { "name": "55 устных тем по английскому языку", "volume": "155", "dateOfPublishing": "2003-11-05", "dateOfWriting": "2002-05-05", "authors": [ { "name": "Татьяна", "surname": "Журина", "birthday": "1996-06-17" }, { "name": "Неизвестный", "surname": "Автор", "birthday": "1999-06-17" } ] }, { "name": "Java. Полное руководство", "volume": "1486", "dateOfPublishing": "2019-10-16", "dateOfWriting": "2002-05-05", "authors": [ { "name": "Герберт", "surname": "Шилдт", "birthday": "1977-06-17" } ] }, { "name": "Неизвестная книга", "volume": "10", "dateOfPublishing": "2019-10-16", "dateOfWriting": "2002-05-05", "authors": [ { "name": "Неизвестный", "surname": "Автор", "birthday": "1999-06-17" } ] } ] 2. Получить все книги метод - GET; адрес - http://localhost:8080/books/filter?fromBookId={fromBookId}&toBookId={toBookId}; Body - пусто 3. Найти книги по названию и объему книги метод - GET; адрес - http://localhost:8080/book/filter?name={название}&volume={объем}; Body - пусто 4. Найти книги по имени и фамилии автора. метод GET адрес - http://localhost:8080/books/author/filter?name=Неизвестный&surname=Автор Body пуст 5. Удалить книгу по нахзванию книги и объему книги метод DELETE; адрес - http://localhost:8080/book/filter?name=Spring 5 для профессионалов&volume=1120; Body - пуст 6. Добавить читательский билет метод - POST адрес - http://localhost:8080/add/libraryCards пример Body: [ { "client": { "phone": "89533576500", "email": "postnov-90@mail.ru", "passport": { "name": "Петя", "surname": "Бубликов", "birthday": "1964-06-15", "number": "4567", "series": "1553445", "authorityIssuer": "Piter", "dateSigning": "1990-05-05" } } } ] 7. Получить все зарегистрированные читательские билеты метод - GET адрес - http://localhost:8080/libraryCards/filter?fromLibraryCardsId={...}&toLibraryCardsId={...} Body пуст. 8. Найти конкретный читательский билет по номеру и серии паспорта пользователя метод - GET адрес - http://localhost:8080/libraryCard/filter?number={номер паспорта}&series={номер серии паспорта} Body пуст. 9. Удалить читательский билет метод - DELETE адрес - http://localhost:8080/libraryCard/filter?number={...}&series={...} Body пуст 10. Дать книжку пользователю метод POST адрес - http://localhost:8080/received/book Пример Body: { "book": { "name": "Java. Полное руководство", "volume": "1486", "dateOfPublishing": "2019-10-16", "dateOfWriting": "2002-05-05", "authors": [ { "name": "Герберт", "surname": "Шилдт", "birthday": "1977-06-17" } ] }, "libraryCard": { "client": { "phone": "89533576500", "email": "postnov-90@mail.ru", "passport": { "name": "Петя", "surname": "Бубликов", "birthday": "1964-06-15", "number": "4567", "series": "1553445", "authorityIssuer": "Piter", "dateSigning": "1990-05-05" } } } } 11. Вернуть книжку пользователем по названию книжки метод - POST адрес - http://localhost:8080/return/book/filter?number={номер паспорта пользователя}&series={номер серии пользователя}&name={Название книжки} Body пуст. 12. Получить всю историю взятия книжек конкретным пользователем. метод - GET адре - http://localhost:8080/history/received/books/filter?number={номер паспорта}&series={серия паспорта} Body пуст. 13. Получить вообще все книжки которые в данный момент находятся у пользователей. метод - GET адрес - http://localhost:8080/all/received/books/filter?fromReceivedBookId={...}&toReceivedBookId={...} Body пуст. 14. Получить вообще все книжки которые в данный момент находятся у пользователя. метод - GET адрес - http://localhost:8080/received/books/filter?number={...}&series={...} Body пуст. Для тестирования проекта через postman необходимо установить в Headers: Content-Type - application/json;charset=UTF-8 Перед запуском приложения нужно сделать следущее: 1. Проверить, что свободны порты 8080, 8081, 8082, 8083, 8084. 2. Установить PostgresSQL, RabbitMQ на свой компьютер. 3. Зайти в файл application.properties в каждом сервисе. 4. Указать пароль от своей базы данных PostgresSql. 5. Создать в свой базе данных postgresSql базы данных: book_service, book_service_test, client_service, library_card_test, received_book, received_book_test, library_orchestrator 6. В файле application.properties сервиса EmailSenderService указать свою почту и пароль от нее. Для запуска проекта необходимо запустить все сервисы. Спасибо за внимание!
About
No description, website, or topics provided.
Resources
Stars
Watchers
Forks
Releases
No releases published