Skip to content

AndreyYermolenko/TravelAgencyApp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

52 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Веб-приложение TravelAgencyApp предлагает базовый набор функционала
для туристической фирмы. Пользователь перейдя по URI: localhost:7001/
попадает на страницу авторизации в приложении. Если у пользователя нет
аккаунта, он может зарегистрировать его нажав на ссылку "Регистрация".
После авторизации пользователь попадёт на страницу быстрого поиска
туристических туров. С этой страницы он может навигироваться по сайту,
используя гиперссылки. Приложение поддерживает 2 роли: manager и user. 
UI и функционал для разных ролей отличается.

В файле testdata.sql находятся тестовые данные для заполнения БД.
В файле database.sql находятся SQL запросы для создания БД.
Таблицы в БД создаются автоматически при первом запуске проекта!

Manager может:
+использовать быстрый (с помощью Ajax) или расширенный поиск туров;
+добавлять/редактировать/удалять туристические туры;
+просматривать данные о пользователях оформивших тур;

User может:
+использовать быстрый (с помощью Ajax) или расширенный поиск туров;
+бронировать туры;
+просматривать список забронированных им туров;

Использованные в проекте технологии (будет дополняться):
+Spring MVC;
+Spring Security;
+WebLogic/TomCat;
+PostgreSQL;
+JDBC;
+HTML, CSS, JS;
+Ajax;
+JSP;
+log4j;
+JavaDocs;
+Таблицы в БД приведены к 3 нормальной форме;
+Liquibase plugin для создания таблиц в БД при первой сборке проекта;
+3 уровня валидации данных при регистрации нового пользователя:
	*на стороне клиента (с помощью JS);
	*на стороне сервера (защита от вмешательства в исходный код страницы);
	*обращение в БД для проверки уникальности введенного email;
	
*** *** *** *** *** *** *** *** *** *** *** *** ***

Работа с API:
	Добавить header - Content-Type:application/json
1. Регистрация пользователя.
	В RequestBody добавить данные о новом пользователе, например:
{
	"email": "[email protected]",
	"password": "root",
	"firstName": "Andrey",
	"lastName": "Yermolenko",
	"agencyBranchId": "1"
}
	Отправить POST запрос на http://localhost:7001/api/sign_up

2. Авторизация (получение токена).
	В RequestBody добавить данные о пользователе, например:
{      
	"email": "[email protected]",      
	"password": "root" 
}
Отправить POST запрос на http://localhost:7001/api/login

3. Получение списка отделений турагенства.
	Отправить GET запрос на http://localhost:7001/api/agencyBranch

4. Получение списка курортов.
	Отправить GET запрос на http://localhost:7001/api/resort

5. Получение списка перевозчиков.
	Отправить GET запрос на http://localhost:7001/api/carrier

6. Получить все туристические туры, которые удовлетворяют параметрам поиска.
	В зависимости от роли пользователя данные о турах будут отличаться (менеджеру доступно больше данных).
	В RequestBody добавить данные о туре. Каких-то параметров может не быть в запросе, например:
{
    "destination": "Egypt",
    "beginDate": "2020-03-30",
    "endDate": "2020-09-30",
    "minCost": "900",
    "maxCost": "2500",
    "sortedBy": "cost",
    "desc": "false"
}
	ИЛИ
{
    "destination": "Egypt"
}

	Добавить в RequestParameters:
		token = ${tokenValue}
	Отправить POST запрос на http://localhost:7001/api/tours

7. Забронировать тур (для обычного пользователя).
	Отправить GET запрос на http://localhost:7001/api/reservationTour
	Добавить в RequestParameters токен пользователя и ID тура:
		token = ${tokenValue}
		id=${idValue}
		
8.Получение зарезервированных туров для текущего пользователя (для пользователя).
	Отправить GET запрос на http://localhost:7001/api/reservedTours
	Добавить в RequestParameters токен пользоватя:
		token = ${tokenValue}		

9. Обновить тур (для менеджера).
	В RequestBody добавить данные о туре. Все поля обязательны к заполнению.
	Например:
{
    "destination": "Turkey",
	"beginDate": "2020-08-15",
    "endDate": "2020-08-20",
    "cost": "2000",
    "maxCount": "12",
    "description": "Turkey tour (update)",
	"travelCarrierId": "1",
	"resortId": "2"
}
	Добавить в RequestParameters токен менеджера и ID тура:
		token = ${tokenValue}
		id=${idValue}
	Отправить POST запрос на http://localhost:7001/api/updateTour

10. Удалить тур (для менеджера).
	Отправить GET запрос на http://localhost:7001/api/deleteTour
	Добавить в RequestParameters токен менеджера и ID тура:
		token = ${tokenValue}
		id=${idValue}
		
11. Добавить тур (для менеджера).	
	В RequestBody добавить данные о туре. Все поля обязательны к заполнению.
	Например:
{
    "destination": "Turkey New",
	"beginDate": "2020-08-15",
    "endDate": "2020-08-20",
    "cost": "2000",
    "maxCount": "12",
    "description": "Turkey tour",
	"travelCarrierId": "1",
	"resortId": "2"
}
	Добавить в RequestParameters токен менеджера:
		token = ${tokenValue}
	Отправить POST запрос на http://localhost:7001/api/addTour
		
12.Получение списка пользователей для тура (для менеджера).
	Отправить GET запрос на http://localhost:7001/api/listOfReservedTourUsers
	Добавить в RequestParameters токен менеджера и ID тура:
		token = ${tokenValue}
		id=${idValue}
		

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published