Skip to content

StepanSemykin/WaterTransport

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

285 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Веб-приложение для заказа и предзаказа водного транспорта

Архитектура: Клиент-серверная архитектура на базе:

  • .NET 8
  • React 18
  • PostgreSQL 18
  • Nginx
  • Docker и Docker Compose

Ключевые возможности для пассажиров:

  • Выбор точек отправления и прибытия на интерактивной карте
  • Автоматический поиск перевозчиков
  • Отправка заявок партнёрам с подходящими судами
  • Сравнение и выбор лучших условий из полученных откликов

Ключевые возможности для партнеров-перевозчиков:

  • Гибкое ценообразование
  • Возможность предложить индивидуальную стоимость поездки в ответ на заявку

СХЕМА БД

image

Основные таблицы и их связи:

  • users и users_profiles: хранят основную информацию о пользователях и их профилях, включая данные для входа (old_passwords, refresh_tokens)
  • ports и port_types: определяют местоположения портов и их типы
  • ships и ship_types: содержат данные о судах, их характеристиках и типах
  • rent_orders: центральная таблица для заказов на аренду, связывающая пользователей, суда и порты отправления/прибытия
  • rent_order_offers: управляет предложениями от партнеров для конкретных заказов
  • ship_rental_calendar: отслеживает доступность судов для аренды
  • reviews: хранит отзывы и рейтинги заказов

СХЕМА КЛИЕНТСКОЙ ЧАСТИ

image

Cтруктура решения:

  • Pages – крупные компоненты-контейнеры, организующие логику представления конкретных экранов
  • Components – переиспользуемые UI-элементы с собственной логикой отображения
  • Api – методы для запросов к endpoints
  • Assets – иконки, изображения
  • AuthContext – централизованное управление состоянием пользователя и сессии
  • SearchContext – управление параметрами активных заявок

СХЕМА СЕРВЕРНОЙ ЧАСТИ

image

Структура решения:

  • 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

Безопасность взаимодействия клиента и сервера:

  • CORS-политика

Сетевая безопасность:

  • WAF (Web Application Firewall)
  • FW (сетевой файрвол)
  • SSH-доступ только по ключу

ПОЛЬЗОВАТЕЛЬСКИЙ ИНТЕРФЕЙС

Страница авторизации

image

Основная страница

image

Страница личного кабинета партнера

image

Страница добавления судна

image

Страница управления заявками

image

Страница просмотра откликов на заказ

image

About

Приложение для заказа и предзаказа водного транспорта

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors