Учебный проект курса Kotlin Backend Developer. Marketplace -- это площадка, на которой пользователи выставляют предложения и потребности. Задача площадки -- предоставить наиболее подходящие варианты в обоих случаях: для предложения -- набор вариантов с потребностями, для потребностей -- набор вариантов с предложениями.
По сравнению с предыдущим потоком появились следующие изменения:
- Проекты поддерживают две версии API (v1 - Jackson, v2 - KMP).
- Ktor скомпилирован в двух версиях: Jvm и Native.
- В связи с санкциями, пришлось отказаться от AWS (и DynamoDB) в пользу KNative.
- Появился раздел по конкурентному доступу к базам данных и распределенным приложениям.
- Добавлен репозиторий с графовой базой данных.
Считаем, что целевая аудитория учебного сервиса -- это средние и крупные предприятия, желающие (а) продать свою высокотехнологичную продукцию или (б) найти поставщиков для ее производства.
- Высококвалифицированный инженер среднего или высшего звена, который ищет поставщиков компонентов для разрабатываемого продукта.
- Мужчина от 30 до 50 лет
- С высшим образованием
- С критическим складом ума, со склонностью сопоставлять цифры, технические характеристики и не ведется на броскую рекламу
- Как правило женат, имеет детей (как маленьких, так и взрослых), обеспечен, имеет жилье и автомобиль
Можно выделить несколько сегментов пользователей
- Высококвалифицированный и опытный сотрудник отдела продаж, знающий как продукт, так и технические детали
- Мужчина от 30 до 50 лет
- С высшим образованием, знает технологические нюансы продаваемой продукции и как эта продукция используется
- Знаком лично с большинством клиентов, большая часть всех продаж через личные контакты
- Начинающий или низкоквалифицированный продажник
- Молодой мужчина до 30-35 лет
- Без высшего образование или без опыта работы в соответствующей отрасли
- Делает продажи посредством холодных звонков
- и т.д.
- И т.д.
- CRUDS (create, read, update, delete, search) для объявлений (ad)
- ad.offers (опционально)
- Info
- Title
- Description
- Owner
- Visibility
- DealSide: Demand/Proposal
- ProductType (гаечный ключ, ...)
- IPropertyValues - интерфейс, описывающий различные реализации продуктов
- Болты - учебный пример
- Длина
- Толщина
- Резьба
- Форма
- Болты - учебный пример
- m1l1-hello-world - Вводное занятие, создание первой программы на Kotlin
- m1l4-dsl - Предметно ориентированные языки (DSL)
- m1l5-coroutines - Асинхронное и многопоточное программирование с корутинами
- m1l7-multiplatform - Kotlin Multiplatform и интероперабельность с JVM, JS
- m2l2-testing - Тестирование проекта, TDD, MDD
- specs - описание API в форме OpenAPI-спецификаций
- ok-marketplace-api-v1-jackson - Генерация первой версии транспортных модеелй с Jackson
- ok-marketplace-api-v2-kmp - Генерация второй версии транспортных модеелй с KMP
- ok-marketplace-common - модуль с общими классами для модулей проекта. В частности, там располагаются внутренние модели и контекст.
- ok-marketplace-api-v1-jackson - Мапер между внутренними моделями и моделями API v1
- ok-marketplace-api-v2-kmp - Мапер между внутренними моделями и моделями API v1
- ok-marketplace-services - Сервис. Служит оберткой для модуля бизнес-логики. Подключается
всеми фреймворками (модулями
*-app-*
) - ok-marketplace-app-spring - Приложение на Spring Framework
- ok-marketplace-app-ktor - Приложение на Ktor JVM
- ok-marketplace-app-ktor-native - Приложение на Ktor Native
- ok-marketplace-app-ktor-common - Общая логика для Ktor JVM и Ktor Native
- ok-marketplace-app-knative - Скрипты запуска приложения в KNative
- ok-marketplace-app-rabbit - Микросервис на RabbitMQ
- ok-marketplace-app-kafka - Микросервис на Kafka
- ok-marketplace-stubs - Стабы для ответов сервиса
- ok-marketplace-biz - Модуль бизнес-логики приложения
- ok-marketplace-repo-test - Базовые тесты для репозиториев всех баз данных
- ok-marketplace-repo-inmemory - Репозиторий на базе кэша в памяти для тестирования
- ok-marketplace-repo-sql - Репозиторий на базе PostgreSQL
- ok-marketplace-repo-cassandra - Репозиторий на базе Cassandra
- ok-marketplace-repo-gremlin - Репозиторий на базе Apache TinkerPop Gremlin и ArcadeDb