Repository files navigation Веб-приложение для заказа и предзаказа водного транспорта
Архитектура: Клиент-серверная архитектура на базе:
.NET 8
React 18
PostgreSQL 18
Nginx
Docker и Docker Compose
Ключевые возможности для пассажиров:
Выбор точек отправления и прибытия на интерактивной карте
Автоматический поиск перевозчиков
Отправка заявок партнёрам с подходящими судами
Сравнение и выбор лучших условий из полученных откликов
Ключевые возможности для партнеров-перевозчиков:
Гибкое ценообразование
Возможность предложить индивидуальную стоимость поездки в ответ на заявку
Основные таблицы и их связи:
users и users_profiles: хранят основную информацию о пользователях и их профилях, включая данные для входа (old_passwords, refresh_tokens)
ports и port_types: определяют местоположения портов и их типы
ships и ship_types: содержат данные о судах, их характеристиках и типах
rent_orders: центральная таблица для заказов на аренду, связывающая пользователей, суда и порты отправления/прибытия
rent_order_offers: управляет предложениями от партнеров для конкретных заказов
ship_rental_calendar: отслеживает доступность судов для аренды
reviews: хранит отзывы и рейтинги заказов
Pages – крупные компоненты-контейнеры, организующие логику представления конкретных экранов
Components – переиспользуемые UI-элементы с собственной логикой отображения
Api – методы для запросов к endpoints
Assets – иконки, изображения
AuthContext – централизованное управление состоянием пользователя и сессии
SearchContext – управление параметрами активных заявок
WaterTransportService.Api: основной проект API (контроллеры, сервисы, DTO)
WaterTransportService.Model: модели данных, контекст БД и репозитории, отвечающие за общение с БД
WaterTransportService.Authentication: логика авторизации и аутентификации, управление JWT токенами
WaterTransportService.Infrastructure: сервисы для работы с файлами, валидация и хеширование паролей
Clean Architecture — разделение на слои (API, Infrastructure, Model, Authentication)
Repository Pattern — абстракция доступа к данным
DTO Pattern — разделение моделей представления и сущностей БД
Dependency Injection — инверсия зависимостей
Middleware Pattern — обработка исключений, кэширование
Аутентификация и авторизация:
JWT-tokens
Доступ к методам только для верифицированных пользователей
Защита данных и учетных записей:
Хэширование паролей с уникальной солью
ORM для работы с БД
Защита клиентского интерфейса:
Автоэкранирование от XSS в React
Безопасность взаимодействия клиента и сервера:
WAF (Web Application Firewall)
FW (сетевой файрвол)
SSH-доступ только по ключу
ПОЛЬЗОВАТЕЛЬСКИЙ ИНТЕРФЕЙС
Страница личного кабинета партнера
Страница добавления судна
Страница управления заявками
Страница просмотра откликов на заказ
About
Приложение для заказа и предзаказа водного транспорта
Resources
Stars
Watchers
Forks
You can’t perform that action at this time.