Skip to content

sasha370/universitetHQ

Repository files navigation

Приложение он-лайн университет, создано при прохождении курса на Udemy

Heroku: https://university-hq.herokuapp.com/

Начато 09 августа 2020, закончено 08 сентября 2020. Заняло около 70 часов работы.

В приложении использовано:

  • gem "bootstrap" # основное оформление
  • gem 'haml-rails', "~> 2.0" # Все вьюхи написаны в haml
  • gem 'font-awesome-sass' # Оформление с иконками
  • gem 'simple_form' # Для создания форм
  • gem 'faker' # для создания seeds в БД
  • gem 'devise' # для аутентификации/регистрации пользователей с поддержкой подтверждения по почте
  • gem 'friendly_id' # дружественное отображение ссылок
  • gem 'ransack', # поиск и сортировка по любым полям
  • gem 'public_activity' # отслеживание всех действий пользователей на сайте
  • gem 'rolify' # для создания ролей у User-ов
  • gem 'pundit' # для создания прав на различные роли
  • gem 'exception_notification' # отправляет все ошибки Heroku на почту
  • gem 'pagy' # пагинатор
  • gem 'chartkick' # отображение графиков
  • gem 'groupdate' # групировка данных из БД по времени ( нужен для Графиков)
  • gem 'rails-erd', генерация схемы взаимосвязей внутри приложения в PDF
  • gem 'ranked-model' # ранжирование внутри модели
  • gem 'aws-sdk-s3', # для хранения файлов на серверах Amazon S3
  • gem 'active_storage_validations' # вылидация для загружаемых файлов ( тип, расширение и т.д.)
  • gem 'image_processing' # подгрузка картинок из S3
  • gem 'recaptcha', Recaptcha от Google
  • gem 'wicked_pdf' # haml2pdf generator для создания сертификатов об окончании курса
  • gem 'wkhtmltopdf-binary', # вспомогательный гем для wicked_pdf
  • gem 'wkhtmltopdf-heroku', # вспомогательный гем для wicked для деплоя
  • gem 'omniauth-google-oauth2' # аутентификация через Гугл
  • gem 'omniauth-github', # аутентификация через GitHub
  • gem 'omniauth-facebook' # аутентификация через Facebook
  • gem 'wicked' # Многосоставные формы (использованно при создании Курса)
  • gem 'cocoon' # помогает редактировать дочерние зависимости - Курс - Подписка и т.п.
  • gem 'stripe' #оплата картой

Функционал:

  • Пользователь может зарегистрироваться напрямую, через Google, GitHub, Facebook
  • Пользователь может создавать курсы, записываться на курсы, покупать курсы
  • После прохождения всех уроков, пользователь получает сертификат ( скачиваемый pdf)
  • Пользователь может оставить отых о курсе и поставить оценку
  • Поиск по основным полям курса
  • Рейтинги курсов по определенным полям ( свежие, лучшие, популярные)
  • Сортировка курсов по всем полям
  • Контроль оплаты с отображением баланса внутри карточки пользователя

Курс:

  • Создается в мультиформе ( постраничное заполнение разделов)
  • Подгрузка картинок и видео, с хранением на S3
  • Расширеный редактор текста для некоторых полей
  • Теги
  • Категории по Языку, Уровню
  • Неограниченное кол-во вложенных уроков ( уроки можно переставлять drug-n-drop)
  • каждый урок имеет статус просмотренно для каждого пользователя
  • статистика прохождения курса ( привязана к кол-ву просмотренных уроков)
  • общий рейтинг курса
  • кол-во подписчиков
  • похожие курсы ( на основании тегов)

Роли: Админ:

  • статистика в виде графиков (коль-ао подписок, пользователей и т.п.)
  • Активности ( все действия с курсами, учет пользователей)
  • Сводная статистика по подпискам (курс, оценки, отзыв, % прохождения и т.п)
  • Подтверждает курсы перед публикацией, не может удалять курсы с подписчиками
  • статистика и удаление тегов

Учитель, Студент:

  • Может создавать Курсы, уроки
  • Может купить, подписаться на любой курс
  • Может оставить отзыв по окончании, получить сертификат
  • нет доступа к редактирования чужих курсов
  • Статистика по своим созданным курсам