Skip to content

Repository files navigation

Тестовое задание: Прототип приложения онлайн-курсов

Бизнес требования

Требуется создать прототип API-only приложения для онлайн-курсов с реализацией следующих сущностей:

  • Курс
  • Автор
  • Компетенция

Описание сущностей:

  1. Курс:

    • Может содержать 0..n компетенций.
    • Каждый курс должен иметь одного автора.
    • При удалении автора курсу должен быть назначен новый автор (можно назначить случайным образом).
  2. Автор:

    • Может иметь 0..n курсов.
  3. Компетенции:

    • Каждая компетенция может быть связана с несколькими курсами.

Операции CRUD:

Необходимо реализовать CRUD операции для каждой из сущностей (Курс, Автор, Компетенция).


Технические требования

  • Для прототипа не требуется реализовывать авторизацию.
  • API request должно быть покрыто тестами с помощью библиотеки rswag, а документация должна быть сгенерирована этой библиотекой в Swagger.
  • Используемая версия Ruby on Rails: 6.0 или выше.
  • Используемая база данных: PostgreSQL.

Definition of Done

  1. Swagger API:

    • Документация должна быть доступна через Swagger и поддерживать отправку тестовых запросов.
    • Документация должна быть сгенерирована с помощью rswag.
  2. API тесты:

    • Все тесты должны проходить без ошибок и покрывать основные операции API.
  3. Начальные данные:

    • Начальные данные должны быть установлены с помощью команды:
    bin/rails db:seed

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

  1. Модели:

    • Course (Курс)
    • User (Является автором)
    • Competency (Компетенция)
  2. Контроллеры:

    • Контроллеры для каждой сущности: Курс, Пользователь, Компетенция.
  3. Роуты:

    • RESTful маршруты для CRUD операций для каждой сущности.
  4. Тесты:

    • Тесты для API с использованием rswag и проверка документации Swagger.

Запуск проекта локально

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages