Учебный проект курса Kotlin Backend Developer. AdsCar -- это площадка, на которой пользователи публикуют и/или просматривают уже опубликованные объявления о продаже/покупке автомобилей. Задача площадки -- предоставить: для покупателя -- набор объявлений с определенными параметрами(цена, год выпуска, мощность, расход топлива и тд.), для продавца -- возможность опубликовать свое объявление, а также просмотреть цены на подобные автомобили и правильно сформировать цену(по аналогии).
Целевая аудитория:
- Человек в возрасте от 16 лет(в случае с мототехникой), желающий купить/продать автомобиль.
- Автодиллеры желающие продать/купить/обменять(trade-in) автомобиль.
- Кредитные организации желающие предоставить кредит/рассрочку для желающих купить автомобиль.
- Экспертные организации желающие предоставить услуги проверки/подбора б/у автомобилей.
- Автосервисы для ремонта/проверки автомобилей.
В рамках данного учебного проекта будет выполнен только п1.
Вариант 1: Человек от 18 лет, с водительскими правами, имеет стабильный доход либо хорошую кредитную историю. Желает приобрести/продать/поменять автомобиль. Образование и семейное положение не важны. Пользователь ПК или мобильного устройства, с минимальными знаниями вышеперечисленных и доступом в интернет. Однако возможен вариант "косвенного" пользования, т.е с помощью детей, внуков, друзей, коллег. Неплохо разбирается в автомобилях.
Вариант 2: Человек от 16 лет, с водительскими правами(категория А), дохода в виде финансовой помощи семьи. Желает приобрести автомобиль или мотоцикл в ближайшем будущем(2 года). Образование и семейное положение не важны. Пользователь ПК или мобильного устройства, со средними знаниями вышеперечисленных и доступом в интернет. Неплохо разбирается в автомобилях или только погружается в автотему, просматривает объявления, изучает рынок.
- CRUDS (create, read, update, delete, search) для объявлений (ad)
- Title
- Price
- Description
- Owner
- Logo
Схема компонентов
Схема инфраструктуры
- m1l1-hello-world - Вводное занятие, создание первой программы на Kotlin
- m1l3-oop - Объектно-ориентированное программирование
- m1l4-dsl - Предметно ориентированные языки (DSL)
- m1l5-coroutines - Асинхронное и многопоточное программирование с корутинами
- m1l6-flows-and-channels - Асинхронное и многопоточное программирование с Flow и каналами
- m1l7-kmp - Kotlin Multiplatform и интероперабельность с JVM, JS
- m2l2-testing - Тестирование проекта, TDD, MDD
- specs - описание API в форме OpenAPI-спецификаций
- adsCar-api-v1-jackson - Генерация первой версии транспортных моделей с Jackson
- adsCar-common - модуль с общими классами для модулей проекта. В частности, там располагаются внутренние модели и контекст.
- adsCar-mappers-v1 - Маперы между внутренними моделями и моделями API
- adsCar-log-models - Генерация моделей логирования
- adsCar-mappers-log - Мапер между внутренними моделями и моделями логирования
- adsCar-app-ktor - Приложение на Ktor JVM
- ads-car-app-kafka - Микросервис на Kafka
- deploy - Инструменты мониторинга и деплоя
- adsCar-logging - Библиотека логирования на базе библиотеки Logback
- adsCar-stubs - Стабы для ответов сервиса
- app-lib-cor - Библиотека цепочки обязанностей для бизнес-логики
- adsCar-business-logic - Модуль бизнес-логики приложения
- app-repo-tests - Базовые тесты для репозиториев всех баз данных
- app-repo-in-memory - Репозиторий на базе кэша в памяти для тестирования
- app-repo-cassandra - Репозиторий с NoSql DB Cassandra