Skip to content

otuskotlin/202411-ok-marketplace

Repository files navigation

202411-ok-marketplace

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

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 - Объектно-ориентированное программирование
  2. Модуль 2: Расширенные возможности Kotlin
    1. m2l1-dsl - Предметно ориентированные языки (DSL)
    2. m2l2-coroutines - Асинхронное и многопоточное программирование с корутинами
    3. m2l3-flows - Асинхронное и многопоточное программирование с Sequence и Flow
    4. m2l4-kmp - Мультиплатформенная разработка
    5. m2l5 - Интероперабельность Kotlin с другими языками
      1. m2l5-1-interop - Интероперабельность Kotlin Native с C
      2. m2l5-2-jni - Интероперабельность Kotlin JVM с C

Плагины

Плагины Gradle сборки проекта

  1. build-plugin Модуль с плагинами
  2. BuildPluginJvm Плагин для сборки проектов JVM
  3. BuildPluginMultiplarform Плагин для сборки мультиплатформенных проектов

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

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

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

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

  1. ok-marketplace-app-spring - Приложение на Spring Framework
  2. ok-marketplace-app-ktor - Приложение на Ktor

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

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

Библиотеки

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

  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 - Библиотека логирования на базе библиотеки Ktor и протокола TCP socket

Тестирование

Сквозные/интеграционные тесты

  1. ok-marketplace-e2e-be - Сквозные/интеграционные тесты для бэкенда системы