В течение этих двух недель я работал над:
- Назначение Ограничение PR.
- POC для еженедельного конкурса.
- Некоторые мелкие ошибки и документирование.
- Улучшение страницы уведомлений (интеграция Noticed gem).
Ограничение заданий.
У нас уже есть ограничение элементов для задания, т.е. ограничение членов группы в использовании элементов для проекта.
Но мы получили довольно много жалоб от преподавателей, что CircuitVerse позволяет легко жульничать. Например, пользователи могут легко скопировать/вставить любую общедоступную схему. Они могут предоставить соавторам доступ к своей собственной схеме и копировать/вставлять и т.д. Поэтому профессора попросили отключить эту функцию.
Реализация
Аналогично реализации ограничения элементов, я сделал колонку типа jsonb
с именем feature_restrictions
, которая будет хранить все выбранные ограничения функций.
В форме задания я сделал выпадающую секцию select-options, аналогичную ограничениям элемента.
Таким образом, на странице проекта есть 2 ограничения характеристик, а в симуляторе — 2. Итак, на странице проекта сначала я присваиваю идентификаторы соответствующим кнопкам функций, чтобы получить к ним доступ в JS с помощью манипуляций DOM, и я просто сделал это:
<% if @project&.assignment_id.present? && @project.assignment.feature_restrictions %> {
let restricted_feature = '<%= @project.assignment.feature_restrictions %>';
if(restricted_feature.includes('Allow Collaborators'))
{
$('#collaboration_button').attr("style", "display:none")
}
if(restricted_feature.includes('Copy / Paste')) {
$('#copy_paste').attr("style", "display:none")
}
}
<% end %>
и для симулятора, я аналогично сделал следующее:
<% if @project&.assignment_id.present? &&
@project.assignment.feature_restrictions %>
let restricted_feature = '<%= @project.assignment.feature_restrictions %>'
if(restricted_feature.includes('Combinational Analysis Tool')) {
$('#createCombinationalAnalysisPrompt').attr("style", "display:none")
}
if(restricted_feature.includes('Verilog tools')) {
$('#generateVerilog').attr("style", "display:none")
}
<% end %>
Вот и весь краткий обзор реализации.
И как я могу забыть о самом интересном:
POC для еженедельного конкурса
Функция еженедельного конкурса в CircuitVerse нацелена на то, чтобы создавать отличные схемы, чтобы их показывали и привлекали пользователей. Так что я работал над этой частью, а Нитин работал над частью пользовательского интерфейса. Но этот вопрос или любой другой вопрос не должен начинаться без плана, поэтому мы решили работать над еженедельным конкурсом в начале следующей фазы.
Некоторые мелкие ошибки и документирование.
Вот некоторые работы, которые я проделал:
- feat(api): добавление наставников в группу
- исправления : сломана функция встраивания
- документация : Улучшение функции Embed
- [документирование] : Поддержка нескольких наставников
Улучшение страницы уведомлений (интеграция уведомлений)
В настоящее время CircuitVerse использует гем activity_notification
для уведомлений, но этот гем больше не поддерживается, и страница уведомлений сильно отстает. Поэтому мы решили заменить этот гем и нашли гем noticed, созданный Крисом Оливером из Gorails.
PR
UI
-
Уведомления на панели навигации
-
Страница уведомлений
Прогресс
- Завершена начальная интеграция и настройка.
- События уведомлений рассмотрены:
- Звезда
- Вилка
- UI
- Функциональность вкладок
- Быстрый доступ к уведомлениям на панели навигации.
В ожидании
- Миграция данных.
- Очистка
- дизайн пользовательского интерфейса figma все еще находится в процессе разработки.
План на следующую неделю
- Завершение отложенной задачи «Уведомления».
Заключение
Эти две недели были потрясающими, я узнал много нового о rails и получил знания об интеграции новых gem noticed. Узнал об использовании Rails Console. Получил знания об API Rails.