Skip to content

Учебный проект "Маркетплейс" потока 2022-02

License

Notifications You must be signed in to change notification settings

otuskotlin/202202-ok-marketplace

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

202202-ok-marketplace

Учебный проект курса Kotlin Backend Developer. Marketplace -- это площадка, на которой пользователи выставляют предложения и потребности. Задача площадки -- предоставить наиболее подходящие варианты в обоих случаях: для предложения -- набор вариантов с потребностями, для потребностей -- набор вариантов с предложениями.

Что нового в проекте

По сравнению с предыдущим потоком появились следующие изменения:

  1. Проекты поддерживают две версии API (v1 - Jackson, v2 - KMP).
  2. Ktor скомпилирован в двух версиях: Jvm и Native.
  3. В связи с санкциями, пришлось отказаться от AWS (и DynamoDB) в пользу KNative.
  4. Появился раздел по конкурентному доступу к базам данных и распределенным приложениям.
  5. Добавлен репозиторий с графовой базой данных.

Учебный маркетинг приложения

Считаем, что целевая аудитория учебного сервиса -- это средние и крупные предприятия, желающие (а) продать свою высокотехнологичную продукцию или (б) найти поставщиков для ее производства.

Гипотетический портрет пользователя для службы Потребностей

  1. Высококвалифицированный инженер среднего или высшего звена, который ищет поставщиков компонентов для разрабатываемого продукта.
  2. Мужчина от 30 до 50 лет
  3. С высшим образованием
  4. С критическим складом ума, со склонностью сопоставлять цифры, технические характеристики и не ведется на броскую рекламу
  5. Как правило женат, имеет детей (как маленьких, так и взрослых), обеспечен, имеет жилье и автомобиль

Гипотетический портрет пользователя для службы Предложений

Можно выделить несколько сегментов пользователей

  1. Высококвалифицированный и опытный сотрудник отдела продаж, знающий как продукт, так и технические детали
    1. Мужчина от 30 до 50 лет
    2. С высшим образованием, знает технологические нюансы продаваемой продукции и как эта продукция используется
    3. Знаком лично с большинством клиентов, большая часть всех продаж через личные контакты
  2. Начинающий или низкоквалифицированный продажник
    1. Молодой мужчина до 30-35 лет
    2. Без высшего образование или без опыта работы в соответствующей отрасли
    3. Делает продажи посредством холодных звонков
    4. и т.д.
  3. И т.д.

Описание MVP

Функции (эндпониты)

  1. CRUDS (create, read, update, delete, search) для объявлений (ad)
  2. ad.offers (опционально)

Описание сущности ad

  1. Info
    1. Title
    2. Description
    3. Owner
    4. Visibility
  2. DealSide: Demand/Proposal
  3. ProductType (гаечный ключ, ...)
  4. IPropertyValues - интерфейс, описывающий различные реализации продуктов
    1. Болты - учебный пример
      1. Длина
      2. Толщина
      3. Резьба
      4. Форма

Структура проекта

Подпроекты для занятий по языку Kotlin

  1. m1l1-hello-world - Вводное занятие, создание первой программы на Kotlin
  2. m1l4-dsl - Предметно ориентированные языки (DSL)
  3. m1l5-coroutines - Асинхронное и многопоточное программирование с корутинами
  4. m1l7-multiplatform - Kotlin Multiplatform и интероперабельность с JVM, JS
  5. m2l2-testing - Тестирование проекта, TDD, MDD

Транспортные модели, API

  1. specs - описание API в форме OpenAPI-спецификаций
  2. ok-marketplace-api-v1-jackson - Генерация первой версии транспортных модеелй с Jackson
  3. ok-marketplace-api-v2-kmp - Генерация второй версии транспортных модеелй с KMP
  4. ok-marketplace-common - модуль с общими классами для модулей проекта. В частности, там располагаются внутренние модели и контекст.
  5. ok-marketplace-api-v1-jackson - Мапер между внутренними моделями и моделями API v1
  6. ok-marketplace-api-v2-kmp - Мапер между внутренними моделями и моделями API v1

Фреймворки и транспорты

  1. ok-marketplace-services - Сервис. Служит оберткой для модуля бизнес-логики. Подключается всеми фреймворками (модулями *-app-*)
  2. ok-marketplace-app-spring - Приложение на Spring Framework
  3. ok-marketplace-app-ktor - Приложение на Ktor JVM
  4. ok-marketplace-app-ktor-native - Приложение на Ktor Native
  5. ok-marketplace-app-ktor-common - Общая логика для Ktor JVM и Ktor Native
  6. ok-marketplace-app-knative - Скрипты запуска приложения в KNative
  7. ok-marketplace-app-rabbit - Микросервис на RabbitMQ
  8. ok-marketplace-app-kafka - Микросервис на Kafka

Модули бизнес-логики

  1. ok-marketplace-stubs - Стабы для ответов сервиса
  2. ok-marketplace-biz - Модуль бизнес-логики приложения

Хранение, репозитории, базы данных

  1. ok-marketplace-repo-test - Базовые тесты для репозиториев всех баз данных
  2. ok-marketplace-repo-inmemory - Репозиторий на базе кэша в памяти для тестирования
  3. ok-marketplace-repo-sql - Репозиторий на базе PostgreSQL
  4. ok-marketplace-repo-cassandra - Репозиторий на базе Cassandra
  5. ok-marketplace-repo-gremlin - Репозиторий на базе Apache TinkerPop Gremlin и ArcadeDb

About

Учебный проект "Маркетплейс" потока 2022-02

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages