Приложение он-лайн университет, создано при прохождении курса на 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)
- каждый урок имеет статус просмотренно для каждого пользователя
- статистика прохождения курса ( привязана к кол-ву просмотренных уроков)
- общий рейтинг курса
- кол-во подписчиков
- похожие курсы ( на основании тегов)
Роли: Админ:
- статистика в виде графиков (коль-ао подписок, пользователей и т.п.)
- Активности ( все действия с курсами, учет пользователей)
- Сводная статистика по подпискам (курс, оценки, отзыв, % прохождения и т.п)
- Подтверждает курсы перед публикацией, не может удалять курсы с подписчиками
- статистика и удаление тегов
Учитель, Студент:
- Может создавать Курсы, уроки
- Может купить, подписаться на любой курс
- Может оставить отзыв по окончании, получить сертификат
- нет доступа к редактирования чужих курсов
- Статистика по своим созданным курсам