Skip to content

otuskotlin/202312-ok-marketplace

Repository files navigation

202312-ok-marketplace

Учебный проект курса Kotlin Backend Developer. Поток курса 2023-12.

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

Визуальная схема фронтенда

Макет фронта

Документация

  1. Маркетинг и аналитика
    1. Целевая аудитория
    2. Заинтересанты
    3. Пользовательские истории
  2. Аналитика:
    1. Функциональные требования
    2. Нефункциональные требования
  3. DevOps
    1. Файлы сборки
  4. Архитектура
    1. ADR
    2. Описание API
    3. Компонентная схема
  5. Тесты

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

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

  1. Модуль 1: Введение в Kotlin
    1. m1l1-first - Вводное занятие, создание первой программы на Kotlin
    2. m1l2-basic - Основные конструкции Kotlin
    3. m1l3-func - Функциональные элементы Kotlin
    4. m1l4-oop - Объектно-ориентированное программирование
    5. m1l5-dsl - Предметно ориентированные языки (DSL)
  2. Модуль 2: Расширенные возможности Kotlin
    1. m2l1-coroutines - Асинхронное и многопоточное программирование с корутинами
    2. m2l2-flows - Асинхронное и многопоточное программирование с Flow
    3. m2l3-kmp - Kotlin Multiplatform
    4. m2l4 - Интероперабельность Котлин с другими языками
      1. m2l4-1-interop - Kotlin JS/Kotlin Native
      2. m2l4-2-rust - Kotlin-Rust
      3. m2l4-3-jni - Kotlin JVM - Native (JNI)
    5. m2l5-gradle - Расширенные возможности Gradle, Kotlin DSL

Проектные модули

Мониторинг и логирование

  1. deploy - Инструменты мониторинга и деплоя
  2. ok-marketplace-lib-logging-common - Общие объявления для логирования
  3. ok-marketplace-lib-logging-kermit - Библиотека логирования на базе библиотеки Kermit
  4. ok-marketplace-lib-logging-logback - Библиотека логирования на базе библиотеки Logback
  5. ok-marketplace-lib-logging-socket - Библиотека логирования на базе TCP-сокетов

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

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

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

  1. ok-marketplace-app-spring - Приложение на Spring Framework
  2. ok-marketplace-app-ktor - Приложение на Ktor JVM/Native
  3. ok-marketplace-app-rabbit - Микросервис на RabbitMQ
  4. ok-marketplace-app-kafka - Микросервис на Kafka

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

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